Monday, May 6, 2013

USB to Serial (Prolific 2303) Device Cannot Start (Code 10) in Windows 8/8.1/10

Is this a rare situation where a piece of legacy hardware works fine in Linux and is broken in Windows??

The Prolific 2303 works perfectly fine in Linux Mint.  Yet, for some reason, Prolific says that some of these chips have reached the end of life and won't be 'supported' under Windows 8.  Prolific suggests that you purchase their updated chipset (PL2303HX Rev D):

So, what is different about the newer chips that they *can* be supported in Windows 8, while the older ones can't?  What has changed in Windows 8 that makes this support different?

Here's the yellow triangle with exclamation point that you'll see:

And here is the "Code 10" error:

Fixing it:  Some clever people have figured out workarounds for this issue.

Get this file:   (Google Drive link here.)

Extract the contents of this file somewhere and examine the contents:

Right click the .inf file, and select "Install".

I didn't notice that anything happened when I ran it.  Probably because I've tried so many different drivers and installations; maybe it was already installed, I don't know.

Got back to the device manager and right click the Prolific USB to Serial comm port, and click "Update Driver Software".

In the resulting dialog, click "Browse my computer for driver software":

Select "Let me pick from a list of device drivers on my computer":

Select the Prolific driver version 3.3.2 from 2008:


If all went well, you'll no longer see the yellow triangle:

h/t to the original post at Microsoft's Technet forum by user drtedrted.

Saturday, May 4, 2013

Windows 8 + Linux Mint UEFI Dual Boot Follow Up: When things go wrong.

Your BIOS setup may look different from this, but this is what mine looks like when it works the way I want (dual boot via Grub):

My BIOS "Boot" Configuration
Notice the first item called "mint".  This guy disappeared once after a Windows update.  In order to get it back, you may have to add it again.  Notice the option "File Browser Add Boot Option" in the screen above?  Select that option and you should get something that looks like this:

Dell file chooser
This is just a primitive file picker.  Above is a list of partitions on my machine.  You can select any one you want and see what is in there.  Then one you're looking should have contents like this:

Under <linuxmint> you should see this:

The grubx64.efi file is the one you want, this one will start Grub on boot.  Once you've selected this file, you will probably be asked to name the new boot configuration.  You can call it whatever you want.  Once you've given it a name (I called it "mint"), you will want to make it the first boot priority as in the first photo of this article.

Another problem I ran into once (again after a Windows 8 'update') was messed up partition flags.  Here is what my "working" partitions look like:

I've highlighted the partition flags at right.  You will of course need to know what you're doing if you start messing with these.  The important flags are "boot", which is on /dev/sda1 here, and the "msftres" flag which is on an 'unknown' chunk of the disk.  Make sure these are set properly.

Finally, when things really go wrong and you can't boot into Windows 8 anymore, you may need a Windows 8 rescue image.  This can be generated from a working copy of Windows -- even a working copy from a friend that has Windows 8.  If you can't find a friend that has it, maybe you can go to a local computer store and get one made...  You just need an 8GB USB memory stick.  I had to borrow one one from a friend of mine in order to use the utility called "bootrec".  The general procedure was something like:
  1. Boot Windows 8 recovery from USB drive. 
  2. Get to a command prompt and run the following:
  3. bootrec /fixmbr
  4. bootrec /fixboot
  5. bootrec /rebuildbcd
I am not sure which of the last three commands was most effective in fixing my problem, but I ran all of them.

So that's it.  For any problem you may have, I think you've got the information here to solve it.