技术分享 | 玩转Jetson NX内核

Posted 阿木实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享 | 玩转Jetson NX内核相关的知识,希望对你有一定的参考价值。

接着上篇继续聊Jetson NX(二)的系统刷写问题,我们已经搭建好各种编译环境。

1.3、系统刷写 1.3.1、NX进入recovery模式

  • 关闭系统电源供电(12V,3S电池供电)
  • 使用USB线缆连接NX 的OTG-USB端口与Ubuntu系统开发主机USB端口。
  • 将REC按键按下不松开,给系统供电,供电保持3秒以上,释放REC按键
  • 在主机终端显示界面输入 $ lsusb ,若有显示NVIDIA设备,则成功进入Recovery恢复模式,此时可进行后续刷机,备份等操作。若未显示NVIDIA设备,则检查连接线及进入方式是否正确,然后重试。

1.3.2、全系统刷写 全系统刷写包含刷写rootfs,kernel和dtb 在烧写系统之前,我们先同步以下代码 否则无法 rootfs文件夹下面没有boot文件夹,也没有boot/exlinux文件夹导致无法刷机。

同步指令如下: cd $L4T_DIR sudo ./apply_binaries.sh

烧写指令如下: sudo ./flash.sh jetson-xavvier-nx-devkit-emmc mmcblk0p1

1.3.3、只刷写设备树DTB 往往我们在NX设备上挂载一些指定的传感器,需要有相应的驱动移植,这时候我们不需要重新刷写完整的系统,只需要编写相应的驱动源码,更新DTB文件即可,针对于此,就有了只刷写设备树DTB的指令:

烧写指令如下: sudo ./flash.sh -k kernel jetson-xavier-nx-devkit-emmc mmcblk0p1

1.3.4、检查系统内核和DTB文件是否生效 我们烧写完系统之后,那首先想到的就是,板子正在跑的系统是不是我编译的系统,下面有两种方式验证,其原理都是一样的。分别是debug串口数据打印和dmesg(display message)

第一种通过NX的debug接口,使用杜邦线、USB转ttl和串口工具可以查看,如下图所示,可以查看系统内核编译情况,用户名是 root@amov 编译时间为2021年12月9日星期四22:45:57进行的系统编译 第二种进入系统,使用指令dmesg 显示开机信息 查看内核版本及设备树DTB更新情况

同样的也可以查看系统内核编译情况,如下图所示 也可以看到设备树DTB文件的更新情况,从下图可以看出DTS文件所使用的文件为

arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t19x/jakku/kernel-dts/tegra194-p3668-all-p3509-0000.dts DTB的编译时间为 2022年1月6日星期四 11:47:15 至此我们就可以知道自己正在使用的系统是不是经过我们源码编译后的系统了。下面我们再继续讲讲如何相机驱动源码一直到NX上,并能够正常图像输出。

  • End -

技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。

阿木实验室致力于为机器人研发提供开源软硬件工具和课程服务,让研发更高效!

以上是关于技术分享 | 玩转Jetson NX内核的主要内容,如果未能解决你的问题,请参考以下文章

开箱啦。带你玩转飞凌FCU3001“魔盒”—基于NVIDIA Jetson Xavier NX

在 Jetson NX 上导入 dlib 得到非法指令(核心转储)

Jetson Xavier NX (11) -- NX介绍与系统烧录

Jetson Xavier NX (11) -- NX介绍与系统烧录

资源分享jetson xavier nx(aarch64)平台上的pytorch1.8.0+torchvision0.9.0(python=3.6)

Jetson NX系统烧录以及CUDAcudnnpytorch等环境的安装