Xavier 内核编译

本文主要基于 JetPack 源码进行内核编译,也可以下载制定版本的内核源码进行编译,具体方法参照“Specific Version Source”部分.

  • 获取源码,在~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra 目录下运行./source_sync.sh 下载源码到~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/sources,在该目录下会出现 kernel 文件夹,便是下载的内核代码。 参考文章 1,参考文章 2

Kernel 编译

添加环境变量

export KERNEL_OUT=~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/sources/kernel/kernel-4.9/build

export KERNEL_MODULES_OUT=~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/rootfs

参考 1

编译配置文件 (Create the .config file)

在~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/sources/kernel/kernel-4.9 目录下输入:

make ARCH=arm64 O=$KERNEL_OUT tegra_defconfig

编译内核和设备树 (Build the kernel and DTBs)

在当前目录下继续执行:

make ARCH=arm64 O=$KERNEL_OUT CROSS_COMPILE=${CROSS_COMPILE} -j4

开始编译,编译时间与主机的配置有关,不同机器编译时间也不一样,以我的 i3 笔记本为例 4G 内存,Ubuntu16.04 系统,编译大概 30 分钟左右。

加载模块 (Install modules in temporal location)

在当前目录下继续执行:

sudo make modules_install ARCH=arm64 O=$KERNEL_OUT CROSS_COMPILE=${CROSS_COMPILE} INSTALL_MOD_PATH=$KERNEL_MODULES_OUT

备份当前镜像 (Make a backup of the current image)

把当前的镜像备份成:文件名 + 日期时间的格式.

mv ~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/kernel/Image{,.date "+%Y_%m_%d_%H_%M_%S"}

mv ~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/kernel/zImage{,.date "+%Y_ %m_%d_%H_%M_%S"}

mv ~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/kernel/kernel_supplements.tbz2{,.date "+%Y_%m_%d_%H_%M_%S"}

mv ~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/kernel/dtb{,.date "+%Y_%m_%d_%H_%M_%S"}

但是实际我的目录下并没有 zImage 这个文件。

部署二进制文件 (Deploy binarier in their required locations)

进入到编译输出目录:

cd $KERNEL_OUT

进入到~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/sources/kernel/kernel-4.9/build$ 目录下。

执行复制命令,拷贝二进制文件。

cp ./arch/arm64/boot/Image ~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/kernel/

cp ./arch/arm64/boot/zImage ~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/kernel/

cp -r ./arch/arm64/boot/dts ~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/kernel/

重新生成内核模块追加文件 (Regenerate kernel modules supplement file)

切换到~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/rootfs 目录

cd $KERNEL_MODULES_OUT

执行如下命令:

tar –owner root –group root -cjf ~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegro/kernel/kernel_supplements.tbz2 lib/modules

生成 JetPack 映像 (Generate JetPack image)

切换到~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra/目录下,执行如下命令:

cd ~/nVIDIA/xavier/JetPack/Xavier/Linux_for_Tegra

sudo ./apply_binaries.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值