如何为英伟达TX2编译内核和设备树
在编译内核和设备树之前,首先默认已经安装了JetPack,如果没有安装,请参考其它资料进行安装。
1、首先需要下载编译内核需要用到的工具链,通过下面的链接下载。
https://developer.nvidia.com/embedded/dlc/l4t-gcc-toolchain-64-bit-28-2-ga
2、安装工具链,通过下面的命令来安装工具链。
sudo mkdir /opt/l4t-gcc-toolchain-64-bit-28-2.1
sudo chown $USER:$USER /opt/l4t-gcc-toolchain-64-bit-28-2.1
cd /opt/l4t-gcc-toolchain-64-bit-28-2.1
首先在文件系统的opt文件夹下创建一个l4t-gcc-toolchain-64-bit-28-2.1文件夹,接下来设置文件夹的拥有者,其中$USER为你的用户名。然后进入到l4t-gcc-toolchain-64-bit-28-2.1文件夹下。
然后通过下面的命令将下载的工具链复制到l4t-gcc-toolchain-64-bit-28-2.1文件夹下
mv ~/Downloads/gcc-4.8.5-aarch64.tgz ./
并用下面的命令解压工具链。
tar -xvf gcc-4.8.5-aarch64.tgz
3、下载内核源码,通过下面的链接下载。
https://developer.nvidia.com/embedded/dlc/sources-r2821#Getting_kernel
然后执行下面的命令。
tar -xf public_sources.tbz2
cd public_release/
cp kernel_src.tbz2 $HOME/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources
cd $HOME/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources
tar -xf kernel_src.tbz2
首先解压public_sources.tbz2,之后将kernel_src.tbz2复制到sources文件夹下,并解压kernel_src.tbz2,其中$HOME为JetPack的安装目录。
4、接下来就进入内核与设备树编译的主题,执行下面的命令。
export DEVDIR=$HOME/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra
mkdir -p $DEVDIR/images/modules
mkdir -p $DEVDIR/images/packages
mkdir -p $DEVDIR/images/dtb
export CROSS_COMPILE=/opt/l4t-gcc-toolchain-64-bit-28-2.1/install/bin/aarch64-unknown-linux-gnu-
export KERNEL_MODULES_OUT=$DEVDIR/images/modules
export TEGRA_KERNEL_OUT=$DEVDIR/images
export ARCH=arm64
其中export命令用来定义环境变量。上面的操作主要用来配置交叉编译环境。
之后通过下面的命令清楚内核和配置
cd $DEVDIR/sources/kernel/kernel-4.4
make mrproper
接下来需要配置你的内核,执行下面的命令。
make O=$TEGRA_KERNEL_OUT tegra18_defconfig
make O=$TEGRA_KERNEL_OUT menuconfig
这两条命令会设置默认的配置,并打开一个设置菜单,你可以改变设置,如果不需要修改则直接退出。
注意:你需要使用ncurses才能使用上面的命令。如果有任何问题,请安装以下软件包。
sudo apt-get install libncurses5 libncurses5-dev
5、下面就是编译内核、设备树和模块,只想下面的命令。
make O=$TEGRA_KERNEL_OUT zImage
make O=$TEGRA_KERNEL_OUT dtbs
make O=$TEGRA_KERNEL_OUT modules
make O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=$KERNEL_MODULES_OUT
执行完上面的命令之后,内核的镜像在下面的文件夹下
$DEVDIR/images/arch/arm64/boot/Image
设备树在下面的文件夹下
$DEVDIR/images/arch/arm64/boot/dts/*.dtb
6、这一步需要创建JetPack需要的kernel_supplements.tbz2压缩包
首先执行下面的命令。
cd $DEVDIR/images/modules/lib/modules/
ls .
接下来定义下面的变量。
export KERNEL_MODULES_NAME=4.4.38+
然后执行下面的命令
cd $DEVDIR/images/modules/lib/modules/$KERNEL_MODULES_NAME
rm build source
最后创建压缩包
cd $DEVDIR/images/modules/
tar -cjf kernel_supplements.tbz2 *
mv kernel_supplements.tbz2 $DEVDIR/images/packages
7、除了上面的操作,还需要创建一个kernel_headers.tbz2文件,执行下面的命令
cd $DEVDIR/kernel
tar -xf kernel_headers.tbz2
然后查找头文件夹的名字,如下
ls | grep linux-headers
linux-headers-4.4.38-tegra
定义变量
export KERNEL_HEADERS_NAME=linux-headers-4.4.38-tegra
重定义文件夹
mv $KERNEL_HEADERS_NAME linux-headers-$KERNEL_MODULES_NAME
tar -cjf kernel_headers_custom.tbz2 linux-headers-$KERNEL_MODULES_NAME
mv kernel_headers_custom.tbz2 $DEVDIR/images/packages
rm -rf linux-headers-$KERNEL_MODULES_NAME
8、创建JetPack中文件的备份。
mkdir -p $DEVDIR/images/packages-backup cp -rf $DEVDIR/kernel/* $DEVDIR/images/packages-backup
9、复制设备树文件
cp $DEVDIR/images/arch/arm64/boot/dts/tegra186-quill-p3310-1000-c03-00-base.dtb $DEVDIR/kernel/dtb
10、覆盖掉JetPack中默认的镜像文件
cd $DEVDIR/images
cp -rf arch/arm64/boot/Image arch/arm64/boot/zImage packages/kernel_supplements.tbz2 $DEVDIR/kernel/
cp -rf packages/kernel_headers_custom.tbz2 $DEVDIR/kernel/kernel_headers.tbz2
11、执行applybinaries脚本来生成用来烧写的镜像文件
cd $DEVDIR/
sudo ./apply_binaries.sh
12、经过上面的步骤就编译生成了内核、模块和设备树的文件,下面就是向TX2烧写的过程了。
a. 首先进入recovery模式。
b. 复制dtb文件从Linux_for_Tegra/images/arch/arm64/boot/dts 文件夹到 Linux_for_Tegra/kernel/dtb文件夹。
c. 复制Linux_for_Tegra/images/arch/arm64/boot/ 文件夹下的Image和zImage 到 Linux_for_Tegra/kernel 文件夹。
d. 复制模块从Linux_for_Tegra/images/modules/lib/modules/4.4.38文件夹到Linux_for_Tegra/rootfs/lib/modules/4.4.38 文件夹。
e. 进入$DEVDIR文件夹,并执行下面的命令。
sudo ./flash.sh -r -d kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb -K kernel/Image jetson-tx2 mmcblk0p1
f. 执行下面的命令来安装dtb文件。
cd $DEVDIR
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk1p1
至此,我们完成了TX2上内核、模块和DTB的更新,重启TX2就行了。
如何为英伟达TX2编译内核和设备树相关推荐
- 英伟达首次开源内核、GitHub 强制用户身份验证、Google 悬赏 150 万美元找安卓漏洞 | 开源月报 Vol. 06...
「WeOpen Insight」是腾源会推出的「开源趋势与开源洞见」内容专栏,不定期为读者呈现开源圈内的第一手快讯.优质工具盘点等,洞察开源技术发展的风向标,预见未来趋势. 1 开源企业新闻 1.NV ...
- 英伟达TX2烧录系统_英伟达的DPU,是想在数据中心奇袭英特尔?
热点追踪 / 深度探讨 / 实地探访 / 商务合作 最近几年,经常关注科技圈的朋友们总会发现,每次遇到厂商有重大发布,就总能看到"颠覆"."极致"." ...
- 英伟达TX2烧录系统_99美元AI计算机:英伟达推出嵌入式电脑Jetson Nano
3月19日,由英伟达举办的2019 GTC(GPU技术大会)在美国加州圣何塞举行,英伟达CEO黄仁勋发表主题演讲,正式发布了机器人开发者工具箱Jetson Nano,可以为机器人设计引入AI算力. 黄 ...
- Win10+Vmvare+Ubuntu16.04lts的主机为英伟达TX2重装Ubuntu18.04操作系统
一开始只是随便看了下网上的教程,便开始刷机,一直刷机一直报错,然后谷歌找问题,发现均解决不了. 原因: 因为之前误以为是需要将我的虚拟机的系统移植到tx2,就饶了好大的圈.我的虚拟机是ubuntu18 ...
- 英伟达 TX2 蓝牙自动连接蓝牙 设备
1. sudo apt-get install blueman bluez* 2. vi /etc/bluetooth/main.conf 去掉行[Policy]和AutoEnable前的注释,将Au ...
- 被Linux之父骂醒?英伟达破天荒开源GPU内核驱动,网友:活久见
终于等到了这一天:英伟达开源了他们的 Linux GPU 内核驱动. 「英伟达是我们遇到的硬件厂商中最麻烦的一个.」这是 Linux 内核总设计师 Linus Torvalds 十年前说过的一句原话. ...
- 英伟达Nvidia TX1 TX2 串口通信方法
Nvidia TX1 TX2 串口通信方法 英伟达TX2串口 串口硬件 板子串口描述 硬件连接方式 测试工具及方法 c++通信代码 英伟达TX2串口 使用英伟达嵌入式板进行 串口通信 . 串口硬件 串 ...
- 英伟达一大波硬件来袭:今日GTC发布专业GPU与DPU,为收购ARM将在英国建超算
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 英伟达今天在线上召开了2020年GPU技术大会(GTC).黄仁勋又一次在自家厨房发布了多款新硬件: 全新的数据数据处理单元(DPU).低价 ...
- 英特尔AI芯片首次商用交货!推理性能3.7倍于英伟达T4,年贡献245亿涨250%
李根 发自 旧金山 量子位 报道 | 公众号 QbitAI AI豪赌出业绩,产品启动商用--性能"吊打"友商. 今天(11月13日)在年度AI峰会上,老牌芯片霸主英特尔,交上最新 ...
最新文章
- AS3中的序列化与反序列化
- LinkedHashMap 实现缓存(LRU、FIFO、weakhashMap)
- oracle数据库操作
- 全网最详细的Sentinel安装教程,没有之一!谁反对?(Linux+windows)
- 智能技术可以帮助解决人口老龄化问题吗?
- c#winform演练 ktv项目 在dataGridView中显示歌曲列表
- 如果使用Node.js不存在该如何创建目录?
- 安装 tensorflow 环境
- scara机器人用户坐标系标定与工具坐标(TCP)标定
- Git报错remote: error: hook declined to update refs/heads/feature/XXX
- BindingResult总结以及注意事项
- 服务器有时候显示美国,美国服务器不通的情况解决方法
- DL notes 05:深度学习相关的优化基础(入门级)
- 测试员如何面对30岁后的下坡路,伤不起的年龄,职业道路何去何从?
- 蓄水池采样算法的python实现_蓄水池抽样算法(Reservoir Sampling)
- 关于一些像是哲学的思考???
- python实现视频播放器_对目前的视频播放器不满意?教你用Python做一个视频播放器...
- PLM系统的技术现状和发展趋势
- 一套自动化无纸办公系统(OA+审批流)源码:带数据字典
- 取数组中最大值和最小值
热门文章
- 计算机408考研先导课---C语言难点2
- 2021.1.9每日复习 75.颜色分类(复习快速排序)+ 77.组合(回溯算法)
- 隆云通水质ORP传感器
- 张量网络系列(TT分解 MPS)
- 用Java写微信支付Jsp进行下单操作
- Genymotion下载安装及Android模拟器下载安装
- Python Altair统计图表快速入门
- ssm+Vue计算机毕业设计综合售楼系统(程序+LW文档)
- 广东工贸职业技术学院计算机系在哪个校区,广东工贸职业技术学院地址在哪里...
- 基于Python的实时聊天室开发