- 239 名前:() mailto:sage [03/06/03 18:52 ID:U5Cecnio]
- Windowsで動いているUSBデバイスドライバを、Linux へ移植しようとしています。デバイスの認識、open, write, close はうまく出来ているようなのですがreadがうまく行きません。 -75 のエラーが usb_bulk_msg() から返って来ます。-EOVERFLOW のエラーのようです。
ところが、一度、Windowsに認識させてから、そのデバイスをLinux につなぎ直してreadするとうまく行きます。 何らかの初期化をしているようなのですが、Linux ではどのようにすればいいのでしょうか? sniffer Tool の出力には 0000027510:31:13>>>>>>> URB 4 going down... 0000027610:31:13-- URB_FUNCTION_CLASS_INTERFACE: 0000027710:31:13 TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK) 0000027810:31:13 TransferBufferLength = 00000008 0000027910:31:13 TransferBuffer = 81406fd0 0000028010:31:13 TransferBufferMDL = 00000000 0000028110:31:13 0000028210:31:13 0000: 0000028310:31:13 80 0000028410:31:13 25 0000028510:31:13 00 0000028610:31:13 00 0000028710:31:13 00 0000028810:31:13 02 0000028910:31:13 08 0000029010:31:13 00 0000029110:31:13 0000029210:31:13 UrbLink = 00000000 0000029310:31:13 RequestTypeReservedBits = 00 0000029410:31:13 Request = 20 0000029510:31:13 Value = 0000 0000029610:31:13 Index = 0000 とでていたので、usb_ctrl_msg()を使うのかと思ったのですが。 #define EPIPE32/* Broken pipe */ のエラーを返してしまいます。どうやればいいのでしょうか? ちなみにチップは、日立の38K0です。
|

|