Debian 업데이트 후 TrackPoint를 제어하기가 어렵습니다.

Debian 업데이트 후 TrackPoint를 제어하기가 어렵습니다.

나는 데비안에서 테스트 중이고 재부팅 후(내가 믿는 커널을 포함하여 여러 패키지 업데이트가 포함된 약 3주간의 가동 시간 이후), 얼마 전 미세 조정을 했습니다. 골퍼들이 푸시 스틱 마우스라고 부르는 것입니다. 포인터 위치가 매우 어려워지고 트랙 포인트가 중앙 위치로 돌아왔음에도 포인터가 여전히 움직이는 것처럼 느껴집니다. 포인팅 스틱을 사용하는 것은 더 이상 재미가 없습니다. 여러 단어를 선택하는 데 몇 초 밖에 걸리지 않습니다.

단순한 트랙포인트 성능 구성 설정은 아닌 것 같습니다. 트랙 포인트의 유용성을 향상시키기 위해 특정 임계값을 설정하거나 특정 스마트 알고리즘을 비활성화(또는 원하는 스마트 알고리즘을 활성화)할 수 있습니다.

이것은 IBM/Lenovo 외부 USB 키보드입니다. (ThinkPad 노트북은 아니지만, 아직 "트랙포인트" 태그가 없기 때문에 이 질문에 "thinkpad" 태그를 붙였습니다. 현재 평판으로는 키보드를 사용할 수 없습니다.) 생성됩니다).

내 xinput 버전:

$ xinput --version
xinput version 1.6.0
XI version on server: 2.2

장치의 소품은 다음과 같습니다.

$ xinput list-props 10
Device 'Synaptics Inc. Composite TouchPad / TrackPoint':
        Device Enabled (125):   0
        Coordinate Transformation Matrix (127): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (247):     1
        Device Accel Constant Deceleration (248):       2.500000
        Device Accel Adaptive Deceleration (249):       1.000000
        Device Accel Velocity Scaling (250):    12.500000
        Synaptics Edges (251):  1632, 5312, 1572, 4284
        Synaptics Finger (252): 25, 30, 256
        Synaptics Tap Time (253):       180
        Synaptics Tap Move (254):       221
        Synaptics Tap Durations (255):  180, 180, 100
        Synaptics ClickPad (256):       0
        Synaptics Tap FastTap (257):    0
        Synaptics Middle Button Timeout (258):  75
        Synaptics Two-Finger Pressure (259):    282
        Synaptics Two-Finger Width (260):       7
        Synaptics Scrolling Distance (261):     100, 100
        Synaptics Edge Scrolling (262): 1, 0, 0
        Synaptics Two-Finger Scrolling (263):   0, 0
        Synaptics Move Speed (264):     1.000000, 1.750000, 0.039809, 40.000000
        Synaptics Edge Motion Pressure (265):   30, 160
        Synaptics Edge Motion Speed (266):      1, 401
        Synaptics Edge Motion Always (267):     0
        Synaptics Off (268):    0
        Synaptics Locked Drags (269):   0
        Synaptics Locked Drags Timeout (270):   5000
        Synaptics Tap Action (271):     0, 0, 0, 0, 0, 0, 0
        Synaptics Click Action (272):   1, 1, 1
        Synaptics Circular Scrolling (273):     0
        Synaptics Circular Scrolling Distance (274):    0.100000
        Synaptics Circular Scrolling Trigger (275):     0
        Synaptics Circular Pad (276):   0
        Synaptics Palm Detection (277): 0
        Synaptics Palm Dimensions (278):        10, 200
        Synaptics Coasting Speed (279): 20.000000, 50.000000
        Synaptics Pressure Motion (280):        30, 160
        Synaptics Pressure Motion Factor (281): 1.000000, 1.000000
        Synaptics Grab Event Device (282):      1
        Synaptics Gestures (283):       1
        Synaptics Capabilities (284):   1, 1, 1, 1, 1, 1, 1
        Synaptics Pad Resolution (285): 1, 1
        Synaptics Area (286):   0, 0, 0, 0
        Synaptics Noise Cancellation (287):     25, 25
        Device Product ID (242):        1739, 9
        Device Node (243):      "/dev/input/event6"

