View on GitHub

Naokisz

linuxでのLED制御

linuxを使い始めた時からずっと気になってたことが有りました。
それは、windowsを使ってた時は無線LAN子機通信時に 電源ボタン近くにある無線LAN通信LEDが点滅してたのですが、 linuxの場合は全く点滅せず光りっぱなしということです。

まあ、それで何か困ったという訳では無いのですが、 少し気になって調べてみたらled class driverというものが 有ったことを知りました。
そしてwebページ(URL忘れた)の言っていたとおり、/sys/class/leds/ を覗いてみると、もう名前からしてそれっぽいath9k-phy0という リンクが有り、echo 0 > brightnessをしてみると 無線LAN通信LEDが消えました。

今までラズパイやマイコンなどでLEDを制御したみたいな経験が無いので、 たったLEDを消しただけなのですが、linux kernel device driverの世界に Hello World!!したみたいな気持ちでした。

LEDが消せたぐらいで感動してしまったのですが、本当はそのLEDを本来の 無線LAN通信LEDとしての役割をさせたかったので、 echo phy0tpt > triggerをlc.localに追記して 長年の謎をやっと解くことに成功しました。

ちょっと遊んでみた

led class driverは基本、どこに有るLEDでも、本来使われるべき用途が 何であろうと、認識さえしていれば、どのような目的にでも使うことが出来ます。(?)
無線LAN通信LEDをUSBの通信ランプにすることも、 キーボードのnumlockLEDをUSBの通信ランプにすることも・・・。 (私のパソコンで使えるtriggerの中で一番点滅してくれるのがusb-hostだからお面白いというだけ) キーボードのLEDの寿命を短くするの楽しい!!

スマホのLED

私のスマホにも/sys/class/leds/が有るのですが、ある筈のないキーボードバックライト 制御用のLEDや、どこにも無さそうなSDカード用のLEDとかがあって良く分からないです。 唯一特定出来たのは、カメラのフラッシュ用LEDだけで全く使い物になりません。
通知用LEDが有るのですが、何故かled class driverでは使えないようですね。 まあ、これからも使う方法を探していくのですが。
シャープは屑。