そこで、先週、OpenSuSe Tumbleweedのローリングディストリビューションを でアップデートしましたzypper dist-upgrade
。アップデート前は問題なく動作していました。アップデート後、カーネルが4秒ごとにターミナルにスパムを出し始めました。これにより、ターミナルが使用不可、ユーザー入力またはコンソール出力が二分され、複数の行に分割されます。次にdmesg | grep | tail
スニペットを示します。
[ 350.602656] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
[ 354.682627] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
[ 358.758627] usb usb2-port2: Cannot enable. Maybe the USB cable is bad?
USB 経由で接続されているデバイスはキーボードとマウスの 2 つだけですが、どちらも正常に動作します。USB アドレスは変更される可能性があり、usb2-port2 に加えて、usb4-port2 または usb3-port2 になることもあります (これらの名前を lsusb 出力と関連付けるにはどうすればよいでしょうか。下部を参照してください)。
アップデート中に、カーネルが 4.20 から 5.5 に変更されました。GRUB の詳細オプションを使用して 4.20 カーネルで起動すると、これらのメッセージは表示されません。Windows 7 のインストールでも、USB デバイスやハブに関する問題は発生しません。
検索してみると、次のカーネルコミットが原因だと思われます:usb: ハブ再開時にウォームリセットポート要求を処理する. ウブントゥ解決済みこのコミットを元に戻すことで同じ問題が発生しましたが、OpenSuSeで言及されているのを見つけることができませんバグトラッカーまたはフォーラムで。
これらのメッセージを停止するにはどうすればよいでしょうか? 理想的な解決策は、迅速で、邪魔にならず、簡単に元に戻せることです。カーネルを手動でコンパイルしてインストールするのは最後の手段です。
これは同じブートでの lsusb -t の出力です。
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
|__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 5: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 5: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
sudo dmesg -n1
空の出力を返します。
lsusb -vv
誤ったリソースについては次のようになります(usb4-port2
このブート中)
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 9 Hub
bDeviceSubClass 0
bDeviceProtocol 3
bMaxPacketSize0 9
idVendor 0x1d6b Linux Foundation
idProduct 0x0003 3.0 root hub
bcdDevice 5.05
iManufacturer 3 Linux 5.5.6-1-default xhci-hcd
iProduct 2 (error)
iSerial 1 0000:00:14.0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x001f
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 9 Hub
bInterfaceSubClass 0
bInterfaceProtocol 0 Full speed (or root) hub
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 12
bMaxBurst 0
can't get hub descriptor, LIBUSB_ERROR_TIMEOUT (Resource temporarily unavailable)
can't get debug descriptor: Resource temporarily unavailable
答え1
ディストリビューションは古いカーネルを残しておくべきで、最後に動作したカーネルを起動します。
バグを報告してください。レポート用のデータをコンパイルした後、悪質なプログラムをアンインストールしてください。そうすれば、次のプログラムがその場所を占めるようになります。
次のカーネル リリースを試してください。ああ、ディストリビューションの実験的なローリング リリースをいじくり回すのは楽しいですね。