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! 😀
https://youtu.be/xczDd2_X0DI
One thought on “OS X in Limbo”