英伟达 Jetson Xavier/Xavier NX/Orin系统移植编译
1、下载Jetson BSP包和交叉编译环境
地址:https://developer.nvidia.com/embedded/jetson-linux-archive
下载需要版本即可,此次编译采用32.4.2版本
需要下载的文件如下:
2、新建一个文件夹
mkdir xavier_nx_prj
将上诉文件拷贝到此文件夹下
3、解压public_sources.tbz2
tar -xjf public_sources.tbz2
4、进入Linux_for_Tegra/source/public,解压kernel_src.tbz2
cd /Linux_for_Tegra/source/public
tar -xjf kernel_src.tbz2
5、解压“Tegra186_Linux_R32.4.2_aarch64.tbz2”
sudo tar -xf Tegra186_Linux_R32.4.2_aarch64.tbz2
6、将“Tegra_Linux_Sample-Root-Filesystem_R32.6.1_aarch64.tbz2”解压在/Linux_for_Tegra/rootfs目录内
cd Linux_for_Tegra/rootfs/
sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem_R32.4.2_aarch64.tbz2
7、构建NVIDIA kernel 安装utilities
sudo apt install build-essential bc
8、在/Linux_for_Tegra/source/public/kernel路径下新建output文件夹。
9、设置环境变量
cd kernel-4.9/
export TEGRA_KERNEL_OUT=/home/kevin/nvidia/xs_xavier_nx_prj/Linux_for_Tegra/source/public/kernel/output
10、设置交叉编译链接
export CROSS_COMPILE=/home/kevin/nvidia/xavier_linux_package/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export LOCALVERSION=-tegra
11、命令创建.config文件
cd kernel-4.9/
mkdir -p $TEGRA_KERNEL_OUT
make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig
12、执行脚本,向Linux kernel打入实时补丁
scripts/rt-patch.sh apply-patches
13、构建dtb和模块的内核,进行编译
make mrproper //注:首先清除所有的.o文件和依赖关系
make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j8 //编译
编译完成如下:
14、编译生成dtbs
make ARCH=arm64 O=$TEGRA_KERNEL_OUT dtbs
15、编译生成modules
16、进入 Linux_for_Tegra执行apply_binaries.sh
cd linux_for_Tegra
sudo ./apply_binaries.sh
17、将Xavier /Xavier NX/Orin配置recovery模式,重新上电后,使用如下指令烧录
进入 Linux_for_Tegra
cd linux_for_Tegra
sudo ./flash.sh jetson-xavier mEC[mcblk0p1]