Re: Pl2303 usb-serial adapter receives but does not transmit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>> Since I don't read any "error sending break" in my logs, is it correct to assume
>> that the transmission channel (from PC to the router) actually works?
>
> Yes, I would assume that.
>
> But, to verify this, try the following:
>
>        rmmod pl2303
>        modprobe pl3202 debug=1
>
> and then plug the device in and do your test.  You should see a message
> in the kernel log about the break being set.  Does that really happen?
>

I've attached the klogs line I've captured during my test sessions.
These are the
lines generated when I send the break (to which the router ansers sending me
the prompt string "YAMON>"):

957190] drivers/usb/serial/usb-serial.c: serial_break - port 0
957196] drivers/usb/serial/pl2303.c: pl2303_break_ctl - port 0
957201] drivers/usb/serial/pl2303.c: pl2303_break_ctl - turning break on
056833] drivers/usb/serial/generic.c:
usb_serial_generic_read_bulk_callback - port 0
056846] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - length
= 1, data = 0d
056858] drivers/usb/serial/pl2303.c: pl2303_process_read_urb - tty_flag = 0
056994] drivers/usb/serial/generic.c:
usb_serial_generic_read_bulk_callback - port 0
057002] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - length
= 2, data = 0d 0a
057011] drivers/usb/serial/pl2303.c: pl2303_process_read_urb - tty_flag = 0
057102] drivers/usb/serial/generic.c:
usb_serial_generic_read_bulk_callback - port 0
057108] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - length
= 1, data = 0d
057116] drivers/usb/serial/pl2303.c: pl2303_process_read_urb - tty_flag = 0
059572] drivers/usb/serial/generic.c:
usb_serial_generic_read_bulk_callback - port 0
059585] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - length
= 1, data = 59
059597] drivers/usb/serial/pl2303.c: pl2303_process_read_urb - tty_flag = 0
059726] drivers/usb/serial/generic.c:
usb_serial_generic_read_bulk_callback - port 0
059733] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - length
= 2, data = 41 4d
059742] drivers/usb/serial/pl2303.c: pl2303_process_read_urb - tty_flag = 0
059851] drivers/usb/serial/generic.c:
usb_serial_generic_read_bulk_callback - port 0
059857] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - length
= 2, data = 4f 4e
059865] drivers/usb/serial/pl2303.c: pl2303_process_read_urb - tty_flag = 0
059975] drivers/usb/serial/generic.c:
usb_serial_generic_read_bulk_callback - port 0
059981] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - length
= 1, data = 3e
059988] drivers/usb/serial/pl2303.c: pl2303_process_read_urb - tty_flag = 0
060100] drivers/usb/serial/generic.c:
usb_serial_generic_read_bulk_callback - port 0
060106] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - length
= 1, data = 20
060113] drivers/usb/serial/pl2303.c: pl2303_process_read_urb - tty_flag = 0
208424] drivers/usb/serial/usb-serial.c: serial_break - port 0
208435] drivers/usb/serial/pl2303.c: pl2303_break_ctl - port 0
208441] drivers/usb/serial/pl2303.c: pl2303_break_ctl - turning break off


These are instead the log lines generated when I digit some random commands:

