web-dev-qa-db-ja.com

キーボード/マウスはUSBハブに接続されている場合は機能しませんが、Fedoraでのみ機能します-他のディストリビューションで機能します

記録のために、openSUSEでも同じ問題が発生し、解決策は同じです。これは、Fedora 18(私が知る限り:ライブCDを起動したばかりです)とopenSUSE12.3の両方で修正されています。

ラップトップにFedora17をインストールしました。ここでは、ハブに接続されたキーボード(Logitech K120)とマウス(汎用USBマウス)を使用しています。

すると、キーボードもマウスも機能しないことに気づきました。しかしながら:

  • それらは、ハブに接続されているかどうかに関係なく、Arch Linux、Windows、GRUB)およびコンソール(Xが起動したときにのみ停止します)で機能します。
  • マウス/キーボードをUSBポートに直接接続すると、正しく動作します。

これは、USBハブもキーボード/マウスも損傷していないことを示しています。

関連するデバイス(それぞれUSBハブ、キーボード、マウス)のlsusb:

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のコメントによる編集:

  • キーボードはコンソールで動作します。
  • キーボード/マウスは、USBポートに直接接続されている場合にのみ、xinput listに表示されます。 notハブに接続されている場合。
  • カーソルが動かないのに、マウスを動かすと/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
    
3
Renan

これは既知のバグです Fedora17で。/lib/udev/rules.d/71-seat.rulesには、このタスクに同じチップセット(つまり、同じUSB ID)を使用する " Mimo 72 "デバイス(独自のUSBハブを備えたUSBモニター)のルールがあります。

ただし、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.
2
Renan