jetson Tx2 NX 使用RX8025t作为外部RTC时钟 + 打开/dev/ttyTHS2
1.rx8025t驱动
驱动文件见git,下载后直接make.产生rtc-rx8025.ko
2.修改设备树
2.1确定rx8025t的安装位置
安装i2c-tools
sudo apt-get update
sudo apt-get install i2c-tools
查找rtc安装位置
主要是确认rtc安装在哪一个i2c上,然后找出对应的设备树位置进行添加.
// 比如我的rtc安装在i2c-0上
sudo i2cdetect -y -r 0
运行上述命令后,会在对应的32位置出现数字
另外,通过运行以下命令,查找i2c-x对应的设备树信息
sudo i2cdetect -l
找出对应的位置,例如我安装在了i2c-0的位置上,即在3160000.i2c上
2.2修改设备树文件
一般情况下,在jetson系统下/boot/dtb/kernel_*.dtb即为系统的dtb文件(如jetson tx2 nx安装jetpack 4.6.4, dtb为kernel_tegra186-p3636-0001-p3509-0000-a01.dtb) ,我们只需要在对应位置上添加上外接rtc信息即可
安装反编译和编译工具:
sudo apt update
sudo apt install device-tree-compiler
反编译dtb > dts
sudo dtc -I dtb -O dts A.dtb > A.dts
然后对A.dts进行修改,上述外部rtc安装在了i2c-0上,对应的设备树信息为3160000.i2c,则直接查找进行添加:
注意上图红框中为添加内容,32为rtc在i2c-0的位置,compatible需要和驱动中的id对应(可随意修改)
修改后,运行下方命令编译dts
sudo dtc -I dts -O dtb A.dts > A.dtb
编译完成后即可替换,会出现大量warning,一般可忽略
2.3替换设备树文件
将新得到的设备树文件*.dtb拷贝至jetson系统下/boot/dtb/文件夹下,然后修改/boot/extlinux/extlinux.conf即可
注意:红框中的dtb为新生成的dtb文件
3.测试使用
直接加载编译后的rx8025t驱动文件
sudo insmod path:/rtc-rx8025.ko
即可出现以下信息
由上图可见,rx8025t被注册为了rtc2
因此可使用hwclock来进行rtc2的访问了
sudo hwclock -w --rtc /dev/rtc2
sudo hwclock -r --rtc /dev/rtc2
**PS:**如果需要打开jeton tx2 nx的 /dev/rryTHS2串口, 主要在上述步骤中的设备树文件修改中,将下面的信息改为okay即可
加载新的dtb后,可见/dev/ttyTHS2出现了…