OpenWrt Forum Archive

Topic: wl-500gp V2 pl2303 lockup 2.4.35

The content of this topic has been archived on 30 Mar 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

Hello,

I have been racking my brain trying to get a usb to serial adapter to work with a wl-500gp v2 ( this worked fine with a V1 on WR)

I am running kamikaze trunk (latest as of tonight) when I try to access the usb serial port the entire system locks up.   I have tried setting the correct speed. backporting the 2.6 pl2303 driver , etc but nothing seems to work.  This worked correctly on 2.4 on the V1 or this router. I am not able to use 2.6 because of its lack of bcom wifi support.

A simple  "screen /dev/usb/tts/0 2400"  will lock up the system
or cat /dev/usb/tts/0

Can anyone offer any help ?

details below

root@OpenWrt:~# stty -F /dev/usb/tts/0 speed 2400
2400
root@OpenWrt:~# stty -F /dev/usb/tts/0           
speed 2400 baud;



lsmod
Module            Size  Used by    Tainted: P 
pl2303                 13896   0 (unused)
usbserial              23884   0 [pl2303]
wlcompat                9504   0 (unused)
usb-ohci               19252   0 (unused)
ip_conntrack_tftp       1712   0 (unused)
ip_nat_irc              2336   0 (unused)
ip_conntrack_irc        3128   1
ip_nat_ftp              2960   0 (unused)
ip_conntrack_ftp        4272   1
ppp_async               8044   0 (unused)
ppp_generic            22380   0 [ppp_async]
slhc                    6064   0 [ppp_generic]
wl                    666224   0 (unused)
usbcore                71296   1 [pl2303 usbserial usb-ohci]
switch-robo             5052   0 (unused)
switch-core             4928   0 [switch-robo]
diag                   28544   0 (unused)



root@OpenWrt:~# uname -a
Linux OpenWrt 2.4.35.4 #4 Tue May 20 23:39:58 EDT 2008 mips unknown


Jan  1 00:00:14 OpenWrt user.info kernel: usb-ohci.c: USB OHCI at membase 0xb8003000, IRQ 6
Jan  1 00:00:14 OpenWrt user.info kernel: usb-ohci.c: usb-00:03.0, PCI device 14e4:471a
Jan  1 00:00:14 OpenWrt user.info kernel: usb.c: new USB bus registered, assigned bus number 1
Jan  1 00:00:14 OpenWrt user.info kernel: hub.c: USB hub found
Jan  1 00:00:14 OpenWrt user.info kernel: hub.c: 2 ports detected
Jan  1 00:00:14 OpenWrt user.info kernel: usb.c: registered new driver serial
Jan  1 00:00:14 OpenWrt user.info kernel: usbserial.c: USB Serial support registered for Generic
Jan  1 00:00:14 OpenWrt user.info kernel: usbserial.c: USB Serial Driver core v1.4
Jan  1 00:00:14 OpenWrt user.info kernel: usbserial.c: USB Serial support registered for PL-2303
Jan  1 00:00:14 OpenWrt user.info kernel: pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.10.1
Jan  1 00:00:15 OpenWrt user.info : /etc/rc.common: eval: line 1: swapon: not found
Jan  1 00:00:15 OpenWrt user.info kernel: hub.c: new USB device 00:03.0-1, assigned address 2
Jan  1 00:00:15 OpenWrt user.info kernel: hub.c: USB hub found
Jan  1 00:00:15 OpenWrt user.info kernel: hub.c: 2 ports detected
Jan  1 00:00:15 OpenWrt user.info : 'wl0' is disabled
Jan  1 00:00:15 OpenWrt user.info : 'wl0' is disabled
Jan  1 00:00:15 OpenWrt user.info kernel: hub.c: new USB device 00:03.0-1.1, assigned address 3
Jan  1 00:00:15 OpenWrt user.info kernel: usbserial.c: PL-2303 converter detected
Jan  1 00:00:15 OpenWrt user.info kernel: usbserial.c: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for de

