Alex Villací­s Lasso wrote:
> Recently I bought an IrDA USB dongle with Windows-only drivers. When I 
> plugged
> it in in Fedora 4, lsusb reported the following:
>
> Bus 001 Device 005: ID 07c0:4200 Code Mercenaries Hard- und Software GmbH
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               1.10
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0         8
>   idVendor           0x07c0 Code Mercenaries Hard- und Software GmbH
>   idProduct          0x4200
>   bcdDevice            0.00
>   iManufacturer           1 KingSun Co,Ltd
>   iProduct                2 USB to Irda
>   iSerial                 0
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           41
>     bNumInterfaces          1
>     bConfigurationValue     1
>     iConfiguration          4 Usb to Irda
>     bmAttributes         0x80
>     MaxPower              100mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass     85
>       bInterfaceProtocol      0
>       iInterface              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0008  1x 8 bytes
>         bInterval               1
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x02  EP 2 OUT
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0008  1x 8 bytes
>         bInterval               1
>
>   
Googling around, I found the following post, that suggests that the 
pl2303 driver might be more appropriate than irda-usb for this dongle:

> I came across the text below, telling about the MA620 dongle, which 
> seems to
>  be quite related to the problem I have with the ES620 USB-IrDA dongle. I
>  don't know whether it holds or not.
>  I'm including the USB information from the dongle and hope you can 
> help me
>  out. I've found some clues saying that I should rebuild the PL2303
>  (kernel)module as a separate one, but I'm too unfamiliar with that 
> kind of
>  stuff to do it myself.
>  
>  I've tried to solve the problem using specific vendor-id and 
> product-id with
>  usbserial, but that will complain:
>      kernel: usb 1-2.2: new low speed USB device using ohci_hcd and 
> address 6
>      kernel: usbserial_generic 1-2.2:1.0: Generic converter detected
>      kernel: usbserial_generic 1-2.2:1.0: Generic device with no bulk 
> out, not
>  allowed.
>      kernel: usbserial_generic: probe of 1-2.2:1.0 failed with error -5
>  
>  So, I don't have the knowledge to solve the problem, I do have the 
> hardware to
>  test a solution to it.
>  Could you have a look?
>  
>  Many thanks in advance,
>  Rob.
>  
>  
>  
>  Bus 001 Device 006: ID 07d0:4100 Dazzle
>  Device Descriptor:
>    bLength                18
>    bDescriptorType         1
>    bcdUSB               1.10
>    bDeviceClass            0 (Defined at Interface level)
>    bDeviceSubClass         0
>    bDeviceProtocol         0
>    bMaxPacketSize0         8
>    idVendor           0x07d0 Dazzle
>    idProduct          0x4100
>    bcdDevice            0.00
>    iManufacturer           1 Kingsun Semiconductor
>    iProduct                2 USB to Serial
>    iSerial                 0
>    bNumConfigurations      1
>    Configuration Descriptor:
>      bLength                 9
>      bDescriptorType         2
>      wTotalLength           41
>      bNumInterfaces          1
>      bConfigurationValue     1
>      iConfiguration          4 USB to Serial
>      bmAttributes         0x80
>      MaxPower              100mA
>      Interface Descriptor:
>        bLength                 9
>        bDescriptorType         4
>        bInterfaceNumber        0
>        bAlternateSetting       0
>        bNumEndpoints           2
>        bInterfaceClass       255 Vendor Specific Class
>        bInterfaceSubClass     85
>        bInterfaceProtocol      0
>        iInterface              0
>        Endpoint Descriptor:
>          bLength                 7
>          bDescriptorType         5
>          bEndpointAddress     0x81  EP 1 IN
>          bmAttributes            3
>            Transfer Type            Interrupt
>            Synch Type               None
>            Usage Type               Data
>          wMaxPacketSize     0x0008  1x 8 bytes
>          bInterval               1
>        Endpoint Descriptor:
>          bLength                 7
>          bDescriptorType         5
>          bEndpointAddress     0x02  EP 2 OUT
>          bmAttributes            3
>            Transfer Type            Interrupt
>            Synch Type               None
>            Usage Type               Data
>          wMaxPacketSize     0x0008  1x 8 bytes
>          bInterval               1
>  
>  
>  
>  
>  
>      [Written by Martin Diehl <[EMAIL PROTECTED]>, modified by me]
>  
>  > > > i've bought a irda-usb dongle MA620 and i can't get it work with
>  > > > kernel driver irda-usb.c - it's not supported. Does anybody have
>  > > > experince with this?
>  
>  I don't have this hardware, but a few comments anyway:
>  
>  1) Despite it's an USB device the MA620 has nothing to do with the
>  IrDA-USB class spec. Therefore irda-usb.c is not the right driver.
>  
>  2) Reportedly the MA620 is made by glueing a SIR encoder+transceiver to a
>  pl2303 usb-to-rs232 bridge. Therefore the required setup is basically
>  irtty on top of the usbserial+pl2303 driver - maybe the device id's have
>  to be added to the pl2303 driver.
>  
>  3) Furthermore it was also said the SIR silicon appears to be 
> connected to
>  the pl2303 the same way which is used for the MA600 serial dongle.
>  Therefore the ma600 dongle protocol is needed on top of irtty.
>  
>  4) With 2.4.x any setup with irtty (or similar drivers like ppp) on 
> top of
>  usb-serial has severe problems (might sleep with spinlock held). To fix
>  this, backporting the usbserial from 2.6 would be required - which is
>  rather unlikely to happen AFAICS. Furthermore even with this fixed 
> the old
>  irtty from 2.4.x has some potential locking issues wrt. tty and network
>  layer. In conclusion irtty over usb will not work with 2.4 - sorry!
>  
>  5) In 2.6 the usbserial issue is fixed and we have the new irtty-sir
>  there. I know from my own 2.6-testing pl2303/usbserial/sir_dev/irtty-sir
>  are all working together happily with some supported serial dongle behind
>  an usb-to-rs232 bridge. Hence the remaining issue is to get the converted
>  ma600 dongle driver working. This should be pretty easy if the MA620
>  internal wiring is really the same as MA600 and someone with the hardware
>  would do the required testing.
>  
>  6) You need to use irattach version 0.9.16-pre7 or later
>  
So I went and added 07c0:4200 as a new ID to the pl2303 driver in the 
sources, just to see what would happen. At first, the device was 
"recognized", but on the first open of /dev/ttyUSB0 (by irattach) I get 
a kernel oops:

