(아마도) 커널 버그로 인한 콘솔 스팸을 막는 방법은 무엇입니까?

(아마도) 커널 버그로 인한 콘솔 스팸을 막는 방법은 무엇입니까?

그래서 지난주에 롤링 배포판 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를 통해 두 개의 장치(키보드와 마우스)만 연결되었으며 둘 다 제대로 작동합니다. 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

배포판은 오래된 커널을 그대로 두고 작동했던 마지막 커널을 부팅해야 합니다.

버그를 신고하세요! 아마도 보고서에 대한 데이터를 컴파일한 후 악성 프로그램을 제거하십시오. 그렇게 하면 다음 사람이 그 자리를 차지할 것입니다.

다음 커널 릴리스를 사용해 보세요. 아, 배포판의 실험적이고 롤링적인 릴리스를 가지고 장난을 치는 즐거움이군요.

관련 정보