建议:去原文链接观看,排版、观感便于学习。
链接:
参考:用到野火提供的工具脚本。
设备树插件(Dynamic DeviceTree)与 Linux4.4 后引入。
设备树插件可以理解为设备树的补丁。可以动态加载到系统中,无需重新编译整个设备树。
设备树插件是有相对固定的格式的,相当于多穿一件衣服而已。
格式如下:
/dts-v1/;
/plugin/;
/ {
fragment@0 {
target-path = "/";
__overlay__ {
/*在此添加要插入的节点*/
};
};
};
分析:
/dts-v1/
:指定 dts 版本。/plugin/
:表示设备树插件中可以引用设备树中的节点。因为这些节点在设备树插件中是未定义的,所以,要加上本行code。target-path = "/";
:指定设备树插件加载的位置。(默认在根节点下)__overlay__ {…};
内。设备树和设备树插件都是使用 DTC 编译工具编译。
设备树编译后得到的是 .dtb 文件;
而设备树插件编译后得到的是 .dtbo 文件。
使用野火提供的一键式编译工具:
sudo apt-get autoremove device-tree-compiler
), 重新安装,然后在 ebf-linux-dtoverlays/basic/fixdep 文件的权限, 修改权限命令为:chmod 777 scripts/basic/fixdep
。编译设备树插件和编译设备树类似,这里使用内核中的dtc工具编译编译设备树插件。
编译命令:内核构建目录/scripts/dtc/dtc -I dts -O dtb -o xxx.dtbo xxx.dts
先拷贝设备树插件文件到开发板上。
先在 /sys/kernel/config/device-tree/overlays/下创建一个新目录,名字自定义。
然后将 dtbo 固件 echo 到 path 属性文件中或将 dtbo 的内容 cat 到 dtbo 属性文件中。
echo xxx.dtbo >/sys/kernel/config/device-tree/overlays/xxx/path
# 或
cat xxx.dtbo >/sys/kernel/config/device-tree/overlays/xxx/dtbo
删除设备插件:rmdir /sys/kernel/config/device-tree/overlays/xxx
。
不同的板子可能不支持。
修改环境变量文件即可,进入/boot目录下 修改 vim uEnv.txt
原文:https://www.cnblogs.com/lizhuming/p/14627195.html