Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

A patch for the Prolific USB serial driver System
The Prolific Tech PL2303 USB to Serial port chip is used in a lot of USB connected serial-like devices, such as GPS, cellular phones and even plain serial to USB cables (for example, the IOGear or the Wiretek devices). The latest version of the MacOS X driver (1.0.6 as I write), works almost flawlessly ... except for a very frequent message on the system log:
mach_kernel: ttyioss800000x: dequeueData ret 3
mach_kernel: 00000x: dequeueData ret 3
(x can be anything)
If you use the driver with a 56K modem, you end up with hundreds of messages per minute. I found the cause being a rather obvious programming mistake, which can be corrected "the hard way:"
  1. Unload the driver with:
    % sudo kextunload /System/Library/Extensions/ProlificUsbSerial.kext
    
  2. Backup the original code with:
    
    % cd /System/Library/Extensions/ProlificUsbSerial.kext/Contents/MacOS
    % sudo cp ProlificUsbSerial ProlificUsbSerial.old
    
  3. Make the driver writeable:
    
    % chmod 0777 ProlificUsbSerial
    
  4. With a hex editor, open ProlificUsbSerial. At offset 0x2288, you find 48 00 00 08 [b *+4]. Replace it with 38 60 00 00 [li r3,0x0].

  5. Change back the mode of the driver with:
    
    % sudo chmod 0555 ProlificUsbSerial
    
  6. Load the driver:
    
    % sudo kextload -v /System/Library/Extensions/ProlificUsbSerial.kext
    
That's it! As usual, there's no warranty. A mistake in the editing phase, can cause any kind of trouble or malfunction. All I can say is "It works here."
    •    
  • Currently 2.00 / 5
  You rated: 2 / 5 (5 votes cast)
 
[47,849 views]  

A patch for the Prolific USB serial driver | 23 comments | Create New Account
Click here to return to the 'A patch for the Prolific USB serial driver' hint
The following comments are owned by whoever posted them. This site is not responsible for what they say.
A patch for the Prolific USB serial driver
Authored by: david-bo on Sep 25, '03 02:49:17PM

How did you figure out that the cause was a rather obvious programming mistake when all you could see was the binary code?

---
http://www.google.com/search?as_q=%22Authored+by%3A+david-bo%22&num=10&hl=en&ie=ISO-8859-1&btnG=



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: iDG on Sep 27, '03 07:03:38AM
Well, I thought the error in the code must have been a rather harmless one from start, because the driver did work fine except for the message. Observing the code with otool -V -h i did see what I think is the result of a code like:
if(something()) {
  result=do_stuff()
}
else {
   result=do_other_stuff()
}
return result

Given the obvious outcome of the code, do_other_stuff() either always returned the wrong result, or simply was not designed to return anything useful, and the code should have been:
if(something()) {
  result=do_stuff()
}
else {
   do_other_stuff()
   result=0;
}
return result



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: deviladv on Sep 25, '03 03:03:44PM

I don't need it myself, but perhaps you could host or upload the edited driver yourself for people to download? It could cut down on mistakes by people less comfortable with hexeditors.



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: LC on Sep 25, '03 07:40:37PM
In step 4, to avoid having to do hand edits, I suggest this instead --

hexdump -s 0x2288 -n 4 ProlificUsbSerial
(* it should output "4800 0008" at 0002288 *)

printf "\070\140\000\000" | dd bs=4 seek=2210 count=1 conv=notrunc of=ProlificUsbSerial

hexdump -s 0x2288 -n 4 ProlificUsbSerial
(* it should now output "3860 0000" at 0002288 *)

dd is /bin/dd, the other two (printf and hexdump) are from /usr/bin
All I did is to make the edit non-interactive, so you can copy/paste the command or script it. Larry.

