[Armadillo:08415] Re: Armadillo-220とオムロンUPS(BZシリーズ)のUSB接続について

email@hidden
2012年 11月 19日 (月) 18:58:59 JST


# なんか件名がバケますね...

At Mon, 19 Nov 2012 17:31:59 +0900,
佐々木 刻 wrote:
> 
> > 1) PCで device node の major と minor 番号を調べ
> > 2) Armadillo上で、device node を作成する
> 
> debianPCで# ls -l を使用すると、以下が表示されました。
> crw------- 1 root root 180, 0 2012-11-19 17:08 /dev/usb/hiddev0
> crw------- 1 root root 251, 0 2012-11-19 17:08 /dev/hidraw0
> 
> 上記のデバイスを実機でも作成してみました。
> #mkdir /dev/usb
> #mknod /dev/usb/hiddev0 c 180 0
> #mknod /dev/hidraw0 c 251 0
> 
> 上記を行い、今回使おうとしているUPSを接続すればデバイスが認識され、
> プログラムを作成する際は通常のデバイスファイルとして扱うことができる、
> ということでしょうか?

そうです。

細かいことを言えば、「デバイスの認識」は

> usb 1-2: new low speed USB device using ep93xxusb and address 2
> hiddev96: USB HID v1.11 Device [OMRON BZ35LT2] on usb-ep93xxusb.0-2

と表示される時に、行なわれています。

作成したプログラムが、手動で作成した device node に「通常のデバイスファ
イル」としてアクセスしたときに、カーネルが「device node」と「デバイスド
ライバ」を紐付けてくれます。

システムが起動するときのイベントを時系列に列べると、以下のようになります

   0) 電源が入る
   1) device driver が deviceを発見し、カーネル内に登録
      登録されると major と minor 番号が確定する
   2) 起動後、手動で device node を作成
   3) アプリが device node にアクセス
   4) カーネルは device node の major と minor 番号から該当する
      device driver を選択し、処理を任せる

アプリからデバイスへのアクセスでは、以下のようになります。

   (3)app -> (2)device node -(4)-> device driver -(1)-> device

# 「どの順番でアプリからデバイスへのアクセスパスが作成されるか」が分る
# ように、上記の番号も入れてみました。

なので、実は device node の名前はどうでも良くて、majorとminor の組み合
わせが重要です。今回は、Armadillo にも PC にも HID device が「ない」も
のとして簡易的に ls で確認してもらいました。しかし、ちゃんと調べるので
あれば、

    $ cat /sys/bus/usb/devices/X-Y/dev

として、major と minor 番号を調べる方が良いです。このコマンドは、UPSを
指した後に Armadillo 上で実行しみてください。lsusb がなくても、major と
minor が取れるはずです。起動ログ表示された番号で 「X」と 「Y」 を置き換
えるのをお忘れなく。
-- 
               yashi




armadillo メーリングリストの案内