雇用主(Aten CS782DP)からKVMスイッチを入手しました。ただし、Ubuntu 16.04と16.10の両方で、私の入力デバイス(TrackPointを備えたシンクパッドUSBコンパクトキーボード)で問題が発生しているようです。私はもう中クリックすることができず、垂直にスクロールすることもできません(水平方向に正常に動作します)。
特に、これはキーボードが直接接続されたときにxinput
出力がどのように見えるかです:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=10 [slave pointer (2)]
⎜ ↳ ATEN KVM V1.1.104 id=17 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=9 [slave keyboard (3)]
↳ ATEN KVM V1.1.104 id=16 [slave keyboard (3)]
これは、KVMを介して接続された場合のxinput
出力の外観です。
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=9 [slave pointer (2)]
⎜ ↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=16 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
↳ Lenovo ThinkPad Compact USB Keyboard with TrackPoint id=10 [slave keyboard (3)]
私が見る限り、これはポインタデバイスの奇妙な複製(ID 9および16)を除いて、うまく見えます。これはUSBハブに少し似ているKVMに関係していると仮定し、今のところこの重複を無視します。
両方のデバイスに対してxinput test
を実行してみましたが、最初のデバイスは動きと左クリックと右クリック(マウスボタン1と3)を受け入れ、2番目のデバイスは水平スクロール(ボタン6と7)のみを受け入れます。中央のボタン(ボタン2)も垂直スクロール(ボタン4と5)も受け入れません。
xinput list-props
の出力は、両方のデバイスで同一に見えます。
Device 'Lenovo ThinkPad Compact USB Keyboard with TrackPoint':
Device Enabled (152): 1
Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (284): 0
Device Accel Constant Deceleration (285): 1.000000
Device Accel Adaptive Deceleration (286): 1.000000
Device Accel Velocity Scaling (287): 10.000000
Device Product ID (272): 6127, 24647
Device Node (273): "/dev/input/event17"
Evdev Axis Inversion (288): 0, 0
Evdev Axes Swap (290): 0
Axis Labels (291): "Rel X" (162), "Rel Y" (163), "Rel Horiz Wheel" (282), "Rel Vert Wheel" (283)
Button Labels (292): "Button Left" (155), "Button Middle" (156), "Button Right" (157), "Button Wheel Up" (158), "Button Wheel Down" (159), "Button Horiz Wheel Left" (160), "Button Horiz Wheel Right" (161), "Button Side" (280), "Button Extra" (281), "Button Unknown" (275), "Button Unknown" (275), "Button Unknown" (275), "Button Unknown" (275)
Evdev Scrolling Distance (293): 1, 1, 1
Evdev Middle Button Emulation (294): 1
Evdev Middle Button Timeout (295): 50
Evdev Third Button Emulation (296): 0
Evdev Third Button Emulation Timeout (297): 1000
Evdev Third Button Emulation Button (298): 3
Evdev Third Button Emulation Threshold (299): 20
Evdev Wheel Emulation (300): 1
Evdev Wheel Emulation Axes (301): 6, 7, 4, 5
Evdev Wheel Emulation Inertia (302): 10
Evdev Wheel Emulation Timeout (303): 200
Evdev Wheel Emulation Button (304): 2
Evdev Drag Lock Buttons (305): 0
UbuntuのデフォルトのTrackPoint構成(/usr/share/X11/xorg.conf.d/11-evdev-trackpoint.conf
)は次のようになります。
Section "InputClass"
Identifier "trackpoint catchall"
MatchIsPointer "true"
MatchProduct "TrackPoint|DualPoint Stick"
MatchDevicePath "/dev/input/event*"
Option "Emulate3Buttons" "true"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection
したがって、このルールに従って、両方のデバイスは同じ構成を取得する必要があります。つまり、移動、3つのボタンすべて、および両方のタイプのスクロールを受け入れます。ただし、上記のようにそうではありません。直接接続されたキーボードは問題なく動作します。
それでは、このKVMスイッチを介して外部キーボードを適切に機能させるために何が必要ですか?
信じられないかもしれませんが、私はこれを解決しました。この解決策は、Aten KVMまたはThinkpad Compactキーボードに固有のものではなく、一般的な「キーボードがKVMスイッチで正しく動作しない」場合に役立ちます。
アイデアはこれです:カーネルドライバーは特定のデバイス(キーボードなど)を初期化しようとしています。ただし、KVMスイッチは通常、切り替えやその他の機能の便利なショートカットを提供します。 Atenの場合、スクロールホイールをダブルクリックするためのショートカットがあります。スイッチ自体は、これを機能させるためにUSBコマンドをフィルタリングする必要があります。これは、デバイスの特定の構成ビットを設定するカーネルの機能と明らかに干渉します。私の場合、スクロール機能の構成に失敗しました。
解決策は簡単です。競合モードを無効にします。 Atenでは、「マウスエミュレーションモード」と呼ばれます。それを無効にすると、すべてが正常に動作し始めました。