- 追加された行はこの色です。
- 削除された行はこの色です。
* LED クラスドライバ [#g223f2a6]
最近の Linux カーネルには LED クラスドライバ(というのかな?)という,LED を抽象化するレイヤのドライバが入っています.
もっとも,PC/AT 互換機では,このドライバで扱えるデバイスは普通は付いていないので,「使ったことがある」という人はあまり多くないでしょう.
** 参考文献 [#vf239fa6]
Linux カーネルソースの linux/Documentation/leds-class.txt に説明があります.
** HDL-GXR では [#bbb13729]
先日の HDL-GXR 対応パッチでは,LED デバイスとして
- status (STATUS 窓の 緑 LED)
- error (STATUS 窓の 赤 LED)
- eSATA1 (eSATA1 接続中)
- USB1 (USB1 接続中)
- USB2 (USB2 接続中)
を登録してあります.
さらに,
- fan (ファン制御)
- buzzer (ブザー制御)
も,ホントは LED ではないのだけど登録してあります.
というわけで,これらも LED と同じ手順で制御できます.
** いじってみる [#nc40b437]
ユーザランドからは /sys の下のダミーのファイルから制御します.
というわけで,HDL-GXR で実際に見てみます.
# cd /sys/class/leds
# ls -l
合計 0
drwxr-xr-x 2 root root 0 2008-12-13 21:44 USB1
drwxr-xr-x 2 root root 0 2008-12-13 21:44 USB2
drwxr-xr-x 2 root root 0 2008-12-13 21:44 buzzer
drwxr-xr-x 2 root root 0 2008-12-13 21:44 eSATA1
drwxr-xr-x 2 root root 0 2008-12-13 21:44 error
drwxr-xr-x 2 root root 0 2008-12-13 21:44 fan
drwxr-xr-x 2 root root 0 2008-12-13 21:44 status
#
確かに登録したデバイスが見えています.
今回は USB1 LED をいじってみましょう.
# cd USB1
# ls -l
合計 0
-rw-r--r-- 1 root root 4096 2008-12-13 22:14 brightness
lrwxrwxrwx 1 root root 0 2008-12-13 22:14 device -> ../../../devices/platform
/leds-gpio
lrwxrwxrwx 1 root root 0 2008-12-13 22:14 subsystem -> ../../leds
-rw-r--r-- 1 root root 4096 2008-12-13 22:14 trigger
-rw-r--r-- 1 root root 4096 2008-12-13 21:44 uevent
#
** 手動制御 [#f121da36]
ユーザランドから逐次制御するには brightness ファイルに値を書き込んでやります.
値は輝度で 0 〜 255 の値を取ります.
が,輝度制御できない LED の場合は 0 で消灯,それ以外は点灯,となります.
HDL-GXR の LED は輝度制御の機能は無いので,後者の制御パターンになります.
やってみましょう.
# echo 1 > brightness
USB1 LED が点灯しました.
# echo 0 > brightness
USB1 LED が消灯しました.
** ハートビート [#db01e697]
LED ドライバには,ユーザランドからの手動制御以外にも,カーネル側で自動で駆動する機能があります.
# cat trigger
[none] timer heartbeat default-on
#
ここはディスクの I/O スケジューラと同じようなインターフェースとなっていて
- 組み込まれているロジックの名前が表示
- 現在有効のロジック名が [ ] で囲まれている
となっています.
ここでは none (自動制御なし)が有効になっています.
制御ロジックを変更するのも I/O スケジューラと同様に,変更したい名前を書き込んでやります.
つまり,heartbeat ロジックに変更する場合は
# echo heartbeat > trigger
でおっけー.
LED が点滅しだしましたね.
しかし,この点滅パターン,「ピカッピカッ……ピカッピカッ……」って,まさにハートビートww