如何阻止由於(可能的)內核錯誤而產生的控制台垃圾郵件?

如何阻止由於(可能的)內核錯誤而產生的控制台垃圾郵件?

因此,我上週使用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

發行版應該保留舊的(較舊的)內核,啟動最後一個有效的內核。

報告錯誤!也許在為報告編譯數據後,卸載這個惡棍。這樣下一個就會取代它的位置。

嘗試下一個核心版本。啊,玩弄發行版的實驗性滾動版本的樂趣。

相關內容