因此,我上週使用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 連接——鍵盤和滑鼠——而且都正常運作。 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
發行版應該保留舊的(較舊的)內核,啟動最後一個有效的內核。
報告錯誤!也許在為報告編譯數據後,卸載這個惡棍。這樣下一個就會取代它的位置。
嘗試下一個核心版本。啊,玩弄發行版的實驗性滾動版本的樂趣。