USB device 1a86:7523 (serial-to-USB cable) not recognised by CH341 driver
There are cheap clones of the Winchiphead USB/Serial cable that use the VID 0x1a86 and PID 0X7523. The current
driver (Hardy Heron 2.6.24-19-386) does not include these codes for device recognition. For further details please see:-
If the patch suggested is incorporated, then these devices will be recognised when plugged in.
CVE References
Sorry, the link to the complete thread is:-
This is a simple cherry-pick from Intrepid:
commit 82078234d4023c6 1b9d88e8be5e795 423d17538e
Author: Michael F. Robbins
Date: Fri May 16 23:48:42 2008 -0400
USB: serial: ch341: New VID/PID for CH341 USB-serial
Recent USB-serial devices using the WinChipHead CH340/CH341 chipset are
being shipped with a new vendor/product ID code pair, but an otherwise
identical device. (This is confirmed by looking at INF for the included
Windows driver.)
Patch is tested and working, both with new and old devices.
Signed-off-by: Michael F. Robbins
Signed-off-by: Greg Kroah-Hartman
diff —git a/drivers/ usb/serial/ ch341.c b/drivers/ usb/serial/ ch341.c
index ba28fdc..1f7c86b 100644
— a/drivers/ usb/serial/ ch341.c
+++ b/drivers/ usb/serial/ ch341.c
@@ -28,6 +28,7 @@ static int debug;
Changed in linux: | |
assignee: | nobody → ubuntu-kernel-team |
importance: | Undecided → Low |
milestone: | none → ubuntu-8.04.2 |
status: | New → Triaged |
Impact: This USB serial device is not detected.
Patch Description: Add USB device identifiers to the USB device ID table.
Test Case: See bug description
Tim Gardner wrote:
> SRU Justification
>
> Impact: This USB serial device is not detected.
>
> Patch Description: Add USB device identifiers to the USB device ID
> table.
>
> Patch: http:// kernel. ubuntu. com/git? p=ubuntu/ ubuntu-
> hardy.git; a=commit; h=97e9ddb22ac46 80937d60f7ad2a4 f41e9a2b1abf
>
> Test Case: See bug description
>
ACK
When all other means of communication fail, try words!
This is apparently fixed in intrepid already.
Changed in linux: | |
milestone: | none → ubuntu-8.04.2 |
milestone: | ubuntu-8.04.2 → none |
status: | Fix Committed → Fix Released |
Accepted into intrepid-proposed, please test and give feedback here. Please see https:/ /wiki.ubuntu. com/Testing/ EnableProposed for documentation how to enable and use -proposed. Thank you in advance!
Accepted into hardy-proposed, please test and give feedback here. Please see https:/ /wiki.ubuntu. com/Testing/ EnableProposed for documentation how to enable and use -proposed. Thank you in advance!
Could someone please tell me which package is the one I need to upgrade on Intrepid to test? Is it the kernel? If so is this safe to test on a production system?
this update is for hardy, this bug is allegedly already fixed in intrepid. I just used the wrong incantation of my SRU processing script which is why comment 7 erroneously speaks about intrepid.
Sorry martin, my mistake. I saw that the device was still not associating to a device name in the lsusb output and thought the bug was not fixed yet.
hooked the cable up to router today and worked perfectly, yay!
psypher, did you test the hardy-proposed update or intrepid?
Running stock install of Intrepid, worked perfectly, Another neeh neeeh neeeh at my windows friends who struggled getting it working with the windows driver on the CD that came with the cable 😉
Accepted linux into hardy-proposed, please test and give feedback here. Please see https:/ /wiki.ubuntu. com/Testing/ EnableProposed for documentation how to enable and use -proposed. Thank you in advance!
This bug was fixed in the package linux — 2.6.24-23.46
—————
linux (2.6.24-23.46) hardy-proposed; urgency=low
* rt: Updated PREEMPT_RT support to rt21
— LP: #302138
* SAUCE: Update lpia patches from moblin tree
— LP: #291457
* SAUCE: replace gfs2_bitfit with upstream version to prevent oops
— LP: #276641
* isdn: Do not validate ISDN net device address prior to interface-up
— LP: #237306
* hwmon: (coretemp) Add Penryn CPU to coretemp
— LP: #235119
* USB: add support for Motorola ROKR Z6 cellphone in mass storage mode
— LP: #263217
* md: fix an occasional deadlock in raid5
— LP: #208551
* SAUCE: buildenv: Show CVE entries in printchanges
* SAUCE: buildenv: Send git-ubuntu-log informational message to stderr
* Xen: dma: avoid unnecessarily SWIOTLB bounce buffering
— LP: #247148
* Update openvz patchset to apply to latest stable tree.
— LP: #301634
* XEN: Fix FTBS with stable updates
— LP: #301634
* Add HID quirk for dual USB gamepad
— LP: #140608
* Enable CONFIG_ AX25_DAMA_ SLAVE=y
— LP: #257684
* SAUCE: Correctly blacklist Thinkpad r40e in ACPI
— LP: #278794
* SAUCE: ALPS touchpad for Dell Latitude E6500/E6400
— LP: #270643
* Revert «[Bluetooth] Eliminate checks for impossible conditions in IRQ
handler»
— LP: #217659
* KVM: VMX: Clear CR4.VMXE in hardware_disable
— LP: #268981
* iov_iter_advance() fix
— LP: #231746
* Fix off-by-one error in iov_iter_advance()
— LP: #231746
* USB: serial: ch341: New VID/PID for CH341 USB-serial
— LP: #272485
* x86: Fix 32-bit x86 MSI-X allocation leakage
— LP: #273103
* b43legacy: Fix failure in rate-adjustment mechanism
— LP: #273143
* x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap.
— LP: #276334
* openvz: merge missed fixes from vanilla 2.6.24 openvz branch
— LP: #298059
* openvz: some autofs related fixes
— LP: #298059
* openvz: fix ve stop deadlock after nfs connect
— LP: #298059
* openvz: fix netlink and rtnl inside container
— LP: #298059
* openvz: fix wrong size of ub0_percpu
— LP: #298059
* openvz: fix OOPS while stopping VE started before binfmt_misc.ko loaded
— LP: #298059
* x86-64: Fix «bytes left to copy» return value for copy_from_user()
* NET: Fix race in dev_close(). (Bug 9750)
— LP: #301608
* IPV6: Fix IPsec datagram fragmentation
— LP: #301608
* IPV6: dst_entry leak in ip4ip6_err.
— LP: #301608
* IPV4: Remove IP_TOS setting privilege checks.
— LP: #301608
* IPCONFIG: The kernel gets no IP from some DHCP servers
— LP: #301608
* IPCOMP: Disable BH on output when using shared tfm
— LP: #301608
* IRQ_NOPROBE helper functions
— LP: #301608
* MIPS: Mark all but i8259 interrupts as no-probe.
— LP: #301608
* ub: fix up the conversion to sg_init_table()
— LP: #301608
* x86: adjust enable_ NMI_through_ LVT0()
— LP: #301608
* SCSI ips: handle scsi_add_host() failure, and other err cl.
1a86 7523 linux driver
I intend to use this (in the beginning not so) nice dingy to attach serial ports over USB to a Virtual Machine running W2KSP4 on my Opensuse Linux notebook. Yep, you guessed right, many things in my collection have serial ports for communication and data exchange.
The plugs just have arrived by mail from Singapore (the shop claimed to be in HK), I had bought them on ebay (searching for USB 2 serial wordlwide and sorted by increasing price & shipping, and they were not really expensive (2.3 Euros incl. shipping and a USB extension cable. Meanwhile, I found a similar adapter *with* driver CD for even 1.69, shipping included, from Mainland China. Strangely, this is much cheaper than buying from a German source, but when buying from a +- local dealer, maybe you won’t run into challenges like this one, at least, it will be easier for you to catch someone whom you may rip off the head in this case). For a windows driver, there was a link on the seller’s page, it pointed to the 1.5M file dx0038.rar, stored on box.net, a filehoster. I ran the setup, plugged the adapter into a USB slot and: Nope! Of course, nothing worked (if it had, you wouldn’t be able to read it here :).
So far the story. Here is the solution (that’s what you’re here for, probably).
In Linux, the lsusb command showed the device ID:
1a86:7523 Unknown HL-340 USB-Serial adapter
Googling for it (it was something like: 1a86:7523 HL-340 USB-Serial ), I found this driver archive: href=http://www.winchiphead.com/download/CH341/CH341SER.ZIP .
At http://www.winchiphead.com/download/index.htm , you’ll find some technical schematics that explain how such a converter works. They are in chinese, but the schematics are with western characters and mostly self-explanatory. Winchiphead manufactures one of the chips inside the green dingy, not the adapter itself.
In this archive, there is folder DRIVER . There you’ll find the file CH341SER.INF and some *.SYS files. When Windows asks you for the driver, you need to point it to this INF file. On said notbook, I could install 3 of these converters in parallel. Windows enumerated them as COM3 , COM4 and COM5 . According to the schematics in the docs, there seems not much difference between the 340 and the 341 flavor. There is another directory in the package labelled INSTALL . There is an executable that seems to be a tool to access serial ports. But it is in chinese; you’ll need a chinese windows in order display the menues and characters correctly. And, of course, you need to be able to read chinese!
During my research, I came over some other sources, too, but they did not work with this converter. I had a look into the file and found the note for Windows 98/Me/2000/XP/Server2003/Vista/64bit XP/64bit Vista . So, it might work there, too. Good luck and have fun!
What might be the reason for this? I suppose, there are various chips in these adapters, requiring different drivers.
With Linux , there seem to be less problems: My Linux host (OpenSuse 11.1, Kernel 2.26.27.48-0.2-default) recognizes the adapter immediately and mounts it as /dev/ttyUSB0. A second one appears as /dev/ttyUSB1. More on this topic may be found there.