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では使えないようですね。
まあ、これからも使う方法を探していくのですが。
シャープは屑。