我有一个设备树覆盖:
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "mousetraps";
version = "00A1";
/* https://github.com/derekmolloy/boneDeviceTree/blob/master/docs/BeagleboneBlackP9HeaderTable.pdf */
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
mousetrap_pins: pinmux_mousetrap_pins {
pinctrl-single,pins = <
0x070 0x2f /* P9_11 30 INPUT MODE7 none */
0x074 0x2f /* P9_13 31 INPUT MODE7 none */
0x040 0x2f /* P9_15 48 INPUT MODE7 none */
0x15c 0x2f /* P9_17 05 INPUT MODE7 none */
>;
};
};
};
fragment@1 {
target = <&ocp>;
__overlay__ {
test_helper: helper {
compatible = "bone-pinmux-helper";
pinctrl-names = "default";
pinctrl-0 = <&mousetrap_pins>;
status = "okay";
};
};
};
};
我可以成功加载:
echo mousetraps:00A1 >/sys/devices/bone_capemgr.8/driver/bone_capemgr.8/slots ; dmesg | grep bone
如何配置BBB / Angstrom以在启动时自动加载?
更具体地说,如何将dtbo文件挂钩到正常的设备树加载机制?我知道我可以将echo添加到linux init脚本中,但似乎必须有一些东西会触发加载dtbo文件。
答案 0 :(得分:3)
执行此操作的一种方法是将dtbo
复制到/lib/firmware
并修改内核capemgr.extra_override
中的bootargs
参数(在 uEnv.txt )指向dtbo
文件。此技术还需要修改/arch/arm/boot/dts/am335-bone-common.dtsi
文件。此 discussion 中的详细信息。
请注意,从文件系统加载设备树覆盖图似乎是beaglebone black上最近的内核(来自官方存储库)的问题。为了解决这个问题,另一种编译叠加层的方法是 here 。
答案 1 :(得分:3)
你可以在uEnv.txt中添加一个参数 这是指您之前建议的新叠加层 将以下字符串添加到uEnv.txt
的末尾nano /mnt/boot/uEnv.txt
#add this to the end of the single line of uEnv.txt:
capemgr.enable_partno=mousetraps
答案 2 :(得分:0)
这对我有用
来自link provided @ craig-mcqueen并使用此device tree overlay example
在/boot/uboot/uEnv.txt
文件中(DM-GPIO-Test是我的叠加层的名称):
cmdline=coherent_pool=1M cape_universal=enable bone_capemgr.enable _partno=DM-GPIO-Test noapic
创建/etc/initramfs-tools/hooks/dtbo
#!/bin/sh
set -e
. /usr/share/initramfs-tools/hook-functions
# Copy Device Tree fragments
mkdir -p "${DESTDIR}/lib/firmware"
cp -p /lib/firmware/*.dtbo "${DESTDIR}/lib/firmware/"
使其可执行:
sudo chmod +x /etc/initramfs-tools/hooks/dtbo
备份initrd:
sudo cp /boot/initrd.img-4.4.68-ti-r106 /boot/initrd.img-4.4.68-ti-r106.bak
更新initrd:
/opt/scripts/tools/developers/update_initrd.sh
重新启动
sudo reboot
检查它是否已加载:
root@beaglebone:/home/debian# cat /sys/devices/platform/bone_capemgr/slots
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,DM-GPIO-Test