在进行Linux板子开发时,常常需要对设备树进行修改。
需要修改的设备树路径 ~/rk3568_linux_sdk/kernel/arch/arm64/boot/dts/rockchip/rk3568-atk-evb1-ddr4-v10.dtsi。
单独编译设备树命令
cd ~/rk3568_linux_sdk/kernel
make ARCH=arm64 CROSS_COMPILE=/home/yangm/rk3568_linux_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- rockchip/rk3568-atk-evb1-ddr4-v10-linux.dtb
可以通过反编译检查生成的.dtb 文件中是否包含你的节点,这个技巧可以帮助查看想要的功能有没有加入到设备树中

反编译工具的安装指令是
# 安装 device-tree-compiler 工具
sudo apt install device-tree-compiler
# 反编译 dtb 并搜索 rk3568_led,反编译的命令
fdtdump kernel/arch/arm64/boot/dts/rockchip/rk3568-atk-evb1-ddr4-v10-linux.dtb | grep -A10 rk3568_led。
如果有输出,说明节点已存在;如果没有,说明节点未被包含。
对文件进行编译及将编译完的文件发送到开发板:
下面的命令是图片中的命令代码:
yangm@yangm-virtual-machine:~/Linux_Drivers/04_dtsled$ /opt/atk-dlrk356x-toolchain/bin/aarch64-buildroot-linux-gnu-gcc ledApp.c -o ledApp
yangm@yangm-virtual-machine:~/Linux_Drivers/04_dtsled$ adb push dtsled.ko ledApp /lib/modules/5.10.160
dtsled.ko: 1 file pushed, 0 skipped. 628.6 MB/s (367880 bytes in 0.001s)
ledApp: 1 file pushed, 0 skipped. 216.0 MB/s (9336 bytes in 0.000s)
2 files pushed, 0 skipped. 2.4 MB/s (377216 bytes in 0.148s)。
下面两句指令可以查看开发板上是否有 rk3568_led目录。
adb shell
ls /proc/device-tree/ | grep rk3568_led
连接到开发板,关闭心跳灯,进入dtsled所在目录,并加载模块。
depmod //第一次加载驱动的时候需要运行此命令
modprobe dtsled //加载驱动
./ledApp /dev/dtsled 1 //打开 LED 灯
./ledApp /dev/dtsled 0 //关闭 LED 灯
rmmod dtsled.ko //卸载驱动

也可以扫描下面二维码关注我的公众号,方便查看更多文章!





