web-dev-qa-db-ja.com

ノートブックのLEDを一時的に無効にすることはできますか? (HDD、電源、充電)

私の質問は、端末コマンド(または他の何か)を実行してラップトップのインジケータLEDを無効にすることができるかどうかです。

とにかくオフになっているCAPS、NUM、WiFiのLEDがあります。しかし、暗いときは、HDD使用インジケータLEDが常に点滅していると非常に迷惑です。
青色/赤色の常時点灯する電源LEDと、消灯したい充電インジケータもあります。

したがって、可能であれば、これらのLEDを無効にする(および有効にする別のスクリプト)スクリプトを作成したいと思います。ソフトウェアまたはハードウェアによって制御されていますか?私のラップトップは、おそらく約10年前の無名モデル(MaxData Pro 6100 iw)です。 Ubuntu 14.10(Utopic Unicorn)で実行されています。

9
Byte Commander

一部のLEDはハードウェアのみであり、プログラムでステータスを変更する方法はありません。

制御できるものには、/sys/class/leds/sysfs仮想ファイルシステムを介してアクセスできます。

特定のLEDをプログラムで制御できるかどうかは、特定のハードウェアによって異なります。たとえば、私のデスクトップマシンにはいくつかのLEDがありますが、どれも制御可能ではないようです。また、いくつかのラップトップで実験しましたが、/sys/class/leds/の下にいくつかのエントリがありましたが、LEDのステータスを制御できませんでした。つまり、特定のカーネルドライバーがLEDの手動制御を許可せず、読み取り専用インターフェイスを提供します。ここに私が試したものがありますが、効果はありません:

# 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 

上記のようなものは、理論的には、特定のハードウェアのカーネルドライバーでサポートされているLEDを制御できるはずです。カーネル内の特定のLEDの制御がサポートされていない場合は、カーネルモジュールを書く以外に、できることはあまりありません。

主題に関する詳細 はスーパーユーザーです。

最終的なソースは次のとおりです。 カーネルのドキュメント

5
Sergey