我正在使用Debian wheezy文件系统和Robert Nelson的最新内核。 我想使用设备树覆盖禁用心跳指示。
我知道有更简单的方法可以做到这一点,但我只对使用叠加来禁用心跳导致的答案感兴趣。
我能实现这一目标的一种方法是在am335x-boneblack.dts中更改gpio-leds,led0 leaf 从: linux,default-trigger =“heartbeat”; 至 linux,default-trigger =“none”;
然后编译设备树并重新启动。
但是,如果我尝试使用以下叠加层实现相同的功能,则在使用echo>成功应用叠加层后,心跳指示灯会继续闪烁。 $插槽。
我做错了什么?
/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";
};
};
};
};
};
答案 0 :(得分:0)
有一个systemd服务leds.service,它覆盖了这个led的设备树设置(谁知道原因)。
要查看服务的状态,请运行
root@beaglebone:~# systemctl status leds.service
给出输出
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
通过查看“已加载”字段,您可以看到服务脚本位于/lib/systemd/system/leds.service,“Process”字段表示此服务运行命令“/ usr / bin / led-config start“。
查看此文件“/ usr / bin / led-config”,您会看到它是一个shell脚本,它从文件“/ etc / default / leds”加载默认值:
#file format: name trigger
beaglebone::usr0 heartbeat
因此,您可以单独保留设备树文件并在此处设置默认值,或使用
禁用此服务systemctl disable leds.service
答案 1 :(得分:0)
在我看来,用叠加禁用心跳是非常低效的!相反,请尝试输入bash命令:&#34; echo none&gt; /sys/devices/ocp.3/gpio-leds.8/beaglebone\:green\:usr0/trigger"然后把它们重新打开,回声&#34;心跳&#34; &GT;触发&#39; (首先检查文件路径) - 在Debian Wheezy A5A上测试