Xorg and Logitech V450 Cordless Mouse
這隻無線老鼠算起來有 7 個鍵(左、右、滾輪、滾輪左、滾輪右、滾輪上、滾輪下),但是 xorg.conf 怎麼設都只有原本的 1~5 個鍵,滾輪左右都沒辦法驅動。
後來試了新的 evdev driver,終於所有的鍵都偵測到了。
xorg.conf:
Section "InputDevice"
Identifier "USB Mouse"
Driver "evdev"
Option "CorePointer"
Option "Device" "/dev/input/event2"
Option "Protocol" "Auto"
EndSection
Xorg.0.log:
(**) USB Mouse-usb-0000:00:1d.0-2/input0: Core Pointer
(II) USB Mouse-usb-0000:00:1d.0-2/input0: Found 4 relative axes.
(II) USB Mouse-usb-0000:00:1d.0-2/input0: Configuring as pointer.
(**) USB Mouse-usb-0000:00:1d.0-2/input0: HWHEELRelativeAxisButtons: 6 7.
(**) USB Mouse-usb-0000:00:1d.0-2/input0: WHEELRelativeAxisButtons: 4 5.
但是這個問題其實沒有想像中簡單,因為根據 evdev(4)
Option "Device" "string"
Specifies the device note through which the device can be
accessed. At this time ONLY /dev/input/event<N>,
where <N> is an integer, are matched against this
this field. This option uses globbing. Please note
that use of this option is strongly discouraged.
因為 /dev/input/event<N>
會隨 usb 的插入順序而改變,所以並不是一個很好的介面來設定滑鼠。而使用 udev 萊特製 device name 也行不通,因為 evdev 不認得。所以要改用 evdev(4) 推薦使用的用 <map>Bits 的方法來設定,通常使用以下的設定就可以抓到滑鼠:
Section "InputDevice"
Identifier "mouse"
Driver "evdev"
Option "evBits" "+1-2"
Option "keyBits" "~272-287"
Option "relBits" "~0-2 ~6 ~8"
Option "Pass" "3"
...
EndSection
可是不知道為什麼只要一使用到 <map>Bits
來設定,每次啟動 X 的時候都會 block 在某個地方,只能用 ssh 進去把 X 砍掉。而使用 “Name” 的方法來設定也不行,因為這隻 V450 很奇怪,在 /proc/bus/input/devices
裡面會顯示兩個 “Logitech USB Receiver” 的節點,其中一個被顯示為 kbd 設備…。
I: Bus=0003 Vendor=046d Product=c518 Version=4203
N: Name="Logitech USB Receiver"
P: Phys=usb-0000:00:1d.0-2/input0
S: Sysfs=/class/input/input2
H: Handlers=mouse1 event2
B: EV=7
B: KEY=ffff0000 0 0 0 0 0 0 0 0
B: REL=143
I: Bus=0003 Vendor=046d Product=c518 Version=4203
N: Name="Logitech USB Receiver"
P: Phys=usb-0000:00:1d.0-2/input1
S: Sysfs=/class/input/input3
H: Handlers=kbd event3
B: EV=f
B: KEY=c0002 400 0 0 1 f80 78000 6639fa d84157ad 8e0000 0 0 0
B: REL=40
B: ABS=1 0
最後我還是暫時用 /dev/input/event2
來設定。
待補: References, xinput