嵌入式Linux添加设备树节点
查看设备树节点方法以 imx6ull 开发板为例, 打开内核源码 linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/boot/dts 目录,输入命令编辑设备树文件 vim imx6ull-14x14-evk.dts。打开文件后, 我首先找到根节点, 如下图所示:在根节点的末尾准备添加设备节点, 那么怎么来验证自己添加设备节点成功了呢?设备树可以在 linux 系
查看设备树节点方法
以 imx6ull 开发板为例, 打开内核源码 linux-imx-rel_imx_4.1.15_2.1.0_ga/arch/arm/boot/dts 目录,输入命令编辑设备树文件 vim imx6ull-14x14-evk.dts。打开文件后, 我首先找到根节点, 如下图所示:
在根节点的末尾准备添加设备节点, 那么怎么来验证自己添加设备节点成功了呢?设备树可以
在 linux 系统里面以文件或者是目录的形式表示出来, 这里有两种方法。
方法一, 进入到开发板的/proc/device-tree/目录下, 如下图所示:
cd /proc/device-tree
ls
比如说, 想要查看根节点下的“model” “compatible” ,输入以下命令:
cat model
cat compatible
接下来可以用这种方法来验证在设备树文件里面我们是否成功添加了自己的节点。
方法二, 我们也可以进入开发板的/sys/firmware/devicetree/base/目录下, 如下图所示:
cd /sys/firmware/devicetree/base/
ls
添加自定义节点
在设备树文件 imx6ull-14x14-evk.dts 文件中根节点的末尾添加自定义的节点, 如下图所示, 添加完保存退出。
注意, 添加自定义节点前要注释掉冲突使用的设备。 添加完保存文件并退出, 接下来编译设备树文件。
编译设备树文件
如果环境没有 dtc 工具, 需要安装 dtc 工具。 输入以下命令安装 dtc 工具:
apt-get install device-tree-compiler
然后输入以下命令设置交叉编译器和编译设备树:
export PATH=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin:$PATH
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
如下图所示, 已经开始编译所有的设备树文件
但是只想编译 imx6ull-14x14-evk.dts 文件, 可以将上述命令的 dtbs 替换为 imx6ull-14x14-evk.dts, 因为我们 imx6ull 烧写的是 topeet_emmc_4_3.dtb 的设备树, 所以编译命令如下图所示, 如果用户烧写的是其他屏幕的设备树文件, 可以修改为对应的命令。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- topeet_emmc_4_3.dtb
运行测试
将编译生成的设备树文件烧写到开发板上面, 因为编译的是 4.3 寸屏幕的设备树文件, 所以在 uboot模式下设置屏幕为 4.3 寸, 烧写镜像请参考 37.2.2 章节烧写设备树镜像。
开发板启动后进入/proc/device-tree 目录下, 如下图所示:
cd /proc/device-tree
输入以下命令查看 test 节点信息, 如下图所示:
cd test
cat compatibel
cat name
验证结论
修改设备树文件 imx6ull-14x14-evk.dts 为下图所示, 验证俩个结论
1 通过节点的引用来修改原来节点里面的内容
2 通过节点的引用往原来的节点里面添加内容
添加了节点引用“status = “okay” ,并且重新赋值给 compatible 为“test1234” 。
修改完设备树文件, 然后编译烧写到开发板上面, 启动后如下图所示:
进入/proc/device-tree 目录下, 如下图所示:
cd /proc/device-tree
cd test
cat compatibel
cat status
由上图可知, 验证的两个结论完全正确, 已经可以查看到覆盖掉的 compatible 属性显示“test1234”,可以查到 status 属性的状态为“okay” 。
更多推荐
所有评论(0)