是想打开BBB上的DCAN1,dts文件的编写参考了http://www.embedded-things.com/b ... e-beaglebone-black/代码如下:
BB-DCAN1-00A0.dts
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
/* identification */
part-number = "dcan1pinmux";
fragment@0 {
target = ;
__overlay__ {
dcan1_pins_s0: dcan1_pins_s0 {
pinctrl-single,pins = <
0x180 0x12 /* d_can1_tx, SLEWCTRL_FAST | INPUT_PULLUP | MODE2 */
0x184 0x32 /* d_can1_rx, SLEWCTRL_FAST | RECV_ENABLE | INPUT_PULLUP | MODE2 */
>;
};
};
};
fragment@1 {
target = ;
__overlay__ {
#address-cells = ;
#size-cells = ;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = ;
};
};
};复制代码
生成了 BB-DCAN1-00A0.dtbo放在了/lib/firmware下,
通过echo BB-DCAN1 > /sys/devices/bone_capemgr.8/slots复制代码命令加载成功。现在希望通过写一个service来实现这个dtbo的自动加载。
在/etc/systemd/system目录下新建一个文件,命名mystartup.service,内容如下:
[Unit]
Description=My script
[Service]
ExecStart=/home/root/mystartup.sh
[Install]
WantedBy=multi-user.target 复制代码
然后在 /home/root 目录新建一个mystartup.sh,内容如下:
#!/bin/sh
echo BB-DCAN1 > /sys/devices/bone_capemgr.8/slots复制代码
最后执行命令:
systemctl enable myscript.service复制代码
但是出现了这个情况
于是我进行了这样的操作
重启BBB之后发现还是没有加载dtbo,查看状态显示如下:
不知道是哪一步出了问题