Jul 25 20:58:48 karlalex kernel: usb 1-1: new low speed USB device using 
uhci_hcd and address 2
Jul 25 20:58:48 karlalex kernel: usb 1-1: configuration #1 chosen from 1 
choice
Jul 25 20:58:48 karlalex kernel: usbcore: registered new driver usbserial
Jul 25 20:58:48 karlalex kernel: drivers/usb/serial/usb-serial.c: USB 
Serial support registered for generic
Jul 25 20:58:48 karlalex kernel: usbcore: registered new driver 
usbserial_generic
Jul 25 20:58:48 karlalex kernel: drivers/usb/serial/usb-serial.c: USB 
Serial Driver core
Jul 25 20:58:48 karlalex kernel: drivers/usb/serial/usb-serial.c: USB 
Serial support registered for pl2303
Jul 25 20:58:48 karlalex kernel: pl2303 1-1:1.0: pl2303 converter detected
Jul 25 20:58:48 karlalex kernel: usb 1-1: pl2303 converter now attached 
to ttyUSB0
Jul 25 20:58:48 karlalex kernel: usbcore: registered new driver pl2303
Jul 25 20:58:48 karlalex kernel: drivers/usb/serial/pl2303.c: Prolific 
PL2303 USB to serial adaptor driver
Jul 25 20:58:48 karlalex kernel: BUG: unable to handle kernel NULL 
pointer dereference at virtual address 00000030
Jul 25 20:58:48 karlalex kernel:  printing eip:
Jul 25 20:58:48 karlalex kernel: deba24e8
Jul 25 20:58:48 karlalex kernel: *pde = 00000000
Jul 25 20:58:48 karlalex kernel: Oops: 0000 [#1]
Jul 25 20:58:48 karlalex kernel: PREEMPT
Jul 25 20:58:48 karlalex kernel: Modules linked in: pl2303 usbserial 
binfmt_misc nls_ascii nls_cp437 vfat fat dm_mirror dm_mod video button 
battery asus_acpi ac lp floppy nvram snd_via82xx_modem snd_via82xx 
gameport snd_seq_dummy snd_ac97_codec snd_ac97_bus snd_seq_oss 
snd_seq_midi_event snd_seq snd_pcm_oss snd_mixer_oss snd_pcm ehci_hcd 
uhci_hcd snd_mpu401_uart snd_rawmidi snd_seq_device snd_timer parport_pc 
snd via_agp parport i2c_viapro soundcore via_ircc i2c_prosavage 
via_rhine mii agpgart irda ide_cd pcspkr crc_ccitt snd_page_alloc cdrom 
rtc usbcore ext3 jbd
Jul 25 20:58:48 karlalex kernel: CPU:    0
Jul 25 20:58:48 karlalex kernel: EIP:    0060:[<deba24e8>]    Not 
tainted VLI
Jul 25 20:58:48 karlalex kernel: EFLAGS: 00010297   (2.6.18-rc2 #1)
Jul 25 20:58:48 karlalex kernel: EIP is at pl2303_open+0x28/0x9c0 [pl2303]
Jul 25 20:58:48 karlalex kernel: eax: 00000000   ebx: 00000000   ecx: 
deba5e20   edx: ddf7c240
Jul 25 20:58:48 karlalex kernel: esi: dd78f280   edi: ddb75c00   ebp: 
dd6d3c80   esp: dcad1e3c
Jul 25 20:58:48 karlalex kernel: ds: 007b   es: 007b   ss: 0068
Jul 25 20:58:48 karlalex kernel: Process irattach (pid: 1394, 
ti=dcad1000 task=ddf211d0 task.ti=dcad1000)
Jul 25 20:58:48 karlalex kernel: Stack: dcad1e60 c0117008 00000000 
00000000 00000003 00000292 dcb8b800 00000000
Jul 25 20:58:48 karlalex kernel:        c02fc524 dcb8b800 c0228b36 
00000000 c0229a64 00000246 c031cc17 deb2934f
Jul 25 20:58:48 karlalex kernel:        00000000 ddb75c00 dd78f280 
ffffffed dcb8b800 deb26269 00000000 c02fc48f
Jul 25 20:58:48 karlalex kernel: Call Trace:
Jul 25 20:58:48 karlalex kernel:  [<c0117008>] __wake_up+0x38/0x50
Jul 25 20:58:48 karlalex kernel:  [<c02fc524>] 
_spin_unlock_irqrestore+0x14/0x30
Jul 25 20:58:48 karlalex kernel:  [<c0228b36>] tty_ldisc_enable+0x26/0x30
Jul 25 20:58:48 karlalex kernel:  [<c0229a64>] init_dev+0x254/0x690
Jul 25 20:58:48 karlalex kernel:  [<deb26269>] serial_open+0x139/0x1f0 
[usbserial]
Jul 25 20:58:48 karlalex kernel:  [<c02fc48f>] _spin_unlock+0xf/0x30
Jul 25 20:58:48 karlalex kernel:  [<c0228a29>] check_tty_count+0x49/0xb0
Jul 25 20:58:48 karlalex kernel:  [<c022bb5e>] tty_open+0x16e/0x340
Jul 25 20:58:48 karlalex kernel:  [<c016f639>] chrdev_open+0xd9/0x1d0
Jul 25 20:58:48 karlalex kernel:  [<c016464a>] __dentry_open+0xea/0x270
Jul 25 20:58:48 karlalex kernel:  [<c0164885>] nameidata_to_filp+0x35/0x40
Jul 25 20:58:48 karlalex kernel:  [<c016f560>] chrdev_open+0x0/0x1d0
Jul 25 20:58:48 karlalex kernel:  [<c01648db>] do_filp_open+0x4b/0x60
Jul 25 20:58:48 karlalex kernel:  [<c02fc48f>] _spin_unlock+0xf/0x30
Jul 25 20:58:48 karlalex kernel:  [<c0164541>] get_unused_fd+0xa1/0xc0
Jul 25 20:58:48 karlalex kernel:  [<c016493a>] do_sys_open+0x4a/0xe0
Jul 25 20:58:48 karlalex kernel:  [<c0164a0c>] sys_open+0x1c/0x20
Jul 25 20:58:48 karlalex kernel:  [<c010310d>] sysenter_past_esp+0x56/0x79
Jul 25 20:58:48 karlalex kernel: Code: 8d 76 00 55 57 89 c7 56 53 83 ec 
44 8b 1d 00 65 ba de 8b 30 8b a8 0c 02 00 00 85 db 0f 85 51 04 00 00 83 
7d 34 02 74 1a 8b 47 6c <8b> 50 30 8b 06 e8 6e 1b c9 ff 8b 47 5c 8b 50 
30 8b 06 e8 61 1b
Jul 25 20:58:48 karlalex kernel: EIP: [<deba24e8>] 
pl2303_open+0x28/0x9c0 [pl2303] SS:ESP 0068:dcad1e3c
Jul 25 20:58:48 karlalex kernel:  <6>usb 1-1: USB disconnect, address 2
Jul 25 20:58:49 karlalex kernel: pl2303 1-1:1.0: device disconnected

Now my question is: is this kernel oops the result of adding a foreign 
USB ID that would not work with this driver (pl2303) anyway, or is this 
oops caused by something else going on? Thanks in advance for any reply 
at all.

Alex Villacís Lasso


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Linux-usb-users@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to