3.19までのカーネルで、私のUSBデバイスはすべて完全に動作します。
4.0以降にアップグレードすると、一部のUSBデバイスが機能しなくなり、カーネルが次のようなエラーを生成します。
[ 3.369436] usb 9-1: device descriptor read/64, error -62
[ 3.593543] usb 9-1: new full-speed USB device number 4 using ohci-pci
[ 3.997572] usb 9-1: device not accepting address 4, error -62
[ 4.120602] usb 9-1: new full-speed USB device number 5 using ohci-pci
[ 4.524792] usb 9-1: device not accepting address 5, error -62
[ 4.524911] usb usb9-port1: unable to enumerate USB device
[ 15.402105] usb 9-1: new full-speed USB device number 6 using ohci-pci
[ 15.530135] usb 9-1: device descriptor read/64, error -62
[ 15.759224] usb 9-1: device descriptor read/64, error -62
[ 15.983312] usb 9-1: new full-speed USB device number 7 using ohci-pci
[ 16.111309] usb 9-1: device descriptor read/64, error -62
[ 16.340398] usb 9-1: device descriptor read/64, error -62
[ 16.564378] usb 9-1: new full-speed USB device number 8 using ohci-pci
[ 16.968454] usb 9-1: device not accepting address 8, error -62
[ 17.091555] usb 9-1: new full-speed USB device number 9 using ohci-pci
[ 17.495570] usb 9-1: device not accepting address 9, error -62
[ 17.495603] usb usb9-port1: unable to enumerate USB device
[ 17.673702] usb 9-1: new full-speed USB device number 10 using ohci-pci
[ 17.801758] usb 9-1: device descriptor read/64, error -62
[ 18.030814] usb 9-1: device descriptor read/64, error -62
[ 18.254834] usb 9-1: new full-speed USB device number 11 using ohci-pci
[ 18.382858] usb 9-1: device descriptor read/64, error -62
[ 18.611902] usb 9-1: device descriptor read/64, error -62
[ 18.835977] usb 9-1: new full-speed USB device number 12 using ohci-pci
[ 19.240034] usb 9-1: device not accepting address 12, error -62
[ 19.363101] usb 9-1: new full-speed USB device number 13 using ohci-pci
[ 19.767182] usb 9-1: device not accepting address 13, error -62
[ 19.767226] usb usb9-port1: unable to enumerate USB device
その特定の例は、安価なUSBメモリカードリーダーにすぎませんでした。
私にとってより重要な問題は、mythtvバックエンドボックスのQuad DVB-Tレシーバーも同じ問題の影響を受けるため、現時点では3.19を超えてそのマシンをアップグレードできないことです。これは、PCI-eカードで、USBブリッジへのpci-eのようなもので、USB経由で接続されたDVBチューナーです。完全にはわかりませんが、実際にはPCIe-> PCI-> USBカードの可能性があります。
動作している3.19カーネルに関するカードの詳細は次のとおりです。
# lsusb | grep Leadtek
Bus 010 Device 005: ID 0413:6680 Leadtek Research, Inc.
Bus 010 Device 004: ID 0413:6680 Leadtek Research, Inc.
Bus 010 Device 003: ID 0413:6680 Leadtek Research, Inc.
Bus 010 Device 002: ID 0413:6680 Leadtek Research, Inc.
# dmesg | grep -i DigitalNow| grep pci
[ 9.405568] input: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-1/rc/rc1/input17
[ 9.405687] rc1: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-1/rc/rc1
[ 9.475939] input: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-2/rc/rc2/input22
[ 9.476049] rc2: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-2/rc/rc2
[ 9.542441] input: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-3/rc/rc3/input24
[ 9.542617] rc3: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-3/rc/rc3
[ 9.609134] input: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-4/rc/rc4/input26
[ 9.609289] rc4: DigitalNow Quad DVB-T Receiver as /devices/pci0000:00/0000:00:0a.0/0000:04:00.0/0000:05:00.2/usb10/10-4/rc/rc4
# lspci | grep '^0[45]:'
04:00.0 PCI bridge: PLX Technology, Inc. PEX8112 x1 Lane PCI Express-to-PCI Bridge (rev aa)
05:00.0 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62)
05:00.1 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62)
05:00.2 USB controller: VIA Technologies, Inc. USB 2.0 (rev 65)
# lspci -vv -s 05:00
05:00.0 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62) (prog-if 00 [UHCI])
Subsystem: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 26
Region 4: I/O ports at d020 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk+ DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: uhci_hcd
05:00.1 USB controller: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller (rev 62) (prog-if 00 [UHCI])
Subsystem: VIA Technologies, Inc. VT82xx/62xx UHCI USB 1.1 Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin B routed to IRQ 41
Region 4: I/O ports at d000 [size=32]
Capabilities: [80] Power Management version 2
Flags: PMEClk+ DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: uhci_hcd
05:00.2 USB controller: VIA Technologies, Inc. USB 2.0 (rev 65) (prog-if 20 [EHCI])
Subsystem: VIA Technologies, Inc. USB 2.0 Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin C routed to IRQ 50
Region 0: Memory at fe500000 (32-bit, non-prefetchable) [size=256]
Capabilities: [80] Power Management version 2
Flags: PMEClk+ DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: ehci-pci
では、最近カーネルUSBドライバーで何が変更されましたか? これはバグですか、それとも構成の問題ですか?
いくつかのカーネルバージョン(3.8)ehci-hcd
以前では、USBのものは変更されていたため、以前にロードする必要がありましたehci-pci
。 initramfs-tools
以降は自動的にそれを処理するようにアップグレードされましたが、回避策の残されたコメントが私の/etc/modules
ファイルに残っています:
# make sure ehci-pci loads immediately after ehci-hcd for kernel 3.8
# (should be handled automagically by initramfs-tools 0.110 now)
#ehci-hcd
#ehci-pci
これは、ドライバーを特定の順序でロードすることによって、または特定の古いドライバーをブラックリストに登録することによって処理できる同様の状況ですか?
ハードウェアとソフトウェアの詳細:
これは、次のようないくつかのマシンで発生しています。
- AMD Phenom II X6 1090Tプロセッサー(ワークステーション)を搭載したAsus M4A89TD PRO USB3マザーボード
- AMD Phenom II X6 1090Tプロセッサーを搭載したAsus M5A97(神話フロントエンド)
- AMD Phenom II X6 1090Tプロセッサーを搭載したAsus Sabertooth 990FX(ワークステーションおよびサーバー)
- AMD FX(tm)-8150 Eight-Core Processor(mythバックエンド)を搭載したAsus Sabertooth 990FX
最後の1つは、FX-8150(前のマザーボードが死んでそれを再構築する必要があったときに横になっていたもの)を備えた、DigitalNow Quad DVB-Tレシーバーを備えた神話ボックスです。最初のM4A89TD Proは、安価なUSBメモリカードリーダーを備えたマシンです。
すべてに8 GB以上のRAMがあり、独自のnvidiaドライバーを使用して、nvidia GTX-750(神話ボックス)またはGTX-560またはGTX-560Ti GPUのいずれかを備えています。すべてが最近のカーネルでDebian sidを実行しています(4.2.xはすべて神話のバックエンドですが、USBがHID以外で重要なのはUSB kbdとマウス、さらにはwacomタブレットでさえ、4.0以上で正常に動作します。カーネル)。
すべてのマシンは、RAID-1で128〜256 GBのSSDからブートし、/にはXFS、/ bootにはext4を使用します。mythtvバックエンドもzfsonlinuxを実行して、大容量ストレージを実現しています。ワークステーション/サーバーを組み合わせた場合と同様です。
私はdebianストックカーネル、liquorixカーネル、カスタムコンパイルカーネルを試しました。すべて同じ結果:3.19までは問題ありません。4.0以降では、DVB-Tレシーバーとメモリカードリーダーが壊れます。
注意:私は一般的な知識、またはグーグルを使って5分で見つけることができる情報の後でありません。4.0以上のカーネルでの既知のUSB(またはその他の関連する可能性のある)リグレッションに関する具体的な情報と、運が良ければパッチまたは回避策を求めています。
/etc/modules
。モジュールをカーネルに静的にリンクしても違いはなく、モジュールがロードされる順序を変更する機会が与えられないため、状況がさらに悪化する可能性があります。