2013-08-22 8 views
5

Ich benutze das Debian Wheezy-Dateisystem mit Robert Nelson neuesten Kernel. Ich möchte die Heartbeat-LED mithilfe eines Gerätebaum-Overlays deaktivieren.Änderung hearbeat führte auf Beaglebone schwarz mit Gerät Baum Overlay

Ich verstehe, es gibt einfachere Möglichkeiten, dies zu tun, aber ich bin nur in Antworten mit Overlays interessiert, um den Herzschlag zu deaktivieren.

Ein Weg, ich dies erreichen kann, ist durch die GPIO-LED ändern, LED0 Blatt in AM335x-boneblack.dts aus: linux, default-Trigger = "Herzschlag"; bis linux, default-trigger = "none";

dann Kompilieren der Gerätebaum und Neustart.

Wenn ich jedoch versuche, dasselbe mit dem folgenden Overlay zu implementieren, blinkt die Heartbeat-LED weiter, nachdem ich das Overlay erfolgreich mit echo> $ SLOTS angewendet habe.
Was mache ich falsch?

/dts-v1/; 
/plugin/; 
/
{ 
    compatible = "ti,beaglebone", "ti,beaglebone-black"; 
part-number = "pru"; 
version = "00A0"; 
[email protected] 
{ 
    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"; 
      }; 
     }; 
    }; 
}; 
}; 

Antwort

0

Es gibt einen systemd Service, leds.service, dass die Gerätebaum-Einstellungen für diese überschreibt geführt (wer weiß, warum).

Um den Status des Dienstes zu sehen, laufen

[email protected]:~# systemctl status leds.service 

, die die Ausgabe, dass der Service-Skript Sie können sehen,

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 

Mit Blick auf die „Loaded“ Feld gibt an befindet/lib/systemd/system/leds.service, und das Feld "Process" sagt, dass dieser Dienst den Befehl "/ usr/bin/led-config start" ausführt.

in dieser Datei suchen "/ usr/bin/led-config" Sie werden sehen, dass es ein Shell-Skript ist, die Standardwerte aus der Datei "/ etc/default/LED" lädt: So

#file format: name trigger 
beaglebone::usr0 heartbeat 

können Sie den Gerätebaum-Datei allein und legen Sie die Standardwerte hier, oder deaktivieren Sie diesen Dienst mit

systemctl disable leds.service 
+0

Danke für die Info. Der Dienst "leds.service" wird jedoch nicht auf debian ausgeführt. Zweitens versuche ich zu verstehen, warum das Deaktivieren der LED funktioniert, wenn ich den Gerätebaum neu kompiliere und neu starte, aber nicht funktioniert, wenn ich den identischen Code in einem Gerätebaum-Overlay verwende. – Ray

0

Um den Herzschlag mit einem Overlay zu deaktivieren ist sehr ineffizient meiner Meinung nach verlassen! Wie wäre es stattdessen mit dem Befehl bash: "echo none> /sys/devices/ocp.3/gpio-leds.8/beaglebone\:green\:usr0/trigger" und dann wieder auf "echo" Heartbeat "> trigger '(überprüfen Sie den Dateipfad zuerst) - getestet auf Debian Wheezy A5A

Verwandte Themen