A patch for the Prolific USB serial driver

Sep 25, '03 10:06:00AM

Contributed by: Anonymous

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."

Comments (23)


Mac OS X Hints
http://hints.macworld.com/article.php?story=200309231754060