고쳐 쓰다관련성이 있을 수 있는 장치가 2개 있다는 것을 잊어버렸습니다. 실제로는 이 장치가 시냅스 장치보다 더 관련성이 있어 보입니다.

$ xinput list-props 11
Device 'TPPS/2 IBM TrackPoint':
    Device Enabled (135):   1
    Coordinate Transformation Matrix (137): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (260):     0
    Device Accel Constant Deceleration (261):       1.000000
    Device Accel Adaptive Deceleration (262):       1.000000
    Device Accel Velocity Scaling (263):    10.000000
    Device Product ID (255):        2, 10
    Device Node (256):      "/dev/input/event9"
    Evdev Axis Inversion (302):     0, 0
    Evdev Axes Swap (304):  0
    Axis Labels (305):      "Rel X" (145), "Rel Y" (146)
    Button Labels (306):    "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142)
    Evdev Middle Button Emulation (307):    0
    Evdev Middle Button Timeout (308):      50
    Evdev Third Button Emulation (309):     0
    Evdev Third Button Emulation Timeout (310):     1000
    Evdev Third Button Emulation Button (311):      3
    Evdev Third Button Emulation Threshold (312):   20
    Evdev Wheel Emulation (313):    0
    Evdev Wheel Emulation Axes (314):       0, 0, 4, 5
    Evdev Wheel Emulation Inertia (315):    10
    Evdev Wheel Emulation Timeout (316):    200
    Evdev Wheel Emulation Button (317):     4
    Evdev Drag Lock Buttons (318):  0

어느 손잡이를 돌려야 하는지 아시나요?

고쳐 쓰다위의 속성을 동일한 데비안 테스트를 실행하는 다른 컴퓨터(TrackPoint가 제대로 작동하는 Lenovo 노트북)의 속성과 비교한 결과 동일했습니다. xinput 버전도 동일합니다. 따라서 xinput 버전은 물론 이러한 장치의 xinput 설정도 고려 사항에서 제외할 수 있을 것 같습니다. 하드웨어 문제인지 (결국) 다른 IBM USB 키보드에 손을 대어 확인해 보겠습니다...

