Ray*_*Ray 5 overlay device-tree beagleboneblack
我正在使用Debian wheezy文件系统和Robert Nelson的最新内核.我想禁用使用设备树覆盖的心跳.
我知道有更简单的方法可以做到这一点,但我只对使用叠加来禁用心跳导致的答案感兴趣.
我可以通过以下方式更改gpio-leds,led0 leaf in am335x-boneblack.dts:linux,default-trigger ="heartbeat"; 到linux,default-trigger ="none";
然后编译设备树并重新启动.
但是,如果我尝试使用以下叠加层实现相同的功能,则在使用echo> $ SLOTS成功应用叠加层后,心跳指示灯会继续闪烁.
我究竟做错了什么?
/dts-v1/;
/plugin/;
/
{
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "pru";
version = "00A0";
fragment@0
{
target = <&ocp>;
__overlay__
{
gpio-leds
{
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <0x3>;
led0
{
label = "beaglebone:green:usr0";
gpios = <0x5 0x15 0x0>;
linux,default-trigger = "none";
default-state = "off";
};
};
};
};
};
Run Code Online (Sandbox Code Playgroud)
有一个 systemd 服务 leds.service,它会覆盖这个 led 的设备树设置(谁知道为什么)。
要查看服务的状态,请运行
root@beaglebone:~# systemctl status leds.service
Run Code Online (Sandbox Code Playgroud)
这给出了输出
leds.service - Angstrom LED config
Loaded: loaded (/lib/systemd/system/leds.service; enabled)
Active: active (exited) since Sat 2000-01-01 18:33:24 UTC; 13 years 7 months ago
Process: 125 ExecStart=/usr/bin/led-config start (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/leds.service
Run Code Online (Sandbox Code Playgroud)
通过查看“Loaded”字段,您可以看到服务脚本位于/lib/systemd/system/leds.service,“Process”字段表示该服务运行命令“/usr/bin/led-配置启动”。
查看此文件“/usr/bin/led-config”,您会发现它是一个从文件“/etc/default/leds”加载默认值的 shell 脚本:
#file format: name trigger
beaglebone::usr0 heartbeat
Run Code Online (Sandbox Code Playgroud)
因此,您可以保留设备树文件并在此处设置默认值,或者使用以下命令禁用此服务
systemctl disable leds.service
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3908 次 |
| 最近记录: |