XtionをLinuxマシンにつなぐとカーネルパニック

Xtion PRO LIVELinuxマシン(Linux Mint 16, kernel ver. 3.11.0, x86_64)につなぐとカーネルパニックを起こして強制終了.原因を調べてみたら,どうやらUSB3用のコントローラxHCIに問題があるようで,BIOSUSB3.0 Modeを"Disabled"に変更したら一応は解決した.

uname -a

Linux vernon 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Xtion を接続すると,以下のようなdmesgが表示されたあと,カーネルパニック

May 11 00:18:28 vernon kernel: [ 3486.772863] usb 3-3: new high-speed USB device number 8 using xhci_hcd
May 11 00:18:33 vernon kernel: [ 3491.771090] xhci_hcd 0000:00:14.0: Timeout while waiting for address device command
May 11 00:18:38 vernon kernel: [ 3496.973199] xhci_hcd 0000:00:14.0: Timeout while waiting for address device command
May 11 00:18:38 vernon kernel: [ 3497.177141] usb 3-3: device not accepting address 8, error -62
May 11 00:18:38 vernon kernel: [ 3497.289144] usb 3-3: new high-speed USB device number 9 using xhci_hcd
May 11 00:18:38 vernon kernel: [ 3497.310739] usb 3-3: New USB device found, idVendor=1d27, idProduct=0601
May 11 00:18:38 vernon kernel: [ 3497.310741] usb 3-3: New USB device strings: Mfr=5, Product=4, SerialNumber=0
May 11 00:18:38 vernon kernel: [ 3497.310742] usb 3-3: Product: PrimeSense Device
May 11 00:18:38 vernon kernel: [ 3497.310743] usb 3-3: Manufacturer: PrimeSense
May 11 00:18:38 vernon mtp-probe: checking bus 3, device 9: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-3"
May 11 00:18:38 vernon mtp-probe: bus: 3, device: 9 was not an MTP device
May 11 00:18:38 vernon kernel: [ 3497.363840] usb_audio: Warning! Unlikely big volume range (=4181), cval->res is probably wrong.
May 11 00:18:38 vernon kernel: [ 3497.363842] usb_audio: [3] FU [Mic Capture Volume] ch = 1, val = 0/12544/3<6>[ 3497.363941] usbcore: registered new interface driver snd-usb-audio
May 11 00:18:38 vernon pulseaudio[2351]: [pulseaudio] alsa-mixer.c: Your kernel driver is broken: it reports a volume range from 0 to 0 which makes no sense.
May 11 00:18:38  pulseaudio[2351]: last message repeated 10 times
May 11 00:18:38 vernon rtkit-daemon[2353]: Successfully made thread 5819 of process 2351 (n/a) owned by '1000' RT at priority 5.
May 11 00:18:38 vernon rtkit-daemon[2353]: Supervising 5 threads of 1 processes of 1 users.
May 11 00:18:43 vernon kernel: [ 3502.178786] usb 3-3: USB disconnect, device number 9
May 11 00:18:43 vernon pulseaudio[2351]: [alsa-source-USB Audio] alsa-util.c: Got POLLNVAL from ALSA
May 11 00:18:43 vernon pulseaudio[2351]: [alsa-source-USB Audio] alsa-util.c: Could not recover from POLLERR|POLLNVAL|POLLHUP with snd_pcm_prepare(): そのようなデバイスはありません
May 11 00:18:44 vernon kernel: [ 3503.203106] usb 3-3: new high-speed USB device number 10 using xhci_hcd
May 11 00:18:49 vernon kernel: [ 3508.201282] xhci_hcd 0000:00:14.0: Timeout while waiting for address device command
May 11 00:18:54 vernon kernel: [ 3513.403478] xhci_hcd 0000:00:14.0: Timeout while waiting for address device command
May 11 00:18:55 vernon kernel: [ 3513.607403] usb 3-3: device not accepting address 10, error -62
...
May 11 00:19:17 vernon kernel: [ 3536.063372] usb 3-3: new high-speed USB device number 14 using xhci_hcd
May 11 00:19:22 vernon kernel: [ 3541.061679] xhci_hcd 0000:00:14.0: Timeout while waiting for address device command
May 11 00:19:22 vernon kernel: [ 3541.265584] xhci_hcd 0000:00:14.0: ERROR: unexpected command completion code 0x18.
May 11 00:19:23 vernon kernel: [ 3541.469470] usb 3-3: device not accepting address 14, error -22
May 11 00:19:23 vernon kernel: [ 3541.581511] usb 3-3: new high-speed USB device number 15 using xhci_hcd
May 11 00:19:23 vernon kernel: [ 3541.603264] usb 3-3: New USB device found, idVendor=1d27, idProduct=0601
May 11 00:19:23 vernon kernel: [ 3541.603274] usb 3-3: New USB device strings: Mfr=5, Product=4, SerialNumber=0
May 11 00:19:23 vernon kernel: [ 3541.603279] usb 3-3: Product: PrimeSense Device
May 11 00:19:23 vernon kernel: [ 3541.603283] usb 3-3: Manufacturer: PrimeSense
May 11 00:19:23 vernon kernel: [ 3541.610878] usb_audio: Warning! Unlikely big volume range (=4181), cval->res is probably wrong.
May 11 00:19:23 vernon kernel: [ 3541.610886] usb_audio: [3] FU [Mic Capture Volume] ch = 2, val = 0/12544/3usb_audio: Warning! Unlikely big volume range (=4181), cval->res is probably wrong.
May 11 00:19:23 vernon mtp-probe: checking bus 3, device 15: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-3"
May 11 00:19:23 vernon mtp-probe: bus: 3, device: 15 was not an MTP device
May 11 00:19:23 vernon rtkit-daemon[2353]: Successfully made thread 5860 of process 2351 (n/a) owned by '1000' RT at priority 5.
May 11 00:19:23 vernon rtkit-daemon[2353]: Supervising 5 threads of 1 processes of 1 users.
May 11 00:19:28 vernon pulseaudio[2351]: [alsa-source-USB Audio] alsa-util.c: Got POLLNVAL from ALSA
May 11 00:19:28 vernon pulseaudio[2351]: [alsa-source-USB Audio] alsa-util.c: Could not recover from POLLERR|POLLNVAL|POLLHUP with snd_pcm_prepare(): そのようなデバイスはありません
May 11 00:19:28 vernon kernel: [ 3541.614287] usb_audio: [3] FU [Mic Capture Volume] ch = 1, val = 0/12544/3<6>[ 3546.471173] usb 3-3: USB disconnect, device number 15
May 11 00:19:29 vernon kernel: [ 3547.495362] usb 3-3: new high-speed USB device number 16 using xhci_hcd

そしてカーネルパニック

...
[...] Kernel panic - not syncing: Fatal exception in interrupt
[...] drm_kms_helper: panic occurred, switching back to text console

なお,USB3.0用ポートでトラブっている可能性を考慮して,USB2.0用のポートに挿している.
ググっていると,同じ問題を抱えている人が.

対策としては, /etc/modprobe.d/blacklist-xhci_hcd.conf を作成し,

blacklist xhci_hcd

を書き込む,というものが紹介されていた.xhciブラックリストに載せて,使わないようにする,というもの.オリジナルはXHCI (USB 3.0) kernel Module Prevents Suspend
しかし,それでも xhci_hcd が使われて,カーネルパニック

最終的に,BIOS-->Config-->USB で USB 3.0 Mode を [Auto] から [Disabled] に変更したところ,xhciの代わりに ehci-pci が使われるようになって,カーネルパニックも起きなくなった.
サンプルのビューアも問題なく動いた.

他にも同じような方法で解決している人が.

でもこれだとUSB3.0のハードディスクなどをつないでもUSB2.0のパフォーマンスしか出ないと思うので,何かベターな方法はないものか...