[NVIDIA] 入手 Jetson Xavier NX 内核剪裁及重新编译
本文主要讲述,基于 Jetson Xavier NX 开发者套件: 环境配置——>内核剪裁——>重新编译——>烧录流程。
What is Jetson Xavier NX :
- NVIDIA® Jetson Xavier™ NX 是体型超小的AI超级计算机,适用于嵌入式系统和边缘系统。
- 高达 21 TOPS 加速计算能力,可以并行运行现代神经网络并处理来自多个高分辨率传感器的数据。
- Jetson Xavier NX 是生产就绪型产品,可支持所有热门 AI 框架。
+++++++++++
(此处会讲解基础环境的配置,先占坑,稍后整理补充)
(下文中有些路径是我自己虚拟机的路径,注意和自己的电脑匹配)
+++++++++++
- 在内核源码根目录下执行命令:
(1)切到源码路径
cd /home/zhong/workspace/xa_nx/linux/Linux_for_Tegra/source/src_out/kernel_src_build/kernel/kernel-4.9
(2)配置 config
make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig
(3)执行编译 (-j8 是我的虚拟机处理器有8个核,不一样修改下,如4核 -j4 )
make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j8
(4)切换到烧录路径
cd /home/zhong/workspace/xa_nx/linux/linux_for_tegra
(5)拷贝编译好的image文件,以及dts
cp ../Linux_for_Tegra/source/src_out/kernel_src_build/kernel/kernel-4.9/arch/arm64/boot/Image ./kernel/Image
cp ../Linux_for_Tegra/source/src_out/kernel_src_build/kernel/kernel-4.9/arch/arm64/boot/dts/ ./kernel/dtb/ -rf
(6) install kernel modules
cd /home/zhong/workspace/xa_nx/linux/Linux_for_Tegra/source/src_out/kernel_src_build/kernel/kernel-4.9/okernel
sudo make ARCH=arm64 O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=/home/zhong/workspace/xa_nx/linux/linux_for_tegra/rootfs
(7) 封装安装好的 kernel modules
cd /home/zhong/workspace/xa_nx/linux/linux_for_tegra/rootfs
sudo tar --owner root --group root -cjf kernel_supplements.tbz2 lib/modules
(8) 替换 kernel_supplements.tbz2
cd /home/zhong/workspace/xa_nx/linux/linux_for_tegra/
sudo cp rootfs/kernel_supplements.tbz2 kernel/kernel_supplements.tbz2
(9) 运行 apply_binaries.sh 脚本
sudo ./apply_binaries.sh
(10) Jetson Xavier NX 触发recovery模式,重新上电。
(11) 烧录固件
sudo ./flash.sh p3449-0000+p3668-0001-qspi-emmc mmcblk0p1
(12) 等待烧录完成,即可进入系统,使用鼠标键盘初始化系统后即完成整个剪裁烧录过程,从debug串口观察系统启动log,编译用户名和编译时间已经更新,验证重新编译的内核确实生效:
Linux version 4.9.140-tegra (zhong@zhong) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #3 SMP PREEMPT Thu May 7 15:28:44 CST 2020