leddrvを書く(4)

  • 投稿日:
  • by
  • カテゴリ:

デバイスドライバやカーネルとプログラムのインターフェイスには、通常のFile I/Oのほかに、/procに作った擬似ファイルを利用してやり取りする方法もあります。どうやら、ledcontは、これも利用しているようです。ならば、ナニが書いてあるのかを、2.6.10-iop1をブートして調べてみます。中身はこんな感じ。

$ cat /proc/leddrvmem
kernel_timer_led_param=0f000040
model=HDL-GW/GZ
$
ふむ、kernel_timer_led_paramはkernelの中に、GLANTANK用に追加した変数で、EXPORTされているし、modelは直接ではないけれど、iodata_board_idという変数で、HDL-GW/GZかHDL-Gかを識別できるので、この二つを返すように、procエントリを作ってやればいいはずです。もしかしたら、本当のleddrvは書き込みによる操作もサポートしているかもしれませんが、とりあえず、読み出しだけサポートすることにします(楽だから)。これは、推測なんですが、ledcontはmodelを見て、制御を替えているのではないかと思います。HDL-GとHDL-GW/GZとではLEDの数や機能が違っているようなのです。なお、手元にHDL-Gはありませんからテストできないので、この時点でHDL-Gへの対応はサボることが決定されました。まぁ、GLANTANK用だってことだからとりあえず、それで勘弁してもらいましょう。GPLでソースも晒す予定ですから、どうしてもHDL-G対応したいのであれば、その人にしてもらうってことで……(^^;;