Prolific Technology usb serial adapter problem.

217 views
Skip to first unread message

Robert Meier

unread,
Oct 1, 2023, 8:20:05 AM10/1/23
to uc...@googlegroups.com
All,

Thank you in advance for any help.

My goal is to use a newly acquired usb serial adapters, based on
Prolific Technologies chipset as /dev/ttyUSB0 or /dev/ttyS1 or
/dev/ttySNN in openSuSE.

Is anyone else using a usb serial adapter with Prolific Technogies chipset?

Any help would be appreciated.



Background:
I recently acquired a usb serial adapter to program a "smartmodem"
appliance (i.e. RS232 modified to TTL voltage levels) (specifically
Vertex VX-7R radio)

In decades past, I used a DB9 serial adapter, but my current laptop has
no DB9 sockets (only USB type A).

In years past, I used a second usb serial adapter that came with a
different "smartmodem" appliance (specifically Baofeng UV-5R radio).
Unfortunately, the adapter is embedded in rubber, and only the Baofeng
6-wire plug (not the 3-wire RS232 ttl) is available.


Observations:
cat /etc/os-release:
NAME="openSUSE Leap"
VERSION="15.1"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.1"
PRETTY_NAME="openSUSE Leap 15.1"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:15.1"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"

(after reboot and plugging new adapter into USB) sudo dmesg:
usb 1-3: new full-speed USB device number 3 using xhci_hcd
usb 1-3: New USB device found, idVendor=067b, idProduct=23a3,,
bcdDevice= 6.05
usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3: Product: USB-Serial Controller
usb 1-3: Manufacturer: Prolific Technology Inc.
usb 1-3: SerialNumber: A=CCb11BS14
only 1 new device is reported by ls -ltr /dev
/dev/char/usb/001/003
cd that accompanied the device contains pl2302 and ch341 drivers for
WIN7,WIN8,WIN10,WIN11
openSuSE kernel 5.4.2-1 already includes
/lib/modules/5.4.2-1.gb3d18f4-default/kernel/drivers/usb/serial/{ch341,pl2303}.ko.xz,

for comparison (after reboot) and plugging old adapter into USB) sudo
dmesg:
usb 1-3: new full-speed USB device number 4sev using xhci_hcd
usb 1-3: New USB device found, idVendor=1a86, idProduct=7523,
bcdDevice= 2.63
usb 1-3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
usb 1-3: Product: USB2.0-Serial
ch341 1-3:1.0: ch341-uart converter detected
usb 1-3: ch341-uart converter now attached to ttyUSB0"
several new devices are reported by ls -ltr /dev including
/dev/char/usb/001/003
/dev/ttyUSB0


Research:
I've been looking through stackoverflow and openSuse forums, but so
far nothing has been complete and understandable enough to try with more
than ambiguous results.

Thank you,

Bobby

shay walters

unread,
Oct 1, 2023, 9:02:03 AM10/1/23
to uc...@googlegroups.com
I've used a few different USB-to-serial adapters, most convert to the
+/- 12v RS232 signals, but I've had one or two that go to TTL or 3.3v
levels. I don't know what chipset they have, but I'll take a look.
So far, everything I've tried hasn't needed any special drivers in
Linux (Ubuntu derivatives). As far as I recall, everything showed up
as /dev/ttyUSB0. In Windows, they show up as a COM port, and
sometimes need driver installs.)
> --
> You received this message because you are subscribed to the Google Groups "Upstate Carolina Linux Users Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to uclug+un...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/uclug/4b86b936-c62d-8ffc-6279-9f80af5cc7be%40gmail.com.

E. Matt Armstrong

unread,
Oct 1, 2023, 10:59:15 AM10/1/23
to Upstate Carolina Linux Users Group
I've been down this road before. I wish you luck.
First check your user is in DIALOUT group and very importantly if you have to add it log out and back in for changes to take.
You may also need a null modem adapter depending on DTE or DCE.
Try a loopback on the adapter. You can buy a plug or jumper the connector pins (I can't remember which pins)
Try another adapter, get a FTDI chip set adapter, the prolific can be flakey sometimes.
This site has good info but pricey stuff. https://www.usbgear.com/selecting-usb-to-serial-adapters.html

Robert Meier

unread,
Oct 3, 2023, 2:43:47 PM10/3/23
to 'Darrell Lee' via Upstate Carolina Linux Users Group
Matt and Shay,

Thank you both for your replies.

With your help, I've made progress, but am still short of my goal.

Progress Summary:
1. When 6-in-1 serial adapter first unpacked,
A. After plugging cable in, 'sudo dmesg' reported
new device found with usb vendor:product id 067b:23a3,
but no modules were loaded and no /dev/tty* created.
B. 'grep usb: /lib/modules/5.4.2-1.gb3d18f4-default/modules.alias'
reported '...
alias usb:v067Bp04BBd*dc*dsc*dp*ic*isc*ip*in* pl2303
alias usb:v067Bp1234d*dc*dsc*dp*ic*isc*ip*in* pl2303
...' but no alias for v067Bp23A3 .
C. 'https://linux-hardware.org/index.php?id=usb:067b-23a3'
reported correct driver is pl2302.
2. After adding
'alias usb:v067Bp23A3d*dc*dsc*dp*ic*isc*ip*in* pl2303'
to '/etc/modprobe.d/99-local.conf'
and executing 'sudo depmod -a',
A. Before plugging cable in, 'lsmod | grep usb' reports
no pl2303 module loaded, no usbserial module loaded.
B. After plugging cable in, 'sudo dmesg'
reported new device found and
'usbcore: registered new interface driver usbserial_generic'
'usbserial: USB Serial support registered for generic'
'usbcore: registered new interface driver pl2303' .
C. After plugging cable in, 'lsmod | grep usb'
reports pl2303 and usbserial modules loaded.g
D. After plugging cable in, 'ls -ltr /dev'
reports new '/dev/char/usb/001/023' raw character
device, but no /dev/ttyUSB* nor /dev/ttyS* .

Problems remaining:
How do I create a ttyUSB0 or ttySNN?
How do I configure hot creation of tty* when cable is plugged in?

Thank you in advance for any additional help.

On 10/1/23 10:59 AM, E. Matt Armstrong wrote:
> I've been down this road before. I wish you luck.
> First check your user is in DIALOUT group and very importantly if you have
> to add it log out and back in for changes to take.
User is in group dialout and can use ttyUSB0 with different serial
device (unfortunately not compatible with radio).
> You may also need a null modem adapter depending on DTE or DCE.
> Try a loopback on the adapter. You can buy a plug or jumper the connector
> pins (I can't remember which pins)
I'm unsure what you mean by loopback in this context. The hardware
interface is wired-or (https://gunkies.org/wiki/Wired-OR),
RS-232-TTL
(https://en.wikipedia.org/wiki/Transistor%E2%80%93transistor_logic#Serial_signaling).
The serial adapter has 3 wires
(gnd, tx, rx) and the radio has two wires (gnd, data).
The cable connects gnd to gnd, tx to data, and rx to data through
800 ohm resistor.
> Try another adapter, get a FTDI chip set adapter, the prolific can be
> flakey sometimes.
> This site has good info but pricey stuff.
> https://www.usbgear.com/selecting-usb-to-serial-adapters.html
I'm looking.
> On Sunday, October 1, 2023 at 9:02:03 AM UTC-4 shay walters wrote:
>
>> I've used a few different USB-to-serial adapters, most convert to the
>> +/- 12v RS232 signals, but I've had one or two that go to TTL or 3.3v
>> levels. I don't know what chipset they have, but I'll take a look.
>> So far, everything I've tried hasn't needed any special drivers in
>> Linux (Ubuntu derivatives). As far as I recall, everything showed up
>> as /dev/ttyUSB0. In Windows, they show up as a COM port, and
>> sometimes need driver installs.)
Can you (dis)recommend a 3(or more)-wire bidirectional USB to/from
RS-232 TTL/3.3V adapter?>>

Robert Meier

unread,
Oct 3, 2023, 4:27:12 PM10/3/23
to uc...@googlegroups.com
Matt,

On 10/1/23 10:59 AM, E. Matt Armstrong wrote:
> ... > Try a loopback on the adapter. You can buy a plug or jumper the connector
> pins (I can't remember which pins)
> ...

I think you mean to short the tx and rx lines for a loopback.
With 3-wires, this is the same as a null modem.
I made one (i.e. jumpered ring to tip) and will try this for further
experimentation toward a solution.

Thank you.

shay walters

unread,
Oct 3, 2023, 7:27:19 PM10/3/23
to uc...@googlegroups.com
You might need to short DTR and DSR or CTS and RTS depending on the
driver, or the needs of the device on the other end.

I looked at that USB device ID and it does say "Prolific
Technologies", but if you're not getting a /dev/ttyUSBxx (or even
/dev/ttyxx), then it must not be loading a driver. Someone mentioned
the FTDI chipset earlier. I've had really good luck with those. You
can often use "minicom" to check if you have data going through.
> --
> You received this message because you are subscribed to the Google Groups "Upstate Carolina Linux Users Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to uclug+un...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/uclug/08d5301b-1f62-bf0f-430f-76a9278c4d83%40gmail.com.

E. Matt Armstrong

unread,
Oct 3, 2023, 9:43:24 PM10/3/23
to Upstate Carolina Linux Users Group
I have my adapter from work today. I just tried it on my current desktop running kubuntu 22.04 first time plugged it in
dmesg showed 'usb 4-2: pl2303 converter now attached to ttyUSB0'

sudo apt install putty
sudo putty
 
set serial connection up, change serial line to '/dev/ttyUSB0'
jumped pins 2 and 3, (if you hold the bigger side up and look at it pin 1 is top left 2 & 3 are to the right on a DB9 connector)
I was able to see characters echoed back on screen as I pressed keys, I removed jumper and it stopped showing keystrokes onscreen.
My adapter is a codi a01026 usb to serial adapter.
Try another serial client?
The Arduino IDE has a good serial terminal
Terminus looked neat but it was a snap package for me in KDE Discover so permissions to /dev/tty wasn't happening tonight for me, but will look into later,
minicom is like vim for me some RTFM required.

Robert Meier

unread,
Oct 5, 2023, 1:15:41 AM10/5/23
to 'Darrell Lee' via Upstate Carolina Linux Users Group
Matt and Shay,

Thanks for your continuing help.

After visiting Prolific Technology website, I still have no /dev/ttyUSB0
but I'm a bit closer to my goal. (see Progress Summary below.)

The pl2303 driver included in openSuse Leap-15.2 predated the pl2303gc
chip. The latest prebuilt linux driver from Prolific was built for
linux-4.18.0, apparently too old for my linux-5.4.2 kernel.
I am open to better suggestions, but currently think I need to learn to
compile the new pl2303 driver from Prolific source.

Alternatively, you might already have the later driver version that I need.

If you have time, would you be willing to send me a copy of your driver
and the following information derived from your working system?
The following are my best guess at kubuntu 22.04 commands (or hopefully
close enough to be correctible).

----
# linux kernel version
bash> uname -r
# My laptop reports '5.4.2-1.gb3d18f4-default' (5... might be close enough)

# driver version
bash> /sbin/modinfo
/lib/modules/*/kernel/drivers/usb/serial/pl2303.ko.xz | grep vermagic
# My laptop reports 'vermagic: 4.18.0-10-generic SMP mod_unload'
(Prolific included a few prebuilt drivers along with the source in the
zip file.)

# driver aliases
bash> /sbin/modinfo
/lib/modules/*/kernel/drivers/usb/serial/pl2303.ko.xz | grep v067Bp23
# My laptop reports '... alias: usb:v067Bp23A3d*dc*dsc*dp*ic*isc*ip*in*
...' (which matches usb vendor 067B and product 23A3)

# copy of driver
bash> ls -l s -l
/lib/modules/5.4.2-1.gb3d18f4-default/kernel/drivers/usb/serial/pl2303.*
# My laptop reports '-rw-r--r-- 1 root root 7756 Oct 4 23:58
/lib/modules/5.4.2-1.gb3d18f4-default/kernel/drivers/usb/serial/pl2303.ko.xz'
----

Though I would still need an additional RS232 to TTL converter (aka
'smartmodem') and out-of-stock at newegg and ..., I'm also looking for a
CoDi USB to Serial or equivalent.

Thanks in advance for your help,



Progress Summary:
The datasheet
(https://prolificusa.com/wp-content/uploads/2019/06/DS-23180101_PL2303GC.pdf)
for Prolific's new PL2303GC chip self-identifies as usb:067B:23A3, which
matches my usb serial adapter.

Prolific's prebuilt linux driver
(https://prolificusa.com/wp-content/uploads/2021/01/PL2303G_Linux_Driver_v1.0.6.zip)
is inserted by modprobe(8) -a and systemd/udevd when the adapter is
plugged in.

Unfortunately, the driver is 'tainted' (i.e. compiled for linux-4.18.0
and not linux-5.4.2).
. usb 1-3: new full-speed USB device number 17 using xhci_hcd
. usb 1-3: New USB device found, idVendor=067b, idProduct=23a3,
bcdDevice= 6.05
. usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
. usb 1-3: Product: USB-Serial Controller
. usb 1-3: Manufacturer: Prolific Technology Inc.
. usb 1-3: SerialNumber: A=CCb11BS14
. pl2303: version magic '4.18.0-10-generic SMP mod_unload ' should
be '5.4.2-1.gb3d18f4-default SMP mod_unload modversions '

It has been several years, since I last compiled a driver from source
(also in PL2303G_Linux_Driver_v1.0.6.zip), so am unsure of my current
ability to compile the Prolific drivers source.

E. Matt Armstrong

unread,
Oct 5, 2023, 5:37:32 PM10/5/23
to Upstate Carolina Linux Users Group
Robert,
Here is what I got, hope it helps.

uname -r
5.15.0-84-lowlatency

/sbin/modinfo /lib/modules/5.15.0-84-lowlatency/kernel/drivers/usb/serial/pl2303.ko | grep vermagic
vermagic:       5.15.0-84-lowlatency SMP preempt mod_unload modversions

/sbin/modinfo /lib/modules/5.15.0-84-lowlatency/kernel/drivers/usb/serial/pl2303.ko | grep v067Bp23
alias:          usb:v067Bp23F3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v067Bp23E3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v067Bp23D3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v067Bp23C3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v067Bp23B3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v067Bp23A3d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v067Bp2304d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v067Bp2303d*dc*dsc*dp*ic*isc*ip*in*

ls -l /lib/modules/5.15.0-84-lowlatency/kernel/drivers/usb/serial/pl2303.ko
-rw-r--r-- 1 root root 52209 Sep  6 10:29 /lib/modules/5.15.0-84-lowlatency/kernel/drivers/usb/serial/pl2303.ko

Again best of luck to you, I know how much of a pain this can be. I still can't part with my last laptop that had a serial port, even though I have not powered it up in over 5 years.

M@

Robert Meier

unread,
Jun 1, 2024, 2:22:38 AMJun 1
to uc...@googlegroups.com


Thank you, Matt, Shay, and all who helped with this problem.

Problem: Counterfeit Chinese chips.
(See https://www.prolific.com.tw/US/
ShowProduct.aspx?p_id=223&pcid=126)

Solution: Upgrade your driver (and if necessary replace the hardware)
o Check forums and version logs,
to see if and when your distro updated the pl2303 driver
o If using openSuSE
File = /lib/modules/*/kernel/drivers/usb/serial/p2303.ko.zst
version >= 5.14.5.14.21-150500.55.65-default
o Download the source and build instructions from
Prolific Technologies at the site above, compile the driver,
and offer it to your distro supplier for testing, inclusion
(and a bounty?).

Details:
If you got a counterfeit chip, try to get your money back,
and file complaints with the appropriate authorities.
(e.g. U.S. Federal Trade Commission, ebay.com, ...)
Please help make crime unprofitable.

If you got a legitimate chip, but your exploited driver
o does not recognize the vendor 067B and product 23A3,
o does read but not write, or
o does read and WIPE target memory,
let your driver supplier know of the need to upgrade,
and offer your help.

Prolific Technologies provides source code, build instructions,
and for major distros, compiled drivers,
at the URL above.

(If you think your driver supplier malicious, rather then
innocently tricked, try to get your money back and file
complaints with the appropriate authorities.)


History:
I had to drop this problem for 4 months.
In February 2024, I installed Raspberry PI OS (Debian) and chirp on a
Raspberry Pi 3 which successfully read and wrote through the

6-in-1 USB programming cable (detailed in prior mail) using
Prolific Technologies pl2303g chipset (genuine, not counterfeit)

In March 2024, I updated to openSuSE-Leap-15.5 but the driver included
with 5.14.21-150500.55.65-default (2024-03-06), would read
successfully but writes failed.
I was able to successfully build the kernel driver following
instructions from Prolific Technologies and openSuSE.

As of kernel-5.14.21-150500.55.65 (2024-05-23),
/lib/modules/*/kernel/drivers/usb/serial/pl2303.ko.zst
successfully reads and writwa,



Reporting,

P.S. If you think this solution, leaves questions unanswered, please ask
them. I will try to update this solution accordingly.
Reply all
Reply to author
Forward
0 new messages