关于什么是设备树,设备树的语法,单独编译设备树的方法可以查看立创开发板训练营-Linux设备树的文档。
本文主要讲解使用WSL2与Docker修改设备树文件,编译内核并下载到开发板上。
关于WSL2、Docker的安装可以参考我之前的笔记:
立创泰山派tspi-训练营笔记-WSL2安装使用Docker(Win11)
立创泰山派tspi-训练营笔记-WSL2使用Docker编译泰山派tspi的SDK(Win11)
修改设备树文件
我们就以立创训练营的作业选几个为例来修改设备树:
- 修改设备树失能泰山派上的三色用户LED灯
- 修改设备树失能和使能HDMI输出
- 关闭网口解决串口因寻不到网口频繁打印日志问题
- 调试串口的波特率目前是1500000,尝试把波特率改成115200
如果使用WSL可以直接使用vscode打开SDK的文件夹:
第一次打开会有个弹窗,点允许就可以。
在右侧找到设备树文件,如图进入这个目录,拉到最下面
-
修改设备树失能泰山派上的三色用户LED灯
在
tspi-rk3566-user-v10-linux.dts
文件中设置三色灯状态为disabled//用户三色灯 &leds { status = "disabled"; };
LED默认还是亮,这是因为disabled仅仅是不能闪烁和操作了,而在驱动中LED被默认点亮了。
RGB LED原理图如下所示:
因此如果想熄灭LED,我们可以把上面的
status = "okay";
改回来,然后把打开时间blink-delay-on
改为0即可leds: leds { compatible = "gpio-leds"; rgb_led_r: rgb-led-r { gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_LOW>; linux,default-trigger = "timer"; linux,delay-reg = <0>; // 延时注册 linux,blink-delay-on = <0>; // 打开时间 linux,blink-delay-off = <1000>; // 关闭时间 }; rgb_led_g: rgb-led-g { gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>; linux,default-trigger = "timer"; linux,delay-reg = <100>; // 延时注册 linux,blink-delay-on = <0>; linux,blink-delay-off = <1000>; }; rgb_led_b: rgb-led-b { gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>; linux,default-trigger = "timer"; linux,delay-reg = <100>; // 延时注册 linux,blink-delay-on = <0>; linux,blink-