[다음은 이 질문에 대한 편집 내용입니다.배리 그루빈(고마워요), 거절당했어요https://unix.stackexchange.com/users/2180/shawn-j-goff(고마워요, 친구). 나는 그것이 매우 유용하다고 생각했고 Sean의 거부로 인해 이 정보가 나와(지금까지) 다른 사람들에게 숨겨졌기 때문에 여기에 붙여넣었습니다.

추가 정보
나는 이 문제를 설명하는 공개 데비안 버그 보고서가 있다고 생각합니다.#682413이 문제는 다음과 관련된 것 같습니다.시냅틱스_usb커널 모듈. ~에 따르면시냅틱스_usb.c, 30행:

[…]터치스틱 지원은 아직 많이 테스트되지 않았습니다.

답변1

나는 똑같은 문제를 겪고 있지만 마침내 해결책을 찾은 것 같습니다.

xinput --set-prop 11 'Device Accel Constant Deceleration' 3

가까운 거리(예: 텍스트를 선택하려고 할 때)에서 터치 스틱/포인팅 스틱이 안정적인 상태를 유지할 수 있습니다. 원하는 값을 얻을 때까지 "3"을 위아래로 변경하고 2, 3, 4를 시도한 후 마침내 "3"으로 결정했습니다. 그런 다음 놀아요.

xset m 5 1

가속도를 조정합니다. "5"는 가속 승수이고, "1"은 가속이 시작되기 전에 커서를 이동하는 데 필요한 픽셀 수이며, "5"는 화면 주위를 빠르게 이동할 수 있는 좋은 방법을 제공합니다.

마지막으로 해야 할 일은 이러한 설정을 내 .xinitrc에 병합하는 것입니다.

xinput --set-prop 11 'Device Accel Constant Deceleration' 3 &
xset m 5 1 &
exec ck-launch-session startxfce4

이 모든 정보는 다음 웹사이트에서 찾았습니다.건축 위키피디아.

최종 참고 사항: 이 문제는 최근 추가된시냅틱스_usb커널 모듈에는 일반적인 추적점 기본값이 없으므로 문제는 새 커널 모듈에 의해 "노출"되지만 synaptics_usb 자체에는 문제가 되지 않습니다.

[편집하다:] 추가 정보 내 .xinitrc가 Debian Testing/LightDM/XFCE에서 작동하지 않습니다. 이유가 확실하지 않습니다. xorg.conf를 조정하기로 결정했습니다.

생성된 구성 파일:

$ cat /usr/share/X11/xorg.conf.d/50-synaptics_trackpoint.conf
Section "InputClass"
        Identifier "Synaptics TrackPoint"
        MatchProduct "Stick"
        # set the following to 1 1 0 respectively to disable acceleration.
        Option "AccelerationNumerator" "5"
        Option "AccelerationDenominator" "1"
        Option "AccelerationThreshold" "1"
        # linear deceleration (mouse speed reduction)
        Option "ConstantDeceleration" "2"
        # some curved deceleration
        Option "AdaptiveDeceleration" "1"
EndSection

다시 시작했는데 여전히 주사위가 없습니다. XFCE가 Xorg 구성을 재정의한 것을 발견하여 제거했습니다.

$ rm ~/.config/xfce4/xfconf/xfce-perchannel-xml/pointers.xml

다시 시작하고 예상대로 작동했습니다.

내 문제 해결 참고 사항 중 일부:

# Get the current acceleration values.
xinput --get-feedbacks 11

# Get the current deceleration values.
xinput --list-props 11 | grep Deceleration

# What does Xorg know about this?
grep -i stick /var/log/Xorg.0.log

# Set acceleration.
xinput --set-ptr-feedback 11 1 5 1

# Set deceleration.
xinput --set-prop 11 'Device Accel Constant Deceleration' 2

더 많은 참고자료

Xorg 포인터 가속 위키 xorg.conf 매뉴얼 페이지

답변2

Trackpoint에는 synaptics_usb 드라이버에 몇 가지 문제가 있습니다. 여기에 언급된 조정에도 불구하고 여전히 골치 아픈 문제입니다. 패치 사용 가능http://thread.gmane.org/gmane.linux.kernel.input/31935아직 테스트하지는 않았지만.

내가 찾은 가장 빠른 해결책은 usbhid 드라이버로 돌아가는 것이었습니다. 불행하게도 Synaptics 장치는 장치 경합을 피하기 위해 기본적으로 숨겨진 기능에 의해 블랙리스트에 추가(무시)됩니다. 다행스럽게도 적어도 최근 커널에는 USB ID와 특수 플래그를 hid-quirks에 전달하여 이를 무시할 수 있는 방법이 있습니다.

먼저 USB 장치 정보를 수집하십시오.

$ lsusb
...
Bus 001 Device 008: ID 06cb:0009 Synaptics, Inc. Composite TouchPad and TrackPoint

usbhid가 모듈로 로드되면(lsmod | grep usbhid) 다음이 생성됩니다.

/etc/modprobe.d/usbhid.conf:
  options usbhid quirks=0x06cb:0x0009:0x40000000 # 0x4 is to unignore
  blacklist synaptics_usb  # Prevent synaptics_usb from being loaded

그런 다음 다음을 통해 테스트할 수 있습니다.

$ sudo rmmod synaptics_usb 
$ sudo rmmod usbhid  (keeping in mind your usb keyboard might stop working here)
$ sudo modprobe usbhid

내 배포판처럼 usbhid가 커널로 컴파일되면 커널 부팅 매개변수에 추가해야 합니다. 제 경우에는(CentOS 7) 다음을 수행했습니다.

 /etc/default/grub:
  GRUB_CMDLINE_LINUX="[...] usbhid.quirks=0x06cb:0x0009:0x40000000"

 $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

 /etc/modprobe.d/synaptics_usb.conf:
  blacklist synaptics_usb

그런 다음 다시 시작하세요! 이제 USBhid가 트랙포인트를 인식해야 합니다.

관련 정보