....
<7>[ 3383.401989] drivers/usb/serial/usb-serial.c: serial_write - port
0, 1 byte(s)
<7>[ 3383.401996] drivers/usb/serial/generic.c:
usb_serial_generic_write - port 0
<7>[ 3383.402009] pl2303 ttyUSB0: usb_serial_generic_write_start -
length = 1, data = 6e
<7>[ 3383.402064] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3383.402069] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3383.402075] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 1
<7>[ 3383.402080] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3383.402085] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3383.402090] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3383.402128] drivers/usb/serial/generic.c:
usb_serial_generic_write_bulk_callback - port 0
<7>[ 3383.402173] drivers/usb/serial/usb-serial.c: usb_serial_port_work - port 0
<7>[ 3383.614695] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3383.614708] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3383.614717] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 0
<7>[ 3383.614724] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3383.614732] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3383.614740] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3383.614769] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3383.614777] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3383.614785] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 0
<7>[ 3383.614793] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3383.614800] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3383.614807] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3383.614817] drivers/usb/serial/usb-serial.c: serial_write - port
0, 1 byte(s)
<7>[ 3383.614823] drivers/usb/serial/generic.c:
usb_serial_generic_write - port 0
<7>[ 3383.614833] pl2303 ttyUSB0: usb_serial_generic_write_start -
length = 1, data = 65
<7>[ 3383.614859] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3383.614864] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3383.614870] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 1
<7>[ 3383.614875] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3383.614880] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3383.614885] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3383.614947] drivers/usb/serial/generic.c:
usb_serial_generic_write_bulk_callback - port 0
<7>[ 3383.615046] drivers/usb/serial/usb-serial.c: usb_serial_port_work - port 0
<7>[ 3383.861741] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3383.861754] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3383.861763] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 0
<7>[ 3383.861769] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3383.861774] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3383.861780] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3383.861804] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3383.861812] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3383.861820] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 0
<7>[ 3383.861826] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3383.861833] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3383.861840] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3383.861854] drivers/usb/serial/usb-serial.c: serial_write - port
0, 1 byte(s)
<7>[ 3383.861861] drivers/usb/serial/generic.c:
usb_serial_generic_write - port 0
<7>[ 3383.861875] pl2303 ttyUSB0: usb_serial_generic_write_start -
length = 1, data = 74
<7>[ 3383.861907] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3383.861913] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3383.861919] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 1
<7>[ 3383.861924] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3383.861929] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3383.861934] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3383.861973] drivers/usb/serial/generic.c:
usb_serial_generic_write_bulk_callback - port 0
<7>[ 3383.862082] drivers/usb/serial/usb-serial.c: usb_serial_port_work - port 0
<7>[ 3384.370570] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3384.370583] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3384.370591] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 0
<7>[ 3384.370597] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3384.370602] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3384.370608] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3384.370635] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3384.370642] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3384.370650] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 0
<7>[ 3384.370657] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3384.370664] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3384.370671] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3384.370684] drivers/usb/serial/usb-serial.c: serial_write - port
0, 1 byte(s)
<7>[ 3384.370692] drivers/usb/serial/generic.c:
usb_serial_generic_write - port 0
<7>[ 3384.370705] pl2303 ttyUSB0: usb_serial_generic_write_start -
length = 1, data = 20
<7>[ 3384.370736] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3384.370742] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3384.370747] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 1
<7>[ 3384.370753] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
<7>[ 3384.370758] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - port 0
<7>[ 3384.370763] drivers/usb/serial/generic.c:
usb_serial_generic_write_room - returns 4096
<7>[ 3384.370827] drivers/usb/serial/generic.c:
usb_serial_generic_write_bulk_callback - port 0
<7>[ 3384.371027] drivers/usb/serial/usb-serial.c: usb_serial_port_work - port 0
<7>[ 3384.882734] drivers/usb/serial/usb-serial.c:
serial_chars_in_buffer - port 0
<7>[ 3384.882747] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - port 0
<7>[ 3384.882755] drivers/usb/serial/generic.c:
usb_serial_generic_chars_in_buffer - returns 0
<7>[ 3384.882763] drivers/usb/serial/usb-serial.c: serial_write_room - port 0
....

>> Can I use usb_control_msg() to send data other than BREAK command?
>
> Yes, this device handles lots of different messages on its control pipe,
> but that's not really the issue here.
>
> Odds are, our pl2303 device doesn't like sending break commands.  These
> are cheap chips, and don't always work the best for a "real" replacement
> of a serial UART device.  I'd strongly recommend just buying a different
> type of device, one that is known to work better on Linux, like a
> ftdi_sio based device, if you can find one.  They should be the same
> price as your pl2303 device, it's probably cheaper for everyone in the
> long run here :)
>
> thanks,
>
> greg k-h

Well, I will sure follow your recommendation if it's messed like this :)
but I think it's still workable somehow, I don't see any error in the logs
 and the break command surely went well (router prompts me back
the "YAMON>" string), but other commands did not. Maybe it needs
some data preparation before actually send something.


Actually I've bought this cable because it's considered well supported by
many on the internet (despite the mess on windows due to driver availabilty,
in linux it is reported that these ca-42 clone cables are perfectly recognized).

I will give it another try on a 32bit machine and see how it beheaves there.

thanks a lot for the support,

Pierangelo
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux