I just treated myself to LIMBO on Steam‘s Holiday Sale. It has some really is tricky parts. So I thought why not use the XBox 360 controller? … bad idea!
I found out the hard way that that Colin Munro’s OS X driver for the XBox 360 controller doesn’t work with OS X 10.9!?! 🙁 Although it recognizes when the controller gets plugged-in the controller refuses to … well, control anything. If you–like me–followed the common technical practice of “unplugging it and plugging it back in again” you’ll have had the same experience of your Mac going belly-up. It turns out unplugging the controller will reproducibly crash your whole system (using driver version 0.12 on OS X 10.9.1). Believe me, I’ve tried! … and it seems others as well.
The error report will look something like this:
Mon Dec 30 22:48:01 2013
panic(cpu 0 caller 0xffffff8025cdc19e): Kernel trap at 0xffffff7fa803d98e, type 14=page fault, registers:
CR0: 0x000000008001003b, CR2: 0x0000000000000000, CR3: 0x00000000286f7000, CR4: 0x00000000001606e0
RAX: 0xffffff80487b3400, RBX: 0xffffff80487b3400, RCX: 0x0000000000000007, RDX: 0xffffff8051ed5800
RSP: 0xffffff81f95abb10, RBP: 0xffffff81f95abb20, RSI: 0x00000000e0000010, RDI: 0x0000000000000000
R8: 0x0000000000000000, R9: 0x0000000000000000, R10: 0x0000000000000010, R11: 0x0000000000000000
R12: 0xffffff804f05f5c0, R13: 0x00000000e0000010, R14: 0x0000000000000007, R15: 0xffffff8051ed5800
RFL: 0x0000000000010246, RIP: 0xffffff7fa803d98e, CS: 0x0000000000000008, SS: 0x0000000000000010
Fault CR2: 0x0000000000000000, Error code: 0x0000000000000000, Fault CPU: 0x0
Backtrace (CPU 0), Frame : Return Address
0xffffff81f95ab7a0 : 0xffffff8025c22f69
0xffffff81f95ab820 : 0xffffff8025cdc19e
0xffffff81f95ab9f0 : 0xffffff8025cf3606
0xffffff81f95aba10 : 0xffffff7fa803d98e
0xffffff81f95abb20 : 0xffffff802608f48a
0xffffff81f95abb80 : 0xffffff802608f7a3
0xffffff81f95abba0 : 0xffffff802608a969
0xffffff81f95abbe0 : 0xffffff802608f5f2
0xffffff81f95abc10 : 0xffffff802608f769
0xffffff81f95abc50 : 0xffffff80260912c2
0xffffff81f95abca0 : 0xffffff80260ac9ae
0xffffff81f95abce0 : 0xffffff80260909bf
0xffffff81f95abd60 : 0xffffff8026090477
0xffffff81f95abda0 : 0xffffff802609020a
0xffffff81f95abe00 : 0xffffff80260917dc
0xffffff81f95abe10 : 0xffffff7fa6c2c72a
0xffffff81f95abe30 : 0xffffff7fa6da4b46
0xffffff81f95abe70 : 0xffffff7fa6da881f
0xffffff81f95abea0 : 0xffffff7fa6da8cbf
0xffffff81f95abf00 : 0xffffff7fa6da3bdf
0xffffff81f95abf20 : 0xffffff8025c4a15a
0xffffff81f95abfb0 : 0xffffff8025cd6aa7
Kernel Extensions in backtrace:
com.apple.iokit.IOUSBFamily(650.4.4)[972D3024-AF9C-3E09-A9EC-D9AB2A559B38]@0xffffff7fa6c18000->0xffffff7fa6c76fff
dependency: com.apple.iokit.IOPCIFamily(2.8)[447B4896-16FF-3616-95A2-1C516B2A1498]@0xffffff7fa62ba000
com.apple.driver.AppleUSBHub(650.4.4)[1229941E-4CB9-3F57-B0A6-4A0AD595025D]@0xffffff7fa6d98000->0xffffff7fa6daefff
dependency: com.apple.iokit.IOUSBFamily(650.4.4)[972D3024-AF9C-3E09-A9EC-D9AB2A559B38]@0xffffff7fa6c18000
com.mice.driver.Xbox360Controller(1.0d12)[CD56688F-D773-3C80-AE8E-34AC8CAB8988]@0xffffff7fa803c000->0xffffff7fa8043fff
dependency: com.apple.iokit.IOHIDFamily(2.0.0)[1185D338-98A5-345E-84F8-E59DF819A61B]@0xffffff7fa6ca5000
dependency: com.apple.iokit.IOUSBFamily(650.4.4)[972D3024-AF9C-3E09-A9EC-D9AB2A559B38]@0xffffff7fa6c18000
The important info is in the
com.mice.driver.Xbox360Controller
near the bottom. (see my other blog post on how to find these crash reports)
So what to do? If it can crash my system I’d rather have it off my machine. The driver doesn’t support uninstalling itself, so it must be removed manually. 🙁 You know the Internet: someone probably already had the same problem … and this time the solution is in the MacRumors forum. 😉
To find out what the the PKG installed you have to probe it. open the Terminal and run the following commands.
First we need to find the correct package name.
pkgutil --pkgs | grep 360
It will say something like
com.mice.pkg.Xbox360controller
. We use this to find the actual files.
pkgutil --files com.mice.pkg.Xbox360controller
Now that we have the list of installed files we can use this to remove it.
sudo rm -r "/Library/Application Support/MICE" sudo rm -r /Library/LaunchDaemons/com.mice.360Daemon.plist sudo rm -r /Library/PreferencePanes/Pref360Control.prefPane sudo rm -r /System/Library/Extensions/360Controller.kext sudo rm -r /System/Library/Extensions/Wireless360Controller.kext sudo rm -r /System/Library/Extensions/WirelessGamingReceiver.kext
Warning: this is a rather hackish way to remove kernel drivers. You have been warned!
Warning 2: double check that you have the right list of directories and files. It might change with future versions.
Warning 3: beware that directories may have spaces in their name, hence the quotation marks in the first line.
Now you can make the system forget about this package.
sudo pkgutil --forget com.mice.pkg.Xbox360controller
Finally you need to reboot.
When I try to plug my controller in an out it doesn’t crash any more. Yay! 😀
One thought on “OS X in Limbo”