玩转NVIDIA Jetson AGX Xavier(12)--- L4T内核kernel编译之在jetson上编译kernel

在Jetson平台上直接编译内核的好处是不存在交叉编译,编译非常顺利。但是慢!

适用于想在Jetson平台上一步到位,干所有事的玩家
本期内核版本L4T 32.1,使用Jetpack4.2刷机
官网教程有点confuse,因为没说明白是在哪编译,对于初学者不太友好,老规矩放上官网教程
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fkernel_custom.html%23

  1. 下载内核源码
    官网上有通过git获取源码的方式,这里我不建议这么做,直接到网站上下载更好。
    打开NVIDIA Jetson的下载中心
    https://developer.nvidia.com/embedded/downloads
    玩转NVIDIA Jetson AGX Xavier(12)--- L4T内核kernel编译之在jetson上编译kernel_第1张图片
    进入下载中心后确认一下版本和产品,32.1,JAX and TX2。
    这个版本一定要和你手上的Jetson上运行的版本一致,不然会搞挂你jetson上的系统。
    以后的新版本源码下载也是如此,版本号和产品务必对应。
  2. 解压源码
    把下载好的文件拷到一个位置,我建议新建一个存放源码的文件夹,并且固定下来不要移动
    在新建目录下,解压第一层文件,下载的文件不一样文件名也不一样
tar -xjf JAX-TX2-public_sources.tbz2

第一层解压之后会出现一个public_sources的文件夹,继续解压第二层文件

tar -xjf public_sources/kernel_src.tbz2

解压完这层以后,目录下会出现kernel的文件夹,这个就是源码了。打开kernel会看到kernel-4.9 nvgpu nvidia三个文件,kernel-4.9是Linux4.9的源码。

注意:后边所有的步骤要在一个terminal下完成!不要打开多个命令窗

  1. 配置.config文件
    设置编译输出路径,我在这里用的是 /home/xavier/kernel 随便搞一个就行
    这个目录将会存储你从kernel编译出来的所有内容
TKOUT=/home/xavier/okernel

检查一下路径设置的对不对,注意下面代码里的$是要写上的

$TKOUT

会显示TKOUT=/home/xavier/okernel is a directory,意味着你的路径设置成功了,其实这个主要是为了后边写make参数时更方便,所以用变量代替。

打开源码路径

cd /home/xavier/kernel/kernel-4.9

确认一下编译输出路径

sudo mkdir -p $TKOUT

配置.config文件

sudo make ARCH=arm64 O=$TKOUT tegra_defconfig

成功后会提示你生成了.config文件。
注意,tegra_defconfig在每个版本或者每个产品里叫法都不一样,TX2好像是tegra18_defconfig

  1. 编译内核
    还是在kernel-4.9的目录下,使用
sudo make ARCH=arm64 O=$TKOUT -j4

j4是选择用几个核进行编译,Xavier有4个核,如何查询核的数量可以看我的前边的一篇jetson常用命令的博文。

漫长的等待,在jetson上编译大概需要1-2个小时的时间,编译完成后到okernel下边,就可以找到你想要的.ko或者其他系统升级文件了。

你可能感兴趣的:(NVIDIA,Jetson,玩转NVIDIA,Jetson,AI,GPU计算平台)