I recently purchased a BlackBerry Pearl. I love it. It’s great. Maybe I’ll “review” it at some point in the future. But, I wanted to post an entry about working around a flaw in the way Mac OS X handles the BlackBerry.
By default, the BlackBerry and Mac won’t talk. They don’t know how to talk to each other. It would appear from some further research (and assumptions) that the BlackBerry presents itself as a “vendor specific” device in the USB handshake. Mac OS X spawns up the SmartCard daemon (pcscd) to attempt to load a SmartCard reader driver. ((If you’re interested in the details, I’d recommend reading the post on the Apple list. The poster describes it in plain English while not watering down the process. Well done, Perry.)) However, instead of failing and exiting, it starts sucking 100% of the CPU. Oh, and as an added bonus, it won’t die when sending it a ‘kill -9’ as root. Plus, a standard shutdown or reboot will fail. The only solution is to hold down that power button. Not really something we want to do constantly.
To keep the SmartCard subsystem from trying to talk to the BlackBerry, you’ll need to edit the preference file for securityd as root. Using a text editor
, most likely from command line, (( I don’t know if the Property List Editor will prompt you for credentials and let you do it without jumping into the terminal. Unfortunately, I can’t test it right now. Using TextMate, I was able to open and edit the file. When I clicked “Save,” it prompted me for my password.)) open the file /private/etc/mach_init.d/securityd.plist. Make the following change:
<string>/usr/sbin/securityd -s conservative</string>
Occasionally, pcscd still launches and does it’s thing. Since I don’t use smart cards, I went ahead and just disabled it totally.
<string>/usr/sbin/securityd -s off</string>
Reboot your system, and the change should take effect. No more system dying when plugging in your BlackBerry!