Ist es möglich, die LEDs eines Notebooks vorübergehend zu deaktivieren? (Festplatte, Stromversorgung, Aufladung)

9

Meine Frage ist, ob es möglich ist, einen Terminalbefehl (oder etwas anderes) auszuführen, um die Anzeige-LEDs eines Laptops zu deaktivieren.

Ich habe LEDs für CAPS, NUM und WiFi, die sowieso ausgeschaltet sind. Bei Dunkelheit ist es jedoch sehr ärgerlich, wenn die LED für die HDD-Nutzungsanzeige ständig blinkt.
Es gibt auch eine konstant leuchtende blau / rote Power-LED und eine Ladeanzeige, die ich ausschalten möchte.

Daher möchte ich ein Skript schreiben, das diese LEDs deaktiviert (und ein anderes, das diese aktiviert), wenn dies möglich ist. Werden sie von Software oder Hardware gesteuert? Mein Laptop ist ein etwa 10 Jahre altes No-Name-Modell (MaxData Pro 6100 iw). Es läuft unter Ubuntu 14.10 (Utopic Unicorn).

Byte Commander
quelle
4
Schwarzes Isolierband?
Oldfred
@oldfred Wenn ich an dieser Art von Lösung interessiert gewesen wäre, hätte ich die Fragen auf Lifehacks gepostet ! Nein, ich möchte, wenn möglich, eine Softwarelösung. Ich habe auch ein Skript, das den Bildschirm mit einer Verknüpfung ausschaltet, und ich möchte die Befehle auch dazu hinzufügen.
Byte Commander
2
Nach meinem Verständnis wird jede dieser Leuchten separat von verschiedenen Treibern verwaltet. Es gibt mit ziemlicher Sicherheit keine "Einheitsgröße" -Lösung.
Seth
Ich kann eine Reihe von Befehlen ausführen, das ist nicht das Problem. Ich freue mich über jede LED, die ich manuell steuern kann ... :-)
Byte Commander
1
Datenschutzbezogene Randnotiz: Einige Anzeigelampen, insbesondere bei einigen Kameras, sind an die Stromversorgung angeschlossen. Auf diese Weise leuchtet die LED immer, wenn die Kamera verwendet wird. Dies verhindert, dass ein böswilliger Benutzer die LED per Software deaktiviert und die Kamera ohne Ihr Wissen einschaltet.
Daniel

Antworten:

5

Einige der LEDs sind nur Hardware und es gibt keine Möglichkeit, ihren Status programmgesteuert zu ändern.

Auf diejenigen, die gesteuert werden können, kann über das sysfsvirtuelle Dateisystem unter zugegriffen werden /sys/class/leds/.

Ob eine bestimmte LED programmgesteuert gesteuert werden kann oder nicht, hängt von der jeweiligen Hardware ab. Zum Beispiel hat mein Desktop-Computer einige LEDs, aber keine davon scheint steuerbar zu sein. Ich habe auch an einigen Laptops experimentiert, und obwohl es einige Einträge unter gab /sys/class/leds/, konnte ich den Status von LEDs nicht steuern, was bedeutet, dass der jeweilige Kerneltreiber die manuelle Steuerung des nicht zulässt LEDs, die eine schreibgeschützte Schnittstelle bieten. Folgendes habe ich ohne Wirkung versucht:

# cd /sys/class/leds/
# ls
ath9k-phy0
# cd ./ath9k-phy0
# ls
brightness  device  max_brightness  power  subsystem  trigger  uevent
# cat ./trigger 
[none] AC-online BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid usb-gadget usb-host cpu0 cpu1 rfkill1 phy0rx phy0tx phy0assoc phy0radio phy0tpt rfkill4 
# echo 'AC-online' > ./trigger 
# cat ./trigger 
none [AC-online] BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid usb-gadget usb-host cpu0 cpu1 rfkill1 phy0rx phy0tx phy0assoc phy0radio phy0tpt rfkill4 
# echo 'none' > ./trigger 
# echo 'phy0rx' > ./trigger 
# echo 'none' > ./trigger 
# cat ./trigger 
[none] AC-online BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid usb-gadget usb-host cpu0 cpu1 rfkill1 phy0rx phy0tx phy0assoc phy0radio phy0tpt rfkill4 
# cat ./brightness 
0
# cat ./max_brightness 
255
# echo 255 > ./brightness 

Etwas wie das oben Genannte sollte es Ihnen theoretisch ermöglichen, die LEDs zu steuern, die von den Kerneltreibern für die jeweilige Hardware unterstützt werden. Wenn die Steuerung einer bestimmten LED im Kernel nicht unterstützt wird, können Sie, abgesehen vom Schreiben eines Kernelmoduls, nicht viel tun.

Hier finden Sie weitere Informationen zu diesem Thema bei superuser.

Hier ist die ultimative Quelle: Kerneldokumentation

Sergey
quelle
1
Ich habe die Dokumente heruntergeladen und werde sie selbst durcharbeiten. Vielen Dank. Allerdings würde ich mich natürlich über eine Schritt-für-Schritt-Anleitung von Ihnen
Byte Commander