2009年7月 3日

[linux-users:108272] barcode reader (USB) と 2.6.30 kernel

いしおかです.

2.6.25位のカーネルで USB接続のバーコードリーダを使っていたのですが,
2.6.30 にあげたところ使えなくなってしまいました.
とりあえずカーネルを書き換えて使えるようにはなったので困ってはいない
のですが 顛末を書いておきます.

まず確認したのは

- 古いカーネルで立ち上げると 使えるので 機械の故障では無い
- syslog をみていると usbhid が組み込まれているが,
input として認識されていない.
- 他の USB keyboard は動いた.
- hal か udev でなんかやってるんだっけか でゴソゴソ.
この辺仕組みを理解してないのがいかんのですが... > 自分.

でこの後 google様に聞いてみたところ, VendorID:ProductID = 0x1130:0x0001 の
機器は ID がぶつかっていて drivers/hid/hid-core.c で blacklistに入って
いるとのこと( 2.6.28 あたりで入ったとか )
# なんじゃそりゃー

既に blacklist に入ってるものを whitelist に入れる方法がわからなかった
ので 該当部分をコメントアウトしてカーネル再構成したら動作しました.

正しくはどうするんでしょうねー.
a) usbhid のquirks オプションをつかって 非HIDとして認識させて別ドライバ
読み込ませることをちょっと考えましたが, 力量を越えるのでパス.

キーワードはこの辺.
% grep USB_VENDOR_ID_TENX *
hid-core.c: { HID_USB_DEVICE(USB_VENDOR_ID_TENX, USB_DEVICE_ID_TENX_IBUDDY1) },
hid-core.c: { HID_USB_DEVICE(USB_VENDOR_ID_TENX, USB_DEVICE_ID_TENX_IBUDDY2) },
hid-ids.h:#define USB_VENDOR_ID_TENX 0x1130
--
(ishi)

投稿者 xml-rpc : 2009年7月 3日 10:10
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86375
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。