5

Robert Nelson の最新カーネルで Debian wheezy ファイルシステムを使用しています。デバイス ツリー オーバーレイを使用して、ハートビート LED を無効にしたいと考えています。

これを行う簡単な方法があることは理解していますが、オーバーレイを使用してハートビートを無効にする回答にのみ関心があります。

これを実現する 1 つの方法は、am335x-boneblack.dts の gpio-leds,led0 リーフを次のように変更することです。Linux では、デフォルト トリガー = "なし";

次に、デバイス ツリーをコンパイルして再起動します。

ただし、次のオーバーレイを使用して同じことを実装しようとすると、echo > $SLOTS でオーバーレイを正常に適用した後、ハートビート LED が点滅し続けます。
私は何を間違っていますか?

/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";
            };
        };
    };
};
};
4

2 に答える 2

0

この1つのledのデバイスツリー設定をオーバーライドするsystemdサービス、leds.serviceがあります(理由は誰にもわかりません)。

サービスのステータスを確認するには、次を実行します

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

"Loaded" フィールドを見ると、サービス スクリプトが /lib/systemd/system/leds.service にあることがわかります。"Process" フィールドには、このサービスがコマンド "/usr/bin/led-設定開始」。

このファイル「/usr/bin/led-config」を見ると、ファイル「/etc/default/leds」からデフォルトをロードするシェル スクリプトであることがわかります。

#file format: name trigger
beaglebone::usr0 heartbeat

したがって、デバイス ツリー ファイルをそのままにして、ここでデフォルトを設定するか、このサービスを無効にすることができます。

systemctl disable leds.service
于 2013-08-29T22:18:45.637 に答える