OS X in Limbo

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! 😀

Aktivieren Sie JavaScript um das Video zu sehen.
https://youtu.be/xczDd2_X0DI

One thought on “OS X in Limbo”

Leave a Reply

Your email address will not be published. Required fields are marked *