Dengan kernel hingga 3,19, semua perangkat USB saya berfungsi dengan baik.
Saat memutakhirkan ke 4.0 atau lebih baru, beberapa perangkat USB saya berhenti bekerja dan kernel menghasilkan kesalahan seperti ini:
[ 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
Contoh khusus itu hanya pembaca kartu memori USB murah .... Saya tidak terlalu peduli tentang itu.
Masalah yang lebih penting bagi saya adalah bahwa penerima Quad DVB-T pada kotak backend mythtv saya juga mengalami masalah yang sama, jadi saya tidak dapat memutakhirkan mesin yang melewati 3,19 saat ini. Ini adalah kartu PCI-e, yang terlihat seperti semacam pci-e to usb bridge, dan tuner DVB terpasang melalui usb. Saya tidak sepenuhnya yakin tetapi saya pikir itu mungkin sebenarnya PCIe -> PCI -> kartu USB.
Berikut adalah detail kartu pada kernel 3.19 yang berfungsi:
# 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
Jadi, apa yang berubah pada driver USB kernel baru-baru ini? Apakah ini bug, atau ini masalah konfigurasi?
Beberapa versi kernel yang lalu (3.8), USB berubah sehingga ehci-hcd
harus dimuat sebelumnya ehci-pci
. initramfs-tools
sejak itu telah ditingkatkan untuk menangani hal itu secara otomatis, tetapi saya masih memiliki sisa-sisa solusi yang dikomentari dalam /etc/modules
file saya :
# 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
Apakah ini situasi yang serupa, yang dapat ditangani oleh memuat driver dalam urutan tertentu atau dengan memasukkan daftar hitam driver usang tertentu?
Beberapa perincian perangkat keras dan lunak:
Ini telah terjadi pada beberapa mesin termasuk:
- Motherboard Asus M4A89TD PRO USB3 dengan Prosesor AMD Phenom II X6 1090T (workstation)
- Asus M5A97 dengan Prosesor AMD Phenom II X6 1090T (frontend mitos)
- Asus Sabertooth 990FX dengan Prosesor AMD Phenom II X6 1090T (workstation dan server)
- Asus Sabertooth 990FX dengan AMD FX (tm) -8150 Prosesor Delapan-Inti (mitos backend)
Yang terakhir, dengan FX-8150 (yang merupakan tempat saya tergeletak ketika motherboard sebelumnya mati dan saya harus membangunnya kembali), adalah kotak mitos dengan DigitalNow Quad DVB-T Receiver. Yang pertama, M4A89TD Pro, adalah mesin dengan pembaca kartu memori USB yang murah.
Semua memiliki setidaknya 8GB RAM, dan semuanya memiliki nvidia GTX-750 (kotak mitos) atau GTX-560 atau GTX-560Ti GPU, menggunakan driver nvidia berpemilik. Semua menjalankan sisi Debian, dengan kernel baru-baru ini (4.2.x pada segalanya tetapi mitos backend karena hanya itu satu-satunya di mana USB penting untuk apa pun kecuali HID - USB kbd dan mouse dan bahkan tablet wacom berfungsi dengan baik, BTW, pada 4.0+ kernel).
Semua mesin boot dari 128-256GB SSD di RAID-1 menggunakan XFS untuk / dan ext4 untuk / boot. Backend mythtv juga menjalankan zfsonlinux untuk penyimpanan massal. Seperti halnya workstation / server gabungan.
Saya telah mencoba kernel stok debian, kernel liquorix, dan kernel yang dikompilasi khusus. Semua dengan hasil yang sama: hingga 3,19 baik-baik saja. 4.0 dan kemudian memecah penerima DVB-T dan pembaca kartu memori saya.
Harap dicatat: Saya tidak mengejar pengetahuan umum, atau informasi yang dapat ditemukan dalam lima menit dengan google. Saya mencari informasi spesifik tentang setiap regresi USB yang diketahui (atau kemungkinan terkait lainnya) di kernel 4.0+ dan, jika beruntung, patch atau solusi.
/etc/modules
. menautkan modul ke kernel secara statis tidak akan membuat perbedaan dan kemungkinan akan memperburuk keadaan dengan memberi saya tidak ada kesempatan untuk mengubah urutan modul yang dimuat.Jawaban:
Ini terdengar seperti regresi kernel di Linux 4.x, setidaknya untuk perangkat keras spesifik Anda.
http://archlinuxarm.org/forum/viewtopic.php?f=53&t=8798
Mungkin ada di komit ini, tetapi sulit untuk mengatakan karena Anda tidak memberikan informasi lebih lanjut tentang sistem Anda.
https://github.com/torvalds/linux/commit/a0b5cd4ac2d6542d524d8063961bf914b5df1efa
Beberapa sistem tampaknya mengalami masalah dengan setidaknya USB 3: https://lists.debian.org/debian-kernel/2015/08/msg00066.html
Jadi pertanyaan sebenarnya adalah, apa perangkat keras Anda, dan apa kernel 4.x terbaru yang Anda coba. Ini mungkin telah diselesaikan dalam rilis 4.x terbaru. Apakah masalah dengan usb 2 dan 3, atau hanya 3, atau tidak terkait dengan versi usb? Itu akan membantu mempersempitnya. Data Anda sepertinya hanya USB2 maks di sistem Anda.
Regresi kernel normal.
Seperti yang saya katakan kepada orang-orang ketika mereka mengajukan pertanyaan jenis ini, kernel linux baru memiliki beberapa hasil yang mungkin:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1455376 Itu adalah bug Ubuntu dengan penanganan usb.
Biasanya bug yang mempengaruhi hal-hal yang banyak orang gunakan akan diperbaiki secara relatif cepat, jadi ada baiknya memeriksa rilis terbaru dari kernel stabil terbaru, yang saya pikir saat ini berada pada 4.3.
Jika Anda menggunakan ubuntu, Anda dapat menjalankan kernel liquorix, setidaknya jika itu adalah ubuntu saat ini, bukan LTS, sama untuk rilis debian, yang tidak stabil.
Melihat: inxi -bxxx akan sangat membantu untuk menunjukkan dasar-dasar sistem Anda. inxi dapat diinstal dari kebanyakan repositori distro.
Berikut daftar perubahan USB Greg KH untuk 4.0 / 3.20
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e29876723f7cb7728f0d6a674d23f92673e9f112
http://kernelnewbies.org/Linux_4.0 menunjukkan set perubahan penuh.
https://lkml.org/lkml/2015/6/26/511 itulah perubahan di USB untuk 4.2-rc1. Seperti yang Anda lihat, menanyakan 'apa yang telah berubah' mungkin bukan pertanyaan yang tepat, lebih berguna untuk menentukan apakah masalah telah dipecahkan untuk perangkat keras Anda dalam rilis terbaru.
sumber