TX2 交叉编译打preempt_rt补丁(非烧录方式)

TX2 交叉编译打preempt_rt补丁(非烧录方式)

环境

tx2:内核4.9.140 L4T 32.3.1
Linux kernel没有4.9.140的rt补丁,查阅发现英伟达官方内核源码提供了RT补丁,需编译内核。
开发板上剩余空间不多,所以采用交叉编译方式。

准备工作

  1. 从英伟达官方下载内核源码和Jetson Driver Package:

https://developer.nvidia.com/embedded/download

在这里插入图片描述

在这里插入图片描述

2.下载交叉编译工具链

http://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-i686_aarch64-linux-gnu.tar.xz

3.将public_sources里kernel_src.tbz2和交叉编译工具链解压到主机上。

步骤

1.配置环境变量:

export PATH=<交叉编译环境路径>/bin/:$PATH
export LOCALVERSION=-tegra
export CROSS_COMPILE=aarch64-linux-gnu-

2.切换到内核源码路径并创建一个输出文件夹:

cd <内核源码路径>/kernel/kernel-4.9
mkdir kernel_out

3.打RT补丁并编译内核:

1. ./scripts/rt-patch.sh apply-patches #打实时补丁
2. make ARCH=arm64 O=<内核源码路径>/kernel/kernel-4.9/kernel_out tegra_defconfig
3. *make ARCH=arm64 O=<内核源码路径>/kernel/kernel-4.9/kernel_out menuconfig #无需修改内核可跳过这步直接执行4
4. make ARCH=arm64 O=<内核源码路径>/kernel/kernel-4.9/kernel_out -j4

在这里插入图片描述
若执行了3会出现以下界面:
Kernel Features->Preemption Model(Fully Preemptible Kernel(RT))没有此项代表实时补丁没打上

在这里插入图片描述
在这里插入图片描述
4.编译输出modules

make O=<内核源码路径>/kernel/kernel-4.9/kernel_out modules
make O=<内核源码路径>/kernel/kernel-4.9/kernel_out modules_install INSTALL_MOD_PATH=<your_destination>//安装路径

5.更新内核和modules
把输出路径下/arch/arm64/boot/Image复制到TX2上/boot/ (先备份原Image)
把输出路径下modules复制到TX上/lib路径下

6.重启uname -a查看
在这里插入图片描述
更新前:
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值