Uninstalling the Silicon Labs CP210x USB to Serial driver

I use several types of USB to Serial converters on Mac OS X, mostly for playing with Jeenode / Arduino hardware or connecting my HAM radio devices.

One of these devices, a Kenwood TH-D72, has a built-in Silicon Labs CP210x chip. The Mac OS X driver supplied by Silicon Labs is not very stable; it has caused my Mac to crash several times already. Uninstalling this driver is not as easy as uninstalling other applications on Mac; normally, you just drag the app into the trash – done. However, these drivers are supplied in “pkg” (package) format. Uninstalling software packages is a bit more involved.

Open Terminal and type the following commands:

macbookpro-ed:/ ed$ pkgutil --pkgs |grep silabs
com.silabs.siliconLabsVcpDriver.SiLabsUSBDriver.pkg
com.silabs.siliconLabsVcpDriver.SiLabsUSBDriver64.pkg

macbookpro-ed:/ ed$ pkgutil --lsbom com.silabs.siliconLabsVcpDriver.SiLabsUSBDriver.pkg
.
./SiLabsUSBDriver.kext
./SiLabsUSBDriver.kext/Contents
./SiLabsUSBDriver.kext/Contents/Info.plist
./SiLabsUSBDriver.kext/Contents/MacOS
./SiLabsUSBDriver.kext/Contents/MacOS/SiLabsUSBDriver
./SiLabsUSBDriver.kext/Contents/Resources
./SiLabsUSBDriver.kext/Contents/Resources/English.lproj
./SiLabsUSBDriver.kext/Contents/Resources/English.lproj/InfoPlist.strings

macbookpro-ed:/ ed$ pkgutil --lsbom com.silabs.siliconLabsVcpDriver.SiLabsUSBDriver64.pkg
.
./SiLabsUSBDriver64.kext
./SiLabsUSBDriver64.kext/Contents
./SiLabsUSBDriver64.kext/Contents/Info.plist
./SiLabsUSBDriver64.kext/Contents/MacOS
./SiLabsUSBDriver64.kext/Contents/MacOS/SiLabsUSBDriver64
./SiLabsUSBDriver64.kext/Contents/Resources
./SiLabsUSBDriver64.kext/Contents/Resources/English.lproj
./SiLabsUSBDriver64.kext/Contents/Resources/English.lproj/InfoPlist.strings

The first command looks for all PKG receipts pertaining to the Silicon Labs drivers. The next commands list the contents (Bill of Materials) for each driver package. Uninstalling the drivers can now be accomplished in several ways:

Leave the PKG, but disable the drivers (safest, but least clean):

This method does not actually uninstall the drivers. Locate the driver kext (kernel extensions) and rename to disable them:

mdfind SiLabsUSBDriver.kext
cd /System/Library/Extensions/
sudo mv SiLabsUSBDriver.kext SiLabsUSBDriver.kext_DISABLED
sudo mv SiLabsUSBDriver64.kext SiLabsUSBDriver64.kext_DISABLED

Reboot to verify that the driver is actually disabled. For example, plug in the USB device and check Console.app for a corresponding error message indicating that no driver could be found:

2011-11-29 8:34:56.000 PM kernel: 0 0 AppleUSBCDC: start - initDevice failed

Remove all files listed in the PKG Bill of Materials (clean, but less safe):

mdfind SiLabsUSBDriver.kext
cd /System/Library/Extensions/
sudo rm -rf SiLabsUSBDriver.kext
sudo rm -rf SiLabsUSBDriver64.kext
sudo pkgutil --forget com.silabs.siliconLabsVcpDriver.SiLabsUSBDriver.pkg
sudo pkgutil --forget com.silabs.siliconLabsVcpDriver.SiLabsUSBDriver64.pkg

Reboot to verify that the drivers are now completely gone.

Steve Jobs 1955 – 2011

Steve Jobs 1955 - 2011
Earlier today, Steve Jobs passed away at only 56 years old. He’s had an incredible impact on the tech industry and touched millions of people. To me, his keynotes (“SteveNotes”) and his incredible attention to detail in all of Apple’s designs have been a huge inspiration.

XKCD paid him a fitting tribute:

Eternal Flame

“There’s always the hope that if you sit and watch for long enough,
the beachball will vanish and the thing it interrupted will return.”

How to disable the DHCP server on VMware Fusion 3

