jetson tx2内核编译步骤与方法

1.准备工作

版本:jetpack4.5.1,L4T R32.5.1,TX2
drivers:驱动包,并不是平时意义上的内核驱动,后续这里面的镜像,设备树被新编译的替换。里面有烧写脚本
source:源代码
以上两部分都要下载,传递到ubuntu主机

2.编译脚本

在此之前要先建立rootfs,否则编译会报错,参考建立rootfs以及NFS挂载
并且主机需要安装一些库

build_kernel.sh内容如下,可以统计耗时
#!/bin/sh
SYSTEM_TIME_START=$(date +%s.%N)
TARGET_KERNEL_OUT=~/output #输出路径,避免污染内核
export LOCALVERSON=-tegra
export CROSS_COMPILE=/usr/local/arm/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export ARCH=arm64

mkdir -p $TARGET_KERNEL_OUT
make distclean
make O=$TARGET_KERNEL_OUT tegra_defconfig
make O=$TARGET_KERNEL_OUT menuconfig
make O=$TARGET_KERNEL_OUT -j8

SYSTEM_TIME_END=$(date +%s.%N)
USE_TIME_SECOND=$(echo 'scale=2; ('$SYSTEM_TIME_END '-' $SYSTEM_TIME_START')/1' | bc)
USE_TIME_MIN=$(echo 'scale=2; ('$USE_TIME_SECOND '/60)/1' | bc)
echo "编译耗时:" $USE_TIME_MIN "min" $USE_TIME_SECOND "s"

3.拷贝与替换

进入内核根目录下,执行以上脚本即可
到指定编译生成路径下: /arch/arm64/boot
拷贝Image文件替换Jetpack安装包目录 /64_TX2/Linux_for_Tegra_tx2/kernel下的该原文件

到指定编译生成路径下: /arch/arm64/boot/dts
拷贝所有的dtb文件替换Jetpack安装包目录 /64_TX2/Linux_for_Tegra_tx2/kernel/dtb下的原有文件

执行以下语句安装模块

sudo make ARCH=arm64 O=$TEGRA_KERNEL_OUT modules_install \ INSTALL_MOD_PATH=<top>/Linux_for_Tegra/rootfs/

到刚刚指定安装modules的目录下打包文件:

cd <modules_install_path>
tar --owner root --group root -cjf kernel_supplements.tbz2 lib/modules

拷贝打包文件替换Jetpack安装包目录 /64_TX2/Linux_for_Tegra_tx2/kernel下的原有文件

4.烧写

进入此目录Linux_for_Tegra_tx2(驱动包)

sudo ./flash.sh jetson-tx2 mmcblk0p1  #烧录
sudo ./flash.sh -r -k APP -G system.img jetson-tx2 mmcblk0p1  #备份镜像

#烧写备份的镜像时,需要将system.img文件复制到Liunx_for_Tegra/bootloader/目录下,在Liunx_for_Tegra目录下执行
sudo ./flash.sh -r jetson-xxx mmcblk0p1
#-r选项会使用bootloader下存在的镜像
sudo ./flash.sh -k kernel jetson-tx2 mmcblk0p1#单独更新kernel,不一定有用,可以试试-K <Image完整路径+Image>
#设备树文件在Linux_for_Tegra/kernel/dtb目录下,更改之后需要让工具重新执行编译烧录才会生效
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1  #单独烧写dtb,

5.参考资料

参考链接
英伟达社区
jetson系列更新
更新内核成功
学习资料汇总
最新刷固件

Jetson TX2是一种强大的嵌入式计算平台,在进行交叉编译时可以简化软件开发的过程。交叉编译是指在一台主机上编写并构建适用于其他不同硬件平台的软件。 要在Jetson TX2上进行交叉编译,首先需要在主机上安装相应的交叉编译工具链。这个工具链包含了用于生成针对Jetson TX2的二进制可执行文件所需的编译器、链接器和其他必要的工具。通常可以从官方网站或开发者社区获得Jetson TX2专用的交叉编译工具链。 安装好交叉编译工具链后,就可以开始编写和构建软件了。首先,在主机上编写源代码或修改现有的代码。接下来,使用交叉编译工具链中的编译器将源代码编译成适用于Jetson TX2的目标二进制文件。可以通过指定适当的目标平台和编译选项来确保生成的二进制文件可以在Jetson TX2上运行。 在编译过程中,可能需要包含Jetson TX2特定的库和头文件。这些库和头文件可以通过Jetson TX2专用的软件开发工具包(SDK)或其他渠道进行获取。确保将这些依赖项正确地配置到编译过程中,以确保生成的二进制文件能够与Jetson TX2上的其他组件正确地交互。 完成编译后,可以将生成的二进制文件将其复制到Jetson TX2上进行测试和部署。在Jetson TX2上设置正确的运行环境,以确保可以正常运行交叉编译的软件。 总之,交叉编译是一种方便而高效的方法,可以在主机上轻松开发和测试适用于嵌入式平台如Jetson TX2的软件。通过使用适当的工具链和依赖项,可以确保生成的二进制文件能够在Jetson TX2上稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值