I put the pl2303 driver in debug this is what i got:

pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 00 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - length = 1, data = 78 
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_write - length = 1, data = 5e 
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_write - length = 1, data = 40 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 00 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 78 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 00 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - length = 1, data = 80 
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - length = 1, data = f8 
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 00 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 00 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - length = 1, data = 80 
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = f8 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 00 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 2
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - length = 1, data = 78 
pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 9b 00 
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - length = 1, data = 5e 
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - already writing
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_write - port 0, 1 bytes
pl2303.c: pl2303_write - length = 1, data = 40 
pl2303.c: pl2303_write_bulk_callback - port 0
pl2303.c: pl2303_close - port 0
pl2303.c: set_control_lines - value = 0, retval = 0
pl2303.c: pl2303_close - shutting down urbs
pl2303.c: pl2303_close - usb_unlink_urb (write_urb) failed with reason: -19
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 0b 00 
pl2303.c: pl2303_read_bulk_callback - port 0
pl2303.c: pl2303_read_bulk_callback - urb->status = -2
pl2303.c: pl2303_read_bulk_callback - port is closed, exiting.
pl2303.c: pl2303_read_int_callback (0)
pl2303.c: pl2303_read_int_callback - urb shutting down with status: -2

Thanks

Jason

(Last edited by enzo86 on 21 May 2008, 05:37)

I don't suppose you could post the pl2303.o kernel module or ipkg for your backport, could you?

Edit: Nevermind, I just grabbed the drivers from a WhiteRussian box I had sitting around.

(Last edited by bkloppenborg on 26 Jun 2008, 22:03)

Okay, using the pl2303 module from my WhiteRussian box did detect my adapter and create the hardware link to /dev/usb/tts/0.  Even though the device was detected, when I tried to use the serial port, the router would become unresponsive.  I have read that the driver from the 2.6 kernel correctly supports this device but I don't know how to backport the driver. 

Do I simply copy the source code (pl2303.c, pl2303.h) files from the 2.6 kernel and use those in the 2.4 kernel or is there more to it?

Thanks.

After fiddling around a little, I added support for my pl2303 adapter to the kernel's patch file.  After that I tried opening up a ppp connection over the serial port, here's what I got:

user.info kernel: usbserial.c: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
user.info kernel: pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.10.1
daemon.notice pppd[453]: pppd 2.4.3 started by root, uid 0
daemon.info pppd[453]: Using interface ppp0
daemon.notice pppd[453]: Connect: ppp0 <--> /dev/usb/tts/0
daemon.notice pppd[453]: local  IP address 192.168.2.20
daemon.notice pppd[453]: remote IP address 192.168.2.10
user.err kernel: usb-ohci.c: OHCI Unrecoverable Error, controller usb-00:03.0 disabled
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
daemon.info pppd[453]: No response to 5 echo-requests
daemon.notice pppd[453]: Serial link appears to be disconnected.
daemon.info pppd[453]: Connect time 0.3 minutes.
daemon.info pppd[453]: Sent 0 bytes, received 0 bytes.
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
daemon.notice pppd[453]: Connection terminated.
daemon.notice pppd[453]: Modem hangup
daemon.info pppd[453]: Exit.

So I put the driver in debug mode and got