[ Reply to This | # ]

A patch for the Prolific USB serial driver
Authored by: LC on Sep 25, '03 07:45:35PM
Sorry, my backslashes got eaten (in the printf command), let's try this instead --
printf "\070\140\000\000" | dd bs=4 seek=2210 count=1 conv=notrunc of=ProlificUsbSerial
Sorry, it looked o.k. when I previewed it, I thought;
there needs to be one backslash leading each of the 4 octal codes.

[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: Bobson on Sep 26, '03 12:26:34AM

I've encountered the same thing. A double backslash in code in the preview becomes a single backslash when posted....



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: LC on Sep 26, '03 11:18:53AM

Thanks; I felt a bit foolish after that happened yesterday, but I
haven't posted much using geeklog so I didn't know that the
preview isn't final in the case of backslashes. I still don't
understand how many times they need to call stripslashes, i.e.
could they do it all prior to preview ... that should be a FAQ; Larry.



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: Robert Hancock on Sep 25, '03 08:57:10PM

I have an Elecom UC-SGT USB-serial adpater with the Prolific PL2303 chip (I can see it through the clear casing) that refuses to work with the Prolific drivers (both 1.0.6 and 1.0.7b4) under both 10.2.6 and 10.2.8.
When I plug the adpater cable in and open System Profiler, I get the following profile:
Manufacturer ID: 1390
Product ID: 20483 ($5003)
Device speed: Maximum
Current: 100 mA
but when try to create a new serial port in the Network Port Setting of the Network preference, nothing happens. There is no USB-serial device.
I have read the net about various hacks like the one posted here and tried them all to no effect.
Any ideas what I am doing wrong?



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: Robert Hancock on Sep 25, '03 11:54:18PM

As a follow up, when I run Verbose mode at boot, I see a string of messages saying:
IOUSB interface specific family matching fails
This streams down the boot log about 20 times and then the boot proceeds. Could this mean that the ProlificUsbserial.kext driver is loading but somehow failing to recognise the Elecom USB-serial adapter with its PL-2303 chip?
If so, what should I do to hack the Pinfo.list file in the kext driver?
If I know the product ID and manufacturer ID, from the System Profiler, could I plug them into the driver?



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: LC on Sep 26, '03 12:13:46PM

I have a couple of PL-2303 based USB cables and at one point
early on, I seemed to have fewer problems when I connected
one of them through a USB hub, then into the system. That is
probably irrelevant though, in most cases.

Also, at one point I tried running "USB Prober", which is a nice
little helper, I think I actually needed the DDK for that. They talk
about getting debug info from the IOUSBFamily kext, in this doc --
http://developer.apple.com/hardware/usb/usbloggers.htm

but that's probably not helpful for your situation ... thought I'd
mention it since, you never know; Larry.



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: iDG on Sep 27, '03 07:14:20AM
You could try this:
Open /System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist with a text editor, find the line

        <key>IOKitPersonalities</key>
        <dict>
After the <dict> tag, add:

               <key>5003_056E</key>
                <dict>
                        <key>CFBundleIdentifier</key>
                        <string>com.prolific.driver.PL2303</string>
                        <key>IOClass</key>
                        <string>com_prolific_driver_PL2303</string>
                        <key>IOProviderClass</key>
                        <string>IOUSBInterface</string>
                        <key>bConfigurationValue</key>
                        <integer>1</integer>
                        <key>bInterfaceNumber</key>
                        <integer>0</integer>
                        <key>idProduct</key>
                        <integer>20483</integer>
                        <key>idVendor</key>
                        <integer>1390</integer>
                </dict>


[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: Robert Hancock on Sep 27, '03 10:53:14PM

Many thanks iDG--I'll give it a try and report back.



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: Robert Hancock on Sep 27, '03 11:32:12PM

iDG--you are the Wizard on this board.
I am pleased to say that logging in as root, editing the ProlificUsbSerial.kext Info.plist with your lines of code using TextEdit, saving and a reboot did the job! I now have my Elecom serial port workin with my APC Smart-UPS.

Many Many thanks indeed.

If anybody wants me to post the hacked Info.plist file for the Elecom UC-SGT (3,400 yen in Akihabara) let me know and I will put it up.

The original package from Prolific in Taiwan is the latest 1.0.7b4 package which Kevin Su emailed to me after I called them from Japan.



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: si on Dec 18, '03 08:40:39AM

I had a problem under OS X 10.3 (Panther) with a Manhattan USB Serial adapter using the PL-2303 chipset. The driver is intended for 10.2 but does install. After a restart an error message says the driver has not been correctly installed.

The solution is to correct the permissions and usership in /System/Library/Extentions/ProlificUSBSerial.kext

sudo su
<type your password>
chmod -R og-w /System/Library/Extentions/ProlificUSBSerial.kext <return>
chown -R root:wheel /System/Library/Extentions/ProlificUSBSerial.kext
<return>



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: TeeGate on Jan 28, '06 04:52:02AM

Has anyone been able to get the INtel Mac to connect to a USBSerial driver?

Guy



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: oRiCN on Oct 16, '03 06:45:09AM

This may be a silly question, but where can I get the driver from??



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: LC on May 23, '04 01:43:23AM

Ross Barkman has been kind to provide a beta copy of the PL-2303 OS X
driver (1.0.7b), since Prolific no longer provides a free driver download
for OS X on their tech support website. (See "http://www.taniwha.org.uk")
Thanks Ross! Larry;



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: ruebenschuss on Oct 24, '03 04:14:28PM

I'm trying to connect a Sony CMD-J5 mobile phone to the Mac and talk to it via "GSM Remote" App.
I've experienced a bloody hell of problems and since the original Sony USB-Cable uses the Prolific 2303 USB to serial I post it in this thread.
Its not easy to find the Installer of the Kernel Module because Prolific doesn't show it on their website any more. I found version 1.0.3 somewhere else.
After installing it didn't work and I got the error
USBF: 182. 65 AppleUSBOHCI[0x30aa000]::MakeDevice error setting address. err=0xe00002ed device=
0x32be200 - releasing device
in the dmesg.
There's a site of the Apple Developer Connetion to update the USBFamily KEXT. Even for the latest 10.2.8 Kernel and G5 Macs. I wonder if Panther wil have it built in.

This is where I stand today, I'll keep you informed about any progress. I do also appreciate any help on this.

cheers, Joachim



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: magir on Jun 27, '05 06:43:37AM

The download of the official driver (supporting Tiger) is available again:

http://tech.prolific.com.tw/visitor/v_filebrw_result.asp?CateID=138583



[ Reply to This | # ]
Prolific USB serial driver won't install :-/
Authored by: shredwild on Jul 18, '05 01:15:47AM

Hi there:

downloaded md_pl2303H_HX_X_v1.0.9b6.zip from
http://tech.prolific.com.tw/visitor/v_filebrw_result.asp?CateID=138583

but the package would not install correctly. After choosing the volume and clicking on install the system would display a dialog box indicating "You cannot continue. There is nothing to install" !?

Also tried to extract the driver with Pacifist and install manually. Driver would load (kextload) without problems but I can't see a device/port in the application I want to use the usbserial adapter with (Hotsynch in my case).

Any ideas?

Thanks, Harry.



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: MCJolley on Aug 05, '05 07:51:01PM

I am trying to connect my Kyocera 7135 with a prolific cable to my PowerBook G4 (OS 10.4.2) using SmithMicro QuickLink Mobile Mac v2.1.0. They say they are waiting on prolific to complete an updated driver. I installed the one mentioned above and it doesn't work consistently or completely. It did get it to connected a few times though, after restarting the Mac and resetting the phone each time, however it is very unreliable. Is there an updated driver in the works?



[ Reply to This | # ]
Latest Download site after Support Website move
Authored by: rjbMacOSXHints on Nov 07, '05 07:20:59PM

Now try:
http://www.prolific.com.tw/eng/downloads.asp?ID=31



[ Reply to This | # ]
A patch for the Prolific USB serial driver
Authored by: adamberti on Dec 03, '09 10:16:47AM

Anybody using this driver on Snow Leopard? Want to find somebody who is before I go this route. Don't have any of the hardware yet.



[ Reply to This | # ]