cfu1-driverで使えない機器を使うためのusbmgr.confの設定方法

  1. cfu1-driverをザウルスにインストールしてください。
  2. ターミナルをザウルスにインストールしてください。
    ※ザウルス添付CD-ROMに入っています。同等のソフトウェア(qpe-embeddedkonsole-ja ワイド版など)でもかまいません。
  3. 使いたいUSB機器をREX-CFU1経由でザウルスに接続してください。
  4. ターミナルを開いて「cat /proc/bus/usb/devices」と入力すると、接続されているUSB機器の情報が表示されます。以下に例を示します。

    bash-2.05$ cat /proc/bus/usb/devices
    T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
    B:  Alloc=217/900 us (24%), #Int=  2, #Iso=  0
    D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=0000 ProdID=0000 Rev= 0.00
    S:  Product=USB OHCI Root Hub
    S:  SerialNumber=fe000000
    C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
    E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms
    T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=1.5 MxCh= 0
    D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=0d3d ProdID=0001 Rev= 0.01
    S:  Product=USBPS2
    C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=keyboard
    E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=hid
    E:  Ad=82(I) Atr=03(Int.) MxPS=   5 Ivl=10ms
    bash-2.05$
    

    「T:」で始まる行から次の「T:」で始まる行の直前まで(無い場合は末尾まで)が1つのUSB機器の情報です。最初の1つはUSBルートハブと呼ばれる内部的に存在するものなので、接続したUSB機器の情報は2つ目の「T:」で始まる行からになります。上記の例から該当する部分のみを以下に示します。

    T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=1.5 MxCh= 0
    D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
    P:  Vendor=0d3d ProdID=0001 Rev= 0.01
    S:  Product=USBPS2
    C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=keyboard
    E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=hid
    E:  Ad=82(I) Atr=03(Int.) MxPS=   5 Ivl=10ms
    

    「I:」で始まる行から次の「I:」で始まる行の直前まで(無い場合は末尾まで)がキーボードやマウスといった個別の機能の情報になります。
    Clsがクラス、Subがサブクラス、Protがプロトコルの番号を示しています。
    クラスはHID(キーボードやマウスなど)やマスストレージ(USBメモリやCD-ROM、HDDなど)など種類によって基本的に決められており、サブクラスやプロトコルも合わせて見ることで、キーボードなのか、マウスなのかなどが判るようになっています。(古いUSB機器は例外が多いのですが。)
    以下に先ほどの例から該当する部分のみを抜き出してみます。

    I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=keyboard
    E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
    

    I:  If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02 Driver=hid
    E:  Ad=82(I) Atr=03(Int.) MxPS=   5 Ivl=10ms
    

    この例ではクラスが3、サブクラスが1、プロトコルが1なのでキーボード、そしてクラスが3、サブクラスが1、プロトコルが2なのでマウスの機能が含まれていると判ります。このような複数の機能を持つUSB機器の場合、cfu1-driverで使用しているUSB Managerは最初に見つかった機能のドライバしか割り当ててくれません。

    このような場合は、USB機器ごとに持っているベンダーID(製造元の会社ごとに割り当てられた番号)とプロダクトID(その会社の製品ごとに割り当てられた番号)に対応するドライバを割り当てるようにUSB Managerの設定ファイルに追記する必要があります。

    ベンダーID及びプロダクトIDは「P:」で始まる行を見れば判ります。
    VendorがベンダーID、ProdIDがプロダクトIDです。
    以下に先ほどの例で該当する箇所を抜き出してみます。

    P:  Vendor=0d3d ProdID=0001 Rev= 0.01
    

    この例ではベンダーIDが0d3d、プロダクトIDが0001だと判ります。

  5. これをUSB Managerの設定に追加するには、/etc/usbmgr/usbmgr.confをZEditorかviエディタなどで開いて、先頭に以下のように記述を追加します。

    ### PS/2 Keyboard & Mouse USB convert adapter
    vendor 0x0d3d product 0x0001 script mouse module input , hid , keybdev , mousedev , usbmouse
    

    先頭の1行目はコメントです。
    vendorの後、0xに続けてベンダーIDを、同じようにproductの後、0xに続けてプロダクトIDを記述します。続くscript mouseと、module input…の部分は、キーボードとマウスで必要になる手続き(script)とドライバ(module)を記述しています。これは元々書いてあるKEYBOARD、MOUSEの場合の記述から、必要な部分を転記しているだけです。
    以下、参考までにusbmgr.confのKEYBOARDとMOUSEの部分を記載しておきます。

    ### KEYBOARD 
    class 0x3 subclass 0x1 protocol 0x1 module input , hid , keybdev
    ### MOUSE 
    class 0x3 subclass 0x1 protocol 0x2 script mouse module input , mousedev , usbmouse
    

  6. 一旦、USB機器やREX-CFU1を取り外して、ザウルスを再起動させます。
    以後、USB Managerの設定ファイルに追記したUSB機器が使えるはずです。

戻る