user.info kernel: usbserial.c: USB Serial support registered for PL-2303
user.info kernel: usbserial.c: PL-2303 converter detected
user.debug kernel: pl2303.c: device type: 2
user.info kernel: usbserial.c: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
user.info kernel: pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.10.1
user.debug kernel: pl2303.c: pl2303_open -  port 0
user.debug kernel: pl2303.c: 0xc0:0x1:0x8484:0x0  1 - 2
user.debug kernel: pl2303.c: 0x40:0x1:0x404:0x0  0
user.debug kernel: pl2303.c: 0xc0:0x1:0x8484:0x0  1 - 2
user.debug kernel: pl2303.c: 0xc0:0x1:0x8383:0x0  1 - 7b
user.debug kernel: pl2303.c: 0xc0:0x1:0x8484:0x0  1 - 2
user.debug kernel: pl2303.c: 0x40:0x1:0x404:0x1  0
user.debug kernel: pl2303.c: 0xc0:0x1:0x8484:0x0  1 - 2
user.debug kernel: pl2303.c: 0xc0:0x1:0x8383:0x0  1 - 6
user.debug kernel: pl2303.c: 0x40:0x1:0x0:0x1  0
user.debug kernel: pl2303.c: 0x40:0x1:0x1:0x0  0
user.debug kernel: pl2303.c: 0x40:0x1:0x2:0x44  0
user.debug kernel: pl2303.c: 0x40:0x1:0x8:0x0  0
user.debug kernel: pl2303.c: 0x40:0x1:0x9:0x0  0
user.debug kernel: pl2303.c: pl2303_set_termios -  port 0, initialized = 0
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  7 - 80 25 0 0 0 0 0
user.debug kernel: pl2303.c: pl2303_set_termios - data bits = 8
user.debug kernel: pl2303.c: pl2303_set_termios - baud = 9600
user.debug kernel: pl2303.c: pl2303_set_termios - stop bits = 1
user.debug kernel: pl2303.c: pl2303_set_termios - parity = none
user.debug kernel: pl2303.c: 0x21:0x20:0:0  7
user.debug kernel: pl2303.c: set_control_lines - value = 3, retval = 0
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  7 - 80 25 0 0 0 0 8
user.debug kernel: pl2303.c: pl2303_open - submitting read urb
user.debug kernel: pl2303.c: pl2303_open - submitting interrupt urb
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x540d
user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x540d
user.debug kernel: pl2303.c: pl2303_read_int_callback (0)
user.debug kernel: pl2303.c: pl2303_read_int_callback - length = 10, data = a1 20 00 00 00 00 02 00 83 00 
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x540f
user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x540f
user.debug kernel: pl2303.c: pl2303_set_termios -  port 0, initialized = 1
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  7 - 80 25 0 0 0 0 8
user.debug kernel: pl2303.c: pl2303_set_termios - data bits = 8
user.debug kernel: pl2303.c: pl2303_set_termios - baud = 115200
user.debug kernel: pl2303.c: pl2303_set_termios - stop bits = 1
user.debug kernel: pl2303.c: pl2303_set_termios - parity = none
user.debug kernel: pl2303.c: 0x21:0x20:0:0  7
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  7 - 0 c2 1 0 0 0 8
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x540d
user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x540d
user.debug kernel: pl2303.c: pl2303_close - port 0
user.debug kernel: pl2303.c: set_control_lines - value = 0, retval = 0
user.debug kernel: pl2303.c: pl2303_close - shutting down urbs
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - urb->status = -2
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port is closed, exiting.
user.debug kernel: pl2303.c: pl2303_read_int_callback (0)
user.debug kernel: pl2303.c: pl2303_read_int_callback - urb shutting down with status: -2
daemon.notice pppd[451]: pppd 2.4.3 started by root, uid 0
user.debug kernel: pl2303.c: pl2303_open -  port 0
user.debug kernel: pl2303.c: 0xc0:0x1:0x8484:0x0  1 - 2
user.debug kernel: pl2303.c: 0x40:0x1:0x404:0x0  0
user.debug kernel: pl2303.c: 0xc0:0x1:0x8484:0x0  1 - 2
user.debug kernel: pl2303.c: 0xc0:0x1:0x8383:0x0  1 - 7b
user.debug kernel: pl2303.c: 0xc0:0x1:0x8484:0x0  1 - 2
user.debug kernel: pl2303.c: 0x40:0x1:0x404:0x1  0
user.debug kernel: pl2303.c: 0xc0:0x1:0x8484:0x0  1 - 2
user.debug kernel: pl2303.c: 0xc0:0x1:0x8383:0x0  1 - 6
user.debug kernel: pl2303.c: 0x40:0x1:0x0:0x1  0
user.debug kernel: pl2303.c: 0x40:0x1:0x1:0x0  0
user.debug kernel: pl2303.c: 0x40:0x1:0x2:0x44  0
user.debug kernel: pl2303.c: 0x40:0x1:0x8:0x0  0
user.debug kernel: pl2303.c: 0x40:0x1:0x9:0x0  0
user.debug kernel: pl2303.c: pl2303_set_termios -  port 0, initialized = 1
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  7 - 0 c2 1 0 0 0 8
user.debug kernel: pl2303.c: pl2303_set_termios - data bits = 8
user.debug kernel: pl2303.c: pl2303_set_termios - baud = 115200
user.debug kernel: pl2303.c: pl2303_set_termios - stop bits = 1
user.debug kernel: pl2303.c: pl2303_set_termios - parity = none
user.debug kernel: pl2303.c: 0x21:0x20:0:0  7
user.debug kernel: pl2303.c: set_control_lines - value = 3, retval = 0
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  7 - 0 c2 1 0 0 0 8
user.debug kernel: pl2303.c: pl2303_open - submitting read urb
user.debug kernel: pl2303.c: pl2303_open - submitting interrupt urb
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x741b
user.debug kernel: pl2303.c: pl2303_ioctl (0) TIOCMSET/TIOCMBIC/TIOCMSET
user.debug kernel: pl2303.c: set_control_lines - value = 3, retval = 0
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x540d
user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x540d
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x5410
user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x5410
user.debug kernel: pl2303.c: pl2303_set_termios -  port 0, initialized = 1
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  7 - 0 c2 1 0 0 0 8
user.debug kernel: pl2303.c: pl2303_set_termios - data bits = 8
user.debug kernel: pl2303.c: pl2303_set_termios - baud = 115200
user.debug kernel: pl2303.c: pl2303_set_termios - stop bits = 1
user.debug kernel: pl2303.c: pl2303_set_termios - parity = none
user.debug kernel: pl2303.c: 0x21:0x20:0:0  7
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  7 - 0 c2 1 0 0 0 8
user.debug kernel: pl2303.c: 0x40:0x1:0x0:0x61  0
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x40047437
user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x40047437
daemon.info pppd[451]: Using interface ppp0
daemon.notice pppd[451]: Connect: ppp0 <--> /dev/usb/tts/0
user.debug kernel: pl2303.c: pl2303_write - port 0, 39 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 39, data = 7e ff 7d 23 c0 21 7d 21 7d 21 7d 20 7d 30 7d 22 7d 26 7d 20 7d 20 7d 20 7d 20 7d 25 7d 26 7d 3b 4e 67 6d 33 7d 32 7e 
user.debug kernel: pl2303.c: pl2303_write_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 1, data = 7e 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 13, data = ff 7d 23 c0 21 7d 21 7d 27 7d 20 7d 30 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 13, data = 7d 22 7d 26 7d 20 7d 20 7d 20 7d 20 7d 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 11, data = 25 7d 26 7d 25 2e 7c c9 67 50 7e 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 7, data = 7e ff 7d 23 c0 21 7d 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_write - port 0, 38 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 38, data = 7e ff 7d 23 c0 21 7d 22 7d 27 7d 20 7d 30 7d 22 7d 26 7d 20 7d 20 7d 20 7d 20 7d 25 7d 26 7d 25 2e 7c c9 46 ca 7e 
user.debug kernel: pl2303.c: pl2303_write_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 1, data = 22 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 10, data = 7d 21 7d 20 7d 30 7d 22 7d 26 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 12, data = 7d 20 7d 20 7d 20 7d 20 7d 25 7d 26 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 9, data = 7d 3b 4e 67 6d 7d 32 88 7e 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_write - port 0, 15 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 15, data = ff 03 c0 21 09 00 00 08 1b 4e 67 6d dc eb 7e 
user.debug kernel: pl2303.c: pl2303_write_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_write - port 0, 23 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 23, data = ff 03 80 21 01 01 00 10 02 06 00 2d 0f 01 03 06 c0 a8 02 14 f4 0e 7e 
user.debug kernel: pl2303.c: pl2303_write_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 1, data = ff 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 1, data = 03 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 1, data = 80 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 6, data = 21 01 07 00 10 02 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 12, data = 06 00 2d 0f 01 03 06 c0 a8 02 0a e6 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 12, data = 4f 7e ff 03 c0 21 0a 00 00 08 05 2e 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 11, data = 7c c9 b5 9b 7e ff 03 80 21 02 01 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 12, data = 00 10 02 06 00 2d 0f 01 03 06 c0 a8 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 5, data = 02 14 d5 94 7e 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_write - port 0, 23 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 23, data = ff 03 80 21 02 07 00 10 02 06 00 2d 0f 01 03 06 c0 a8 02 0a c7 d5 7e 
user.debug kernel: pl2303.c: pl2303_write_bulk_callback - port 0
daemon.notice pppd[451]: local  IP address 192.168.2.20
daemon.notice pppd[451]: remote IP address 192.168.2.10
user.debug kernel: pl2303.c: pl2303_write - port 0, 15 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 15, data = ff 03 c0 21 09 01 00 08 1b 4e 67 6d 09 74 7e 
user.debug kernel: pl2303.c: pl2303_write_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 1, data = 7e 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 6, data = ff 03 c0 21 0a 01 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port 0
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - length = 9, data = 00 08 05 2e 7c c9 60 04 7e 
user.debug kernel: pl2303.c: pl2303_read_bulk_callback - tty_flag = 0
user.err kernel: usb-ohci.c: OHCI Unrecoverable Error, controller usb-00:03.0 disabled
user.debug kernel: pl2303.c: pl2303_write - port 0, 16 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 16, data = 7e ff 03 c0 21 09 02 00 08 1b 4e 67 6d 67 dc 7e 
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.debug kernel: pl2303.c: pl2303_write - port 0, 16 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 16, data = 7e ff 03 c0 21 09 03 00 08 1b 4e 67 6d b2 43 7e 
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.debug kernel: pl2303.c: pl2303_write - port 0, 16 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 16, data = 7e ff 03 c0 21 09 04 00 08 1b 4e 67 6d aa 84 7e 
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.debug kernel: pl2303.c: pl2303_write - port 0, 16 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 16, data = 7e ff 03 c0 21 09 05 00 08 1b 4e 67 6d 7f 1b 7e 
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.debug kernel: pl2303.c: pl2303_write - port 0, 16 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 16, data = 7e ff 03 c0 21 09 06 00 08 1b 4e 67 6d 11 b3 7e 
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
daemon.info pppd[451]: No response to 5 echo-requests
daemon.notice pppd[451]: Serial link appears to be disconnected.
daemon.info pppd[451]: Connect time 0.2 minutes.
daemon.info pppd[451]: Sent 0 bytes, received 0 bytes.
user.debug kernel: pl2303.c: pl2303_write - port 0, 36 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 36, data = 7e ff 7d 23 c0 21 7d 25 7d 22 7d 20 7d 37 50 65 65 72 20 6e 6f 74 20 72 65 73 70 6f 6e 64 69 6e 67 2e 50 7e 
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
user.debug kernel: pl2303.c: pl2303_write - port 0, 36 bytes
user.debug kernel: pl2303.c: pl2303_write - length = 36, data = 7e ff 7d 23 c0 21 7d 25 7d 23 7d 20 7d 37 50 65 65 72 20 6e 6f 74 20 72 65 73 70 6f 6e 64 69 6e 67 73 f9 7e 
user.err kernel: pl2303.c: pl2303_write - failed submitting write urb, error -143
daemon.notice pppd[451]: Connection terminated.
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x5407
user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x5407
daemon.notice pppd[451]: Modem hangup
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x741c
user.debug kernel: pl2303.c: pl2303_ioctl (0) TIOCMSET/TIOCMBIC/TIOCMSET
user.debug kernel: pl2303.c: set_control_lines - value = 2, retval = -143
daemon.info pppd[451]: Exit.
user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x5410
user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x5410
user.debug kernel: pl2303.c: pl2303_set_termios -  port 0, initialized = 1
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  -143 - 0 0 0 0 0 0 0
user.debug kernel: pl2303.c: pl2303_set_termios - data bits = 8
user.debug kernel: pl2303.c: pl2303_set_termios - baud = 115200
user.debug kernel: pl2303.c: pl2303_set_termios - stop bits = 1
user.debug kernel: pl2303.c: pl2303_set_termios - parity = none
user.debug kernel: pl2303.c: 0x21:0x20:0:0  -143
user.debug kernel: pl2303.c: set_control_lines - value = 3, retval = -143
user.debug kernel: pl2303.c: 0xa1:0x21:0:0  -143 - 0 0 0 0 0 0 0
user.debug kernel: pl2303.c: pl2303_close - port 0
user.debug kernel: pl2303.c: set_control_lines - value = 0, retval = -143
user.debug kernel: pl2303.c: pl2303_close - shutting down urbs

