玩转NVIDIA Jetson (18)--- nano xavier设备树device tree相关

背景

本文介绍一些设备树相关的知识,包括设备树文件在哪,如何修改,如何编译,如何应用等。这些问题在我做设备驱动开发的时候踩了很多坑,找了很多资料。本文包含了两大块内容,首先是如何修改设备树,然后是设备树的参考文件在哪里找

一、修改设备树文件的两种方式

1.在机器上反编译DTB文件直接修改

首先找到/boot/目录下系统所使用的dtb文件,具体文件需要去官网查看,我在下文中会列出nano和Xavier的文件名,其他机器可以自行去查找。

找到文件后把他拷贝到外边的一个单独目录,建议拷贝两份,一份用于备份,一份做修改。

使用dtc命令进行反编译。比如你的DTB文件是A.DTB,那么使用

sudo dtc -I dtb -O dts A.dtb > A.dts

 这样反编译出的A.DTS文件就可以用于修改了。加入你的修改以后,使用

sudo dtc -I dts -O dtb A.dts > A.dtb

得到新的dtb文件,然后拷贝到/boot/目录下替代原来的dtb,最后重启就可以生效了。 

Xavier在机器上的文件名是

tegra194-p2888-0001-p2822-0000.dtb

Nano有多个版本,如果你不确定,在你的机器上运行

cat /proc/device-tree/nvidia,dtsfilename

来确定你的版本,比如我的nano是

tegra210-p3448-0000-p3449-0000-b00.dts

不同机器改不同的文件就OK了。

2.修改内核源码中的DTS文件

在NVIDIA下载中心下载你机器内核匹配的的源代码

Jetson Download Center | NVIDIA Developer

比如最新的Xavier的32.6.1

注意不同的产品下载不同的源码,每个名字都是public_sources.tbz2.,解压后 \public_sources\Linux_for_Tegra\source\public目录下找到Kernel_src,这个才是真正的内核源码文件,还需要对它进行解压,解压完成后找到dtb的位置。 

Xavier

kernel_src/hardware/nvidia/platform/t19x/galen/kernel-dts

 这个位置文件有很多dts文件,Xavier的代码名是 tegra194-p2888-0001-p2822-0000。比如当我需要修改spi设备树相关信息时,我需要找到tegra194-p2888-0001-p2822-0000相关的文件,这里是

kernel-dts/common/tegra194-p2888-0001-p2822-0000-common.dtsi

那么修改这个文件之后,对整个内核进行编译就可以了,不会编译的可以查看我之前的文章。

编译之后会在生成目录下看到这个文件

okernel/arch/arm64/boot/dts/tegra194-p2888-0001-p2822-0000.dtb

 这个文件放到机器上替换原有文件就可以用了,官网的说法是尽量使用flash命令进行刷机,这个方法需要你在host主机上安装jetson SDK manager来刷机,具体刷机命令为

sudo ./flash.sh -k kernel-dtb jetson-xavier mmcblk0p1

我一般是直接复制替换,因为我会在jetson上直接编译内核。目前没有发现两种的区别,大家酌情处理。

nano

nano的目录大同小异

kernel_src/hardware/nvidia/platform/t210/porg/kernel-dts

在这个目录下再去找你机器相关dts,比如修改spi,需要修改

/kernel-dts/tegra210-porg-p3448-common.dtsi 

编译什么的都大同小异,但是使用jetson SKD manager刷dtb的命令不一样 

sudo ./flash.sh -r -k DTB jetson-nano-qspi-sd mmcblk0p1

这个命令我没用过,我都是直接复制了。

二.修改设备树参考哪些文档?

jetson的设备树属性的相关文档放在以下目录:

public_sources\Linux_for_Tegra\source\public\kernel_src\kernel_src\kernel\kernel-4.9\Documentation\devicetree\bindings

如果你要修改SPI相关的设备树信息,那么就找到上述目录的SPI子文件夹,可以看到

 tegra114就是jetson Xavier的相关spi属性信息。比如SPI速度怎么设置

本期文章就到这里。 

  • 15
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gaosiy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值