お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2014-12-19 19:09:00

yaegaki
新しいメンバ
登録日: 2014-12-19

usb-skeleton.cをひな形にしたドライバがプローブ時にエラーとなる

Linuxのソースツリーのdrivers/usb/usb-skeleton.cのVIDとPIDを変えてコンパイルすれば、
デバイスドライバとして使えるという雑誌記事をみて、試しています。

VID、PID、デバイスファイル名を変えてコンパイルして、usb-skeleton01.koとし、これをinsmodしました。
この状態でdmesgにて以下のメッセージが出ています。

usbcore: registered new interface driver skeleton01

この後、VID、PIDが一致するようなUSBデバイスを接続します。
(EZUSB FX2のPIDをデフォルトの8613から変更しています)
この状態でdmesgを見ると、
skel_probe() の中に追記したprintkによるメッセージが出力されていました。

ですが、これらのprintkメッセージは
usb_register_dev関数の呼び出し直前のものまでしか出力されていません。
続いて少し後に以下のメッセージが出ていますが、エラーの原因がわかりません。
[ 2372.197472] Call Trace:
[ 2372.197501]  [<ffffffff8154c15d>] ? usb_devnode+0x2d/0x40
[ 2372.197551]  [<ffffffff814939ae>] device_get_devnode+0x6e/0xf0
[ 2372.197603]  [<ffffffff8149b2c6>] devtmpfs_create_node+0x56/0x130
[ 2372.197656]  [<ffffffff81235e0a>] ? sysfs_do_create_link_sd.isra.2+0xca/0x210
[ 2372.197717]  [<ffffffff8149328e>] device_add+0x27e/0x640
[ 2372.197764]  [<ffffffff81493860>] device_create_groups_vargs+0xe0/0x110
[ 2372.197820]  [<ffffffff814938f1>] device_create+0x41/0x50
[ 2372.197867]  [<ffffffff8154c2af>] usb_register_dev+0x13f/0x2e0
[ 2372.197918]  [<ffffffffa0585786>] ? skel_probe+0x176/0x2a0 [usbtest01]
[ 2372.197974]  [<ffffffffa058584e>] skel_probe+0x23e/0x2a0 [usbtest01]

usb-skeleton.cのVIDとPIDを変えるだけでドライバとして使えると思っているのですが、
何か抜けている手順があるのでしょうか?

また、調査の方法としてusb_register_dev関数を、今回変更したusb-skeleton01.cのローカル関数としてコピーし、
printkを追加していくことを検討していますが、ベターな方法があればご教示お願いします。


PC       : TOSHIBA dynabook Satellite B753/52JW/Portable PC
ubuntu    : 14.04 LTS 64ビット
uname -r  : 3.13.0-40-generic
USBデバイス: EZUSB FX2 (VID:0x04b4、PID:0x8613でないオリジナルの番号)


よろしくお願いします

オフライン

 

Board footer

Powered by FluxBB