It looks like everything is going fine until the OHCI module kills the port.  This problem is reported by others as well with indications that the error is fixed in the 2.6 kernel (built with no wifi support).  I'm building that version at the moment to see if it indeed works.

Edit: Tried the 2.6 kernel built from trunk without WiFi support as  suggested however it doesn't work.  Looks like we're stuck with 2.4 for now.

(Last edited by bkloppenborg on 8 Jul 2008, 15:51)

Hi,

I'm no expert... but these look bad...
Jan  1 00:01:50 OpenWrt user.debug kernel: pl2303.c: pl2303_read_bulk_callback - urb->status = -2
Jan  1 00:01:50 OpenWrt user.debug kernel: pl2303.c: pl2303_read_bulk_callback - port is closed, exiting.

because of these ... pl2303_ioctl not supported = 0x540d, there are quite a few.

02:03 OpenWrt user.debug kernel: pl2303.c: pl2303_ioctl (0) TIOCMSET/TIOCMBIC/TIOCMSET
Jan  1 00:02:03 OpenWrt user.debug kernel: pl2303.c: set_control_lines - value = 3, retval = 0
Jan  1 00:02:03 OpenWrt user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x540d
Jan  1 00:02:03 OpenWrt user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x540d
Jan  1 00:02:03 OpenWrt user.debug kernel: pl2303.c: pl2303_ioctl (0) cmd = 0x5410
Jan  1 00:02:03 OpenWrt user.debug kernel: pl2303.c: pl2303_ioctl not supported = 0x5410

Googling "ioctl not supported ="
It looks like you are using a driver that uses  TIOCMSET/TIOCMBIC/TIOCMSET... ioctls.

I'd say things are really colliding once you try and use the usb side of things.
It's a serial port emulator on usb hardware.
I could be wrong.

Well, those don't seem to be too much of an issue since the PPP connection is negotiated correctly even though those error are present.  Who knows, perhaps you're right.  While digging around, I found a kernel patch that has the commands that error out defined:

#define TIOCNXCL 0x540D
...
#define TIOCSPGRP 0x5410

Sadly, 0x40047437 is not listed.  Now there is a bug (#3245) that has been reported with the TIOCNXCL command by a user with the WL-500gp (v1) router so perhaps that will get fixed.

In looking through the logs again, the line that reads

OHCI Unrecoverable Error, controller usb-00:03.0 disabled

is probably the sticking point.  From reading other posts on the "OHCI Unrecoverable Error, controller * disabled" messages, it is often due to a DMA problem.  I don't suppose any of the developers could comment on what could be done (if anything) or if they know of a resource that I could read to patch it myself?

I found another thread that discusses the USB OHCI problem noted above.  It is found here.

(Last edited by bkloppenborg on 22 Jul 2008, 22:33)

For completeness I tried svn version 16426 today and no longer have this problem.

The discussion might have continued from here.