连接到 USB 集线器时键盘/鼠标无法工作,但仅适用于 Fedora - 可在其他发行版上使用

连接到 USB 集线器时键盘/鼠标无法工作,但仅适用于 Fedora - 可在其他发行版上使用

作为记录,在openSUSE中也出现同样的问题,解决方法也是一样的。它在 Fedora 18(据我所知:我刚刚启动了 Live CD)和 openSUSE 12.3 中都得到了修复。

我在笔记本电脑上安装了 Fedora 17,并使用连接到集线器的键盘 (Logitech K120) 和鼠标(通用 USB 鼠标)。

然后我发现键盘和鼠标都不起作用。然而:

  • 它们确实可以在 Arch Linux、Windows、GRUB 和控制台上工作(它们只会在 X 启动时消失),无论它们是否连接到集线器。
  • 如果我将鼠标/键盘直接插入 USB 端口,它们就能正常工作。

这表明USB集线器和键盘/鼠标都没有损坏。

相关设备的 lsusb(分别为 USB 集线器、键盘和鼠标):

Bus 002 Device 004: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 002 Device 006: ID 046d:c31c Logitech, Inc. Keyboard K120 for Business
Bus 002 Device 005: ID 093a:2521 Pixart Imaging, Inc.   

有什么线索吗?


根据sch的评论进行编辑:

  • 键盘在控制台上工作。
  • xinput list仅当键盘/鼠标直接连接到 USB 端口时,键盘/鼠标才会显示在 上;不是当它们连接到集线器时。
  • /proc/interrupts当我移动鼠标时,即使光标没有移动,也会发生变化。
  • 当我插入鼠标/键盘时通过枢纽,X 日志中没有任何反应。当我直接插入它们时,我得到标准日志信息:

    [   407.686] (II) config/udev: Adding input device USB OPTICAL MOUSE (/dev/input/mouse1)
    [   407.686] (II) No input driver specified, ignoring this device.
    [   407.686] (II) This device may have been added with another device file.
    [   407.686] (II) config/udev: Adding input device USB OPTICAL MOUSE (/dev/input/event8)
    [   407.686] (**) USB OPTICAL MOUSE: Applying InputClass "evdev pointer catchall"
    [   407.686] (II) Using input driver 'evdev' for 'USB OPTICAL MOUSE'
    [   407.686]    Option "XkbRules" "evdev"
    [   407.686]    Option "XkbModel" "evdev"
    [   407.686]    Option "XkbLayout" "us"
    [   407.686]    Option "_source" "server/udev"
    [   407.686]    Option "name" "USB OPTICAL MOUSE"
    [   407.686]    Option "path" "/dev/input/event8"
    [   407.686]    Option "device" "/dev/input/event8"
    [   407.686]    Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1c.3/0000:04:00.0/usb3/3-2/3-2:1.0/input/input30/event8"
    [   407.686]    Option "driver" "evdev"
    [   407.686] (**) USB OPTICAL MOUSE: always reports core events
    [   407.686] (**) evdev: USB OPTICAL MOUSE: Device: "/dev/input/event8"
    [   407.686] (--) evdev: USB OPTICAL MOUSE: Vendor 0x93a Product 0x2521
    [   407.686] (--) evdev: USB OPTICAL MOUSE: Found 9 mouse buttons
    [   407.686] (--) evdev: USB OPTICAL MOUSE: Found scroll wheel(s)
    [   407.686] (--) evdev: USB OPTICAL MOUSE: Found relative axes
    [   407.686] (--) evdev: USB OPTICAL MOUSE: Found x and y relative axes
    [   407.686] (II) evdev: USB OPTICAL MOUSE: Configuring as mouse
    [   407.686] (II) evdev: USB OPTICAL MOUSE: Adding scrollwheel support
    [   407.686] (**) evdev: USB OPTICAL MOUSE: YAxisMapping: buttons 4 and 5
    [   407.686] (**) evdev: USB OPTICAL MOUSE: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    [   407.687] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1c.3/0000:04:00.0/usb3/3-2/3-2:1.0/input/input30/event8"
    [   407.687] (II) XINPUT: Adding extended input device "USB OPTICAL MOUSE"  (type: MOUSE, id 17)
    [   407.687] (II) evdev: USB OPTICAL MOUSE: initialized for relative axes.
    [   407.687] (**) USB OPTICAL MOUSE: (accel) keeping acceleration scheme 1
    [   407.687] (**) USB OPTICAL MOUSE: (accel) acceleration profile 0
    [   407.687] (**) USB OPTICAL MOUSE: (accel) acceleration factor: 2.000
    [   407.687] (**) USB OPTICAL MOUSE: (accel) acceleration threshold: 4
    

答案1

这是一个已知的错误在 Fedora 17 中,/lib/udev/rules.d/71-seat.rules有一条规则“小米720“设备(具有自己的 USB 集线器的 USB 监视器)使用相同的芯片组(因此具有相同的 USB ID)来执行此任务。

然而,因为我没有使用 Mimo 720,所以它配置错误。

解决方案是编辑/lib/udev/rules.d/71-seat.rules并注释该行

SUBSYSTEM=="usb", ATTR{idVendor}=="058f", ATTR{idProduct}=="6254", ENV{ID_AUTOSEAT}="1"

然后就可以完美运行了。事实上,在 Arch Linux 上检查,它使用不同的策略来检测该设备:

# Mimo 720, with integrated USB hub, displaylink graphics, and e2i
# touchscreen. This device carries no proper VID/PID in the USB hub,
# but it does carry good ID data in the graphics component, hence we
# check it from the parent. There's a bit of a race here however,
# given that the child devices might not exist yet at the time this
# rule is executed. To work around this we'll trigger the parent from
# the child if we notice that the parent wasn't recognized yet.

相关内容