Hello everydoby I have Motorola-branded prolific usb cable. This cable, once inserted in a port, claims to be a 0307 chipset adapter, and Linux kernel doesn't recognize it: not working. Someone told me that Motorola has changed the label in those cables that claim to be 0307, but they are pl2303. Does anyone have one of these cables working? I've tried many ways, including udev, to make it work, but no success. My next step is to recompile the kernel module, but I was wondering if someone has solved it in another way. Bye Dario.
On 01/19/2011 12:45 PM, Dario Lombardo wrote:
Hello everydoby I have Motorola-branded prolific usb cable. This cable, once inserted in a port, claims to be a 0307 chipset adapter, and Linux kernel doesn't recognize it: not working. Someone told me that Motorola has changed the label in those cables that claim to be 0307, but they are pl2303. Does anyone have one of these cables working? I've tried many ways, including udev, to make it work, but no success. My next step is to recompile the kernel module, but I was wondering if someone has solved it in another way. Bye Dario.
I've succeded with module patching. If someone has one of these cables and needs help, I can explain how to pacth (2 lines patch). Anyway, I'm still interested if someone has found another approach.
Hello Dario,
I'm interested about the patch. I have Prolific USB-jack 2,5 cable (not sure if its Motorola brand, details attached), everything is working for me but I'm trying to help one guy who's setup is not working and then put some helpful information on wiki.
Thanks, Tomas
Hello everydoby I have Motorola-branded prolific usb cable. This cable, once inserted in a port, claims to be a 0307 chipset adapter, and Linux kernel doesn't recognize it: not working. Someone told me that Motorola has changed the label in those cables that claim to be 0307, but they are pl2303. Does anyone have one of these cables working? I've tried many ways, including udev, to make it work, but no success. My next step is to recompile the kernel module, but I was wondering if someone has solved it in another way. Bye Dario.
I've succeded with module patching. If someone has one of these cables and needs help, I can explain how to pacth (2 lines patch). Anyway, I'm still interested if someone has found another approach.
Hi Tomas
On 01/21/2011 03:14 AM, Tomas Kopsa wrote:
Device: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x067b Prolific Technology, Inc. idProduct 0x2303 PL2303 Serial Port
This points out that your cable is ok. Both Vendor and product id are ok. The motorola cable is shown as idProduct=0x0307.
bcdDevice 3.00 iManufacturer 1 Prolific Technology Inc. iProduct 2 USB-Serial Controller iSerial 0 bNumConfigurations 1
This is my dmesg using the moto cable
[ 1075.794167] usb 1-1.2: new full speed USB device using ehci_hcd and address 53 [ 1075.879904] usb 1-1.2: New USB device found, idVendor=067b, idProduct=0307 [ 1075.879910] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1075.879914] usb 1-1.2: Product: USB-Serial Controller [ 1075.879917] usb 1-1.2: Manufacturer: Prolific Technology Inc. [ 1075.879920] usb 1-1.2: SerialNumber: 06001069
To make it work you have to recompile the module pl2303, with this patch (my kernel is 2.6.35.10-74.fc14.i686). Be careful to setup the right values in the kernel root Makefile in order to fit your running kernel.
*** drivers/usb/serial/pl2303.h.orig 2011-01-21 09:11:21.000000000 +0100 --- drivers/usb/serial/pl2303.h 2011-01-19 13:54:30.000000000 +0100 *************** *** 21,26 **** --- 21,27 ---- #define PL2303_PRODUCT_ID_MMX 0x0612 #define PL2303_PRODUCT_ID_GPRS 0x0609 #define PL2303_PRODUCT_ID_HCR331 0x331a + #define PL2303_PRODUCT_ID_MOTOROLA 0x0307
#define ATEN_VENDOR_ID 0x0557 #define ATEN_VENDOR_ID2 0x0547
*** drivers/usb/serial/pl2303.c.orig 2011-01-21 09:11:09.000000000 +0100 --- drivers/usb/serial/pl2303.c 2011-01-19 13:58:22.000000000 +0100 *************** *** 50,55 **** --- 50,56 ---- { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MMX) }, { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_GPRS) }, { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_HCR331) }, + { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MOTOROLA) }, { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) }, { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
Remove the old module (rmmod pl2303) and insert the new one (insmod <yoursrckernelroot>/drivers/usbserial/pl2303). Check that the usbserial module is running (modprobe usbserial). If the insmod command fails, it depends on the wrong values put in the Makefile. Check "vermagic" using modinfo against old and new modules.
Hope this helps. Dario.
To make it work you have to recompile the module pl2303, with this patch (my kernel is 2.6.35.10-74.fc14.i686). Be careful to setup the right values in the kernel root Makefile in order to fit your running kernel.
Not necessarily. You should also be able to check without recompiling.
Just go to the drivers-directory in sysfs:
cd /sys/bus/usb/drivers/<driver>
and echo the data to the file new_id (as root):
echo "067b 0307" > new_id
This should bind the driver to the new_id.
@Dario: Will you upstream your patch? (Check the whitespaces before with checkpatch.pl)
Regards,
Wolfram
baseband-devel@lists.osmocom.org