栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Jetson-nano 编译实时内核并烧录

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jetson-nano 编译实时内核并烧录

前言

之前一篇文章介绍了正常的烧录过程,使用的是默认内核,实际工作中需要对内核打补丁升级为实时内核,并对其重编译。

一、准备内容

官网大法好
官方内核下载链接
官方交叉编译器下载链接
官方文档
ubuntu主机一台
根据官网选择下载对应的文件,

1、L4TDriver Package (BSP) source

jetson内核文件。

2、官方交叉编译器

因为我们不是在jetson上直接编译,而jetson是arm平台,所以要进行交叉编译。

二、使用步骤 1.解压 内核
tar -xjf public_sources.tbz2
cd Linux_for_Tegra/source/public
tar –xjf kernel_src.tbz2

经过两次解压后内核解压完成,在kernel/kernel-4.9/中存放的就是内核的相关内容。

2. 解压交叉编译器
sudo apt install build-essential bc
sudo tar -xvf gcc-linaro-7.3.1-2018.05-i686_aarch64-linux-gnu.tar.xz -C /opt

这里将文件解压在/opt里面。其实解压到哪里都可以,后续会指明路径。

3、配置环境变量
export PATH=/opt/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/:$PATH

在.bashrc里面设置上述环境变量,也就是指明交叉编译器的路径,放在这里面的目的是为了以后使用方便,不用再去找路径。

source ~/.bashrc

source一下使得立即生效不用重启terminal.

export LOCALVERSION=-tegra
export CROSS_COMPILE=aarch64-linux-gnu-

在当前terminal设置下环境变量,只在当前terminal生效。
注意:官网上在设置环境变量的时候,没有修改bashrc而是在设置CROSS_COMPILE时直接指明了绝对路径,其实道理是一样的。还有一点这里没有指定编译后文件存取的地方,使用的是默认路径,如果修改要参考官网。
如果需要实时补丁,可在此时进行更新, 执行完后自动更新

scripts/rt-patch.sh apply-patches
4、编译内核
make ARCH=arm64 tegra_defconfig
make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j8

在kernel-4.9目录下执行第一条命令会生成一个config文件,第二条命令是进行编译 TEGRA_KERNEL_OUT我们没指定所以代表的是默认生成路径 -j8 要根据自己电脑的核数。

结束后会在图中路径生成新内核,到这里内核就已经重新编译完成,并更新了实时补丁。

5. 内核更新

接下来就要将新内核更新到我们的烧录驱动中,也就是上一篇文章中使用的烧录驱动。
将生成的image替换到烧录驱动的kernel文件夹下,
将dts文件中的内容替换到烧录驱动的kernel/dtb文件夹下。

sudo make ARCH=arm64 O=$TEGRA_KERNEL_OUT modules_install 
    INSTALL_MOD_PATH=/home/ldl/jetson/Linux_for_Tegra/rootfs/

这里是将新内核模块安装到文件系统中。之后再执行正常的烧录步骤就可以了,参考上文最后的烧录。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/338855.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号