Logs

USB 設備消息氾濫 dmesg(和控制台)

  • November 7, 2018

當 USB 滑鼠插入我的筆記型電腦時,dmesg 被以下消息淹沒:

usb 3-1: USB disconnect, device number 28
usb 3-1: new low-speed USB device number 29 using xhci_hcd
usb 3-1: New USB device found, idVendor=045e, idProduct=00cb
usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-1: Product: Microsoft USB Optical Mouse
usb 3-1: Manufacturer: PixArt
usb 3-1: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
input: PixArt Microsoft USB Optical Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/input/input39
hid-generic 0003:045E:00CB.001C: input: USB HID v1.11 Mouse [PixArt Microsoft USB Optical Mouse] on usb-0000:00:14.0-1/input0
usb 3-1: USB disconnect, device number 29
usb 3-1: new low-speed USB device number 30 using xhci_hcd
usb 3-1: New USB device found, idVendor=045e, idProduct=00cb
usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-1: Product: Microsoft USB Optical Mouse
usb 3-1: Manufacturer: PixArt
usb 3-1: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
input: PixArt Microsoft USB Optical Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/input/input40
hid-generic 0003:045E:00CB.001D: input: USB HID v1.11 Mouse [PixArt Microsoft USB Optical Mouse] on usb-0000:00:14.0-1/input0

看起來好像滑鼠不斷被移除然後重新發現。

當我登錄控制台(即 CTRL+ALT+F1)時,這些消息也會淹沒我的控制台。有沒有辦法解決這個問題,讓這些消息不會打擾我?

臨時解決方案(重啟後會重置):

(作為根)

sysctl -w kernel.printk="3 4 1 7"

以上內容的永久版本:

  • 在 中創建一個文件/etc/sysctl.d/,也許no_msgs.conf必須以 .conf 結尾)
  • 文件內容:
kernel.printk = 3 4 1 7
  • 以 root 身份執行:(使用上面使用的任何文件名)這將立即生效,並在每次重新啟動時再次設置。
sysctl -p /etc/sysctl.d/no_msgs.conf

參數為kernel.printk:(按順序,從左到右)

  • console_loglevel:比這更高優先級(更低的數字!)的消息將被列印到控制台
  • default_message_loglevel:沒有明確優先級的消息將使用此優先級列印
  • minimum_console_loglevel:console_loglevel 可以設置的最小(最高)值
  • default_console_loglevel:console_loglevel 的預設值

這些值會影響 printk() 列印或記錄錯誤消息時的行為。有關不同日誌級別的更多資訊,請參閱“man 2”系統日誌。

本質上,我們將值從預設值4降低到3,因此拒絕列印“警告( 4 )”類型的消息,只有更差的類型消息才允許列印到控制台。(3=錯誤,2=暴擊,1=警戒,0=緊急(哦哦!))

如果您發現3沒有停止消息,請嘗試2 4 1 7,但實際上,您應該查看是什麼讓您的滑鼠不斷重新連接。也許它沒有得到足夠的力量?嘗試將其插入電腦上的其他埠,或者更好地將其插入自供電集線器。設備不應該那樣振盪。

眾所周知,如果在 Linux上不總是輪詢PixArt OEM 滑鼠,它們會在執行級別 1 或 3 中每分鐘斷開/重新連接。內部緩衝區溢出,FW 崩潰,然後它們重新連接。驅動程序的預設行為usbhid只是等待中斷。

基礎知識: https ://github.com/sriemer/fix-linux-mouse

我現在已經將此滑鼠的更新檔送出到****linux-usb郵件列表:

https://marc.info/?l=linux-usb&m=154159427814212&w=2

核心引導選項 usbhid.quirks=0x045e:0x00cb:0x00000400HID_QUIRK_ALWAYS_POLL將為您啟用。

另一種選擇是啟動gpm服務。然後gpm是輪詢滑鼠,您可以在虛擬終端上實際使用它。

引用自:https://unix.stackexchange.com/questions/132266