書き換え中・・・中断 Edit

  • linux-2.6.19-landisk メモ
    • RTC新インタフェースへの対応
    • button 仕様変更
    • SH-IDEが除外されている。
      • 現状、USL-5PでCFが使えない。
      • linux-2.6.20のlibata(driver/ata/pata_platform.c)でサポートされるらしい。?

お試し版 Edit

http://eggplant.ddo.jp/www/download/kernel26/linux-2.6.19-landisk-tmp/

対応landisk-tools:
http://eggplant.ddo.jp/www/download/debian26/base/landisk-tools-20061204.tgz

button 仕様変更 Edit

landisk-tools-20061204.tgz の btnctrl2.cを例に簡単に説明します。
本例では、(1)デバイスファイルをオープン、(2)selectでボタンの押下イベントを監視、(3)ボタンの情報を読み、押されたボタンの判定を行う、という手順でボタンの検出を行っています。
selectを使用すると、タイムアウト処理、即ち「一定時間待ってボタンが押されなかった時の処理」を簡潔に記述できます。

  • /usr/local/src/landisk-tools/btnctrl2.c
    int main(int argc, char *argv[])
    {
      int fd;
      int ret;
      struct timeval tv;
      fd_set rfds;
      char buf[4];
      int btn;
    
     // 省略
    
      fd = open("/dev/btnctrl2", O_RDONLY); // (1)
      if(fd == -1) {
        printf("/dev/btnctrl2 open error...\n");
        exit(0);
      }
    
      while (1) {
        FD_ZERO(&rfds);
        FD_SET(fd, &rfds);
        tv.tv_sec = 60;
        tv.tv_usec = 0;
        ret = select( fd + 1, &rfds, NULL, NULL, &tv ); // (2)
    
        if( ret < 0 ) {
          // 省略
        }else if(ret > 0){
          read( fd, buf, 1 ); // (3)
          btn = (int)buf[0];
          // 省略
        }
      }
    }
    

デバイスファイルの補足事項 Edit

RTC等のデバイス番号は、カーネル起動時に動的に割り当てられるよう、仕様変更されています。
本来ならは、udev を実装してデバイスの動的割り当てを行うべきでしょうが、面倒なので、
下記スクリプトで代用することにします。

  • /etc/rc.boot/landisk_setup
    #!/bin/sh
    
    DEV=`awk '$2 ~ /rtc/ { print $1;}' /proc/devices`
    rm -f /dev/rtc 
    if [ "$DEV" != "" ] ; then
        mknod -m 660 /dev/rtc c $DEV 0
    else
        mknod -m 660 /dev/rtc c 10 135
    fi
    
    DEV=`awk '$2 ~ /landisk_drv/ { print $1;}' /proc/devices`
    rm -f /dev/btnctrl /dev/btnctrl2 /dev/ledctrl
    if [ "$DEV" != "" ] ; then
        mknod -m 440 /dev/btnctrl2 c $DEV 0
        mknod -m 660 /dev/ledctrl  c $DEV 1
    else
        mknod -m 600 /dev/btnctrl  c 99 22
        mknod -m 660 /dev/ledctrl  c 99 21
    fi
    

コメント等 Edit

#comment


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-01-13 (土) 11:33:15 (6316d)