ฉันต้องกำหนดค่าอะไรหากอุปกรณ์อินพุตถูกเชื่อมต่อผ่านสวิตช์ KVM


8

ฉันมีสวิตช์ KVM จากนายจ้างของฉัน (Aten CS782DP) ซึ่งทำงานได้ดีที่สุดเท่าที่ฉันจะบอกได้ อย่างไรก็ตามดูเหมือนว่าจะทำให้เกิดปัญหากับอุปกรณ์อินพุตของฉัน (Thinkpad USB Compact Keyboard กับ TrackPoint) บนทั้ง Ubuntu 16.04 และ 16.10 ฉันไม่สามารถคลิกกลางได้อีกต่อไปและฉันไม่สามารถเลื่อนในแนวตั้ง (ใช้ได้ในแนวนอน)

โดยเฉพาะนี่คือ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)]

นี่คือxinputลักษณะที่ปรากฏเมื่อเชื่อมต่อกับ KVM:

⎡ 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)]

เท่าที่ฉันเห็นนี่ก็ดูดียกเว้นการทำซ้ำของอุปกรณ์ตัวชี้ (IDs 9 และ 16) ฉันจะสมมติว่าสิ่งนี้เกี่ยวข้องกับ KVM ที่เป็นเหมือนฮับ USB และไม่สนใจการทำซ้ำในตอนนี้

ฉันลองเรียกใช้xinput testทั้งสองอุปกรณ์แล้วพบว่าอุปกรณ์แรกยอมรับการเคลื่อนไหวและคลิกซ้ายและขวา (ปุ่มเมาส์ 1 และ 3) ในขณะที่อุปกรณ์ที่สองใช้เลื่อนแนวนอนเท่านั้น (ปุ่ม 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

การกำหนดค่า TrackPoint เริ่มต้นใน Ubuntu ( /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

ดังนั้นตามกฎนี้อุปกรณ์ทั้งสองควรได้รับการกำหนดค่าเหมือนกันซึ่งก็คือการยอมรับการเคลื่อนไหวปุ่มทั้งสามและการเลื่อนทั้งสองแบบ อย่างไรก็ตามนี่ไม่ใช่กรณีดังที่แสดงไว้ด้านบน คีย์บอร์ดที่ต่อตรงทำงานได้อย่างไร้ที่ติ

ดังนั้นฉันหายไปฉันต้องทำอย่างไรเพื่อให้แป้นพิมพ์ภายนอกทำงานอย่างถูกต้องผ่านสวิตช์ KVM นี้


ฉันมีสวิตช์ Aten KVM แต่เป็นรุ่นอื่น ฉันไม่ได้มีปัญหาใด ๆ กับมัน อาจเป็นปัญหากับฮาร์ดแวร์หรือเฟิร์มแวร์บางตัวที่แก้ไขได้ยาก บางทีคุณสามารถลองใช้แป้นพิมพ์อื่น (ชื่อยี่ห้อและรุ่นอื่น ๆ )
sudodus

คำตอบ:


0

เชื่อหรือไม่ฉันได้แก้ไขมันแล้ว การแก้ปัญหาไม่ได้เฉพาะเจาะจงกับ Aten KVM หรือคีย์บอร์ด Thinkpad Compact และอาจช่วยในเรื่องทั่วไป "แป้นพิมพ์ของฉันไม่สามารถทำงานกับสวิตช์ KVM ได้อย่างถูกต้อง"

ดังนั้นความคิดคือ: เคอร์เนลไดรเวอร์พยายามเริ่มต้นอุปกรณ์เฉพาะ (เช่นแป้นพิมพ์) อย่างไรก็ตามสวิตช์ KVM มักจะให้ทางลัดที่สะดวกสบายสำหรับการสลับและคุณสมบัติอื่น ๆ ในกรณีของ Aten มีทางลัดสำหรับการดับเบิลคลิกบนล้อเลื่อน ตัวสวิตช์นั้นจำเป็นต้องกรองหน่วยคำสั่ง USB เพื่อให้สามารถทำงานได้ซึ่งอินทราเยอร์อย่างชัดเจนกับความสามารถของเคอร์เนลในการตั้งค่าบิตการกำหนดค่าบางอย่างบนอุปกรณ์ ในกรณีของฉันมันล้มเหลวในการกำหนดค่าฟังก์ชั่นการเลื่อน

โซลูตรอนนั้นง่าย: ปิดใช้งานโหมดที่ขัดแย้งกัน สำหรับ Aten เรียกว่า "โหมดการจำลองเมาส์" เมื่อปิดการใช้งานแล้วทุกอย่างเริ่มทำงานอย่างถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.