VMware Fusion 3 on Mac offers three kinds of networking: bridged, NAT and host-only.

When using host-only networking, VMware Fusion runs a DHCP server for you on the virtual network “vmnet1“. By default, this daemon hands out IP addresses in the 172.16.115.0/24 network.

There are no settings in Preferences to configure or disable the DHCP server. This causes problems when trying to run your own virtualized DHCP server or PXE boot environment on the host-only network.

The VMware DHCP server can be disabled either temporarily or permanently. For a temporary fix (until you restart Fusion), end the DHCP server process. Open a Terminal window and type:

    sudo kill -15 `sudo cat /var/run/vmnet-dhcpd-vmnet1.pid`

To permanently disable the DHCP server, you need to change one line in /Library/Application Support/VMware Fusion/networking. This file normally looks like this:

    VERSION=1,0
    answer VNET_1_DHCP yes
    answer VNET_1_DHCP_CFG_HASH D06F14D2911502FA261951B0F568992FEC46C8B3
    answer VNET_1_HOSTONLY_NETMASK 255.255.255.0
    answer VNET_1_HOSTONLY_SUBNET 172.16.115.0
    answer VNET_1_VIRTUAL_ADAPTER yes
    answer VNET_8_DHCP yes
    answer VNET_8_DHCP_CFG_HASH 9894EC355205C9C006F1BE90320DF38FEE4CC80A
    answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
    answer VNET_8_HOSTONLY_SUBNET 172.16.178.0
    answer VNET_8_NAT yes
    answer VNET_8_VIRTUAL_ADAPTER yes
    add_bridge_mapping en0 2

Quit VMware Fusion, run “sudo vi /Library/Application Support/VMware Fusion/networking” and change the highlighted line to read:

    answer VNET_1_DHCP no

Reboot your Mac or run “sudo /Library/Application Support/VMware Fusion/boot.sh --restart” to activate the changes.

References:

AppleCare, true SaaS (Service-as-a-Service) ;-)

I’m really happy that I got AppleCare for my 2007 MacBook Pro. My laptop was obviously inspected by #5, “Mr. Murphy” as it left the factory…

Over the course of nearly 3 years, my MacBook Pro had to undergo lots of repairs. It’s been in the shop for around 2 months total (each repair takes at least 2 weeks over here in The Netherlands).

We’re talking 2 replacement LCDs, 3 replacement batteries, 2 replacement SuperDrives, 1 replacement hard disk and probably some other bits I forgot.

These replacement parts alone paid for my AppleCare. Of course, the question remains if a “Pro” laptop should experience all these defects.

Just 6 weeks after it returned from Yet Another Repair, the NVidia GPU finally dies (a known problem with this chip). This time AppleCare referred me to Apple Customer Relations, I guess they were starting to feel sorry for me.

After some internal discussions, I got the good news: Apple has decided to replace the laptop with a brand new MBP 15″, just 2 weeks before AppleCare coverage runs out. Now that’s what I call Service!

So here I am, impatiently waiting for the UPS delivery truck that carries my early X-Mas gift from Apple ;-)

iPhone 3GS “Restore in Progress”

My faith in the Church of Steve is being tested…

This morning, my iPhone 3GS complained about a lack of memory while installing an application update, became quite sluggish and eventually just hung. The standard Power Off button trick did not work, so I tried the Hard Reset (keep Home+Power pressed for 10 seconds). Result: the Apple logo was displayed. That’s all. No wait-cursor, no progress bar, nothing.

A couple of Hard Resets later, I was still looking at the Apple logo. So I started looking online for help in fixing my bricked iPhone.

The standard Master Reset trick (disconnect iPhone, Home+Power to switch off, connect via USB to iTunes with Home button pressed) did not seem to work: again, the Apple logo was my only reward. I followed the Youtube video instructions, but the iPhone wasn’t recognized by iTunes. This got me a bit worried ;-)

According to the videos, you can let go of the Home button as soon as iTunes recognizes your iPhone in Recovery Mode. That did not happen for the first few attempts (holding the Home button for as long as a minute). Only after patiently keeping the Home-button pressed for what seemed to be several minutes the iPhone responded by showing the “USB-plug connected to iTunes” screen.

So now I need to wait while Restore and Sync are in progress… Oh Steve, why hast thou forsaken me?