Сенсорная панель ThinkPad X250 Synaptics не обновляет положение при медленном движении. динамическая мертвая зона, зависание курсора, прыжки?

0

Устройство или драйвер с сенсорной панелью на ThinkPad X250 пропускает обновления положения при медленных движениях, приводящих к прыжкам, неточным движениям, временно застрявшему курсору. Это особенно раздражает для точных настроек курсора.

Симптомы:

  • При слишком медленном перемещении пальца курсор перестает двигаться и возобновляет работу после достаточного пройденного расстояния, что приводит к прыжку.
  • Это порог, а не проблема разрешения. Движение плавное выше порога.
  • Пока он работает, evtest показывает события для ABS_MT_POSITION_X, ABS_MT_POSITION_Y, ABS_X, ABS_Y, ABS_PRESSURE, ABS_MT_PRESSURE.
  • Пока устройство зависло, оно продолжает отправлять обновления, но только ABS_PRESSURE и ABS_MT_PRESSURE.

Количество прыжков зависит от настроек драйвера. Предлагаемое решение изменяет настройки драйвера, чтобы уменьшить переходы от этого нестабильного поведения за счет значительного уменьшения используемых разрешений и профилей ускорения. Это не относится к пороговому значению, но уменьшает симптом скачка.

Andrew.punnett связывает такой отчет об ошибке. Примеры видео из этого отчета об ошибке: https://www.youtube.com/watch?v=oTgaf8tTNEc , https://imgur.com/gVV7OqI

Система: Ubuntu 16.04, в настоящее время используется стандартная версия 4.4.0-92 x86_64. Xinput отображает устройство как «SynPS / 2 Synaptics TouchPad». Я наблюдал поведение на двух X250 и на T-??? ThinkPad.

Моя конфигурация драйвера настраивается через synclient и xinput. Я не нашел параметров, чтобы изменить это поведение. Смотрите вывод synclient, xinput ниже:

~$ synclient 
Parameter settings:
    LeftEdge                = 1545
    RightEdge               = 5399
    TopEdge                 = 1333
    BottomEdge              = 4521
    FingerLow               = 25
    FingerHigh              = 30
    MaxTapTime              = 180
    MaxTapMove              = 255
    MaxDoubleTapTime        = 100
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 0
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 116
    HorizScrollDelta        = 116
    VertEdgeScroll          = 0
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 1
    MinSpeed                = 1
    MaxSpeed                = 1
    AccelFactor             = 0.0343997
    TouchpadOff             = 0
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 2
    RBCornerButton          = 3
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 3
    TapButton3              = 2
    ClickFinger1            = 1
    ClickFinger2            = 3
    ClickFinger3            = 2
    CircularScrolling       = 1
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 10
    PalmMinZ                = 200
    CoastingSpeed           = 20
    CoastingFriction        = 50
    PressureMotionMinZ      = 30
    PressureMotionMaxZ      = 160
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    ResolutionDetect        = 1
    GrabEventDevice         = 0
    TapAndDragGesture       = 1
    AreaLeftEdge            = 2000
    AreaRightEdge           = 5000
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
    HorizHysteresis         = 0
    VertHysteresis          = 0
    ClickPad                = 1
    RightButtonAreaLeft     = 3472
    RightButtonAreaRight    = 0
    RightButtonAreaTop      = 4112
    RightButtonAreaBottom   = 0
    MiddleButtonAreaLeft    = 0
    MiddleButtonAreaRight   = 0
    MiddleButtonAreaTop     = 0
    MiddleButtonAreaBottom  = 0

~$ xinput list-props "SynPS/2 Synaptics TouchPad"
Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (139):   1
    Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (270): 1
    Device Accel Constant Deceleration (271):   1.000000
    Device Accel Adaptive Deceleration (272):   1.000000
    Device Accel Velocity Scaling (273):    1.000000
    Synaptics Edges (295):  1545, 5399, 1333, 4521
    Synaptics Finger (296): 25, 30, 0
    Synaptics Tap Time (297):   180
    Synaptics Tap Move (298):   255
    Synaptics Tap Durations (299):  180, 100, 100
    Synaptics ClickPad (300):   1
    Synaptics Middle Button Timeout (301):  0
    Synaptics Two-Finger Pressure (302):    282
    Synaptics Two-Finger Width (303):   7
    Synaptics Scrolling Distance (304): 116, 116
    Synaptics Edge Scrolling (305): 0, 0, 0
    Synaptics Two-Finger Scrolling (306):   1, 1
    Synaptics Move Speed (307): 1.000000, 1.000000, 0.034400, 0.000000
    Synaptics Off (308):    0
    Synaptics Locked Drags (309):   0
    Synaptics Locked Drags Timeout (310):   5000
    Synaptics Tap Action (311): 2, 3, 0, 0, 1, 3, 2
    Synaptics Click Action (312):   1, 3, 2
    Synaptics Circular Scrolling (313): 1
    Synaptics Circular Scrolling Distance (314):    0.100000
    Synaptics Circular Scrolling Trigger (315): 0
    Synaptics Circular Pad (316):   0
    Synaptics Palm Detection (317): 0
    Synaptics Palm Dimensions (318):    10, 200
    Synaptics Coasting Speed (319): 20.000000, 50.000000
    Synaptics Pressure Motion (320):    30, 160
    Synaptics Pressure Motion Factor (321): 1.000000, 1.000000
    Synaptics Resolution Detect (322):  1
    Synaptics Grab Event Device (323):  0
    Synaptics Gestures (324):   1
    Synaptics Capabilities (325):   1, 0, 0, 1, 1, 1, 1
    Synaptics Pad Resolution (326): 73, 53
    Synaptics Area (327):   2000, 5000, 0, 0
    Synaptics Soft Button Areas (328):  3472, 0, 4112, 0, 0, 0, 0, 0
    Synaptics Noise Cancellation (329): 0, 0
    Device Product ID (260):    2, 7
    Device Node (261):  "/dev/input/event5"
hellday
источник

Ответы:

0

Это похоже на ту же проблему, с которой я столкнулся на Thinkpad X230. Существует ошибку отчет об этой проблеме здесь , который наводит на мысль , что вы создаете файл , /etc/X11/xorg.conf.d/50-touchpad.confсодержащий следующие параметры:

Section "InputClass"
        Identifier "touchpad"
        MatchProduct "SynPS/2 Synaptics TouchPad"
        Driver "synaptics"
        # fix touchpad resolution
        Option "VertResolution" "100"
        Option "HorizResolution" "65"
        # disable synaptics driver pointer acceleration
        Option "MinSpeed" "1"
        Option "MaxSpeed" "1"
        # tweak the X-server pointer acceleration
        Option "AccelerationProfile" "2"
        Option "AdaptiveDeceleration" "16"
        Option "ConstantDeceleration" "16"
        Option "VelocityScale" "32"
EndSection

После настройки этот VelocityScaleпараметр значительно улучшил поведение моей сенсорной панели.

andrew.punnett
источник
Спасибо, этот обходной путь делает сенсорную панель более удобной. Это уменьшает скачки, значительно уменьшая ответ. Это, однако, не решает мою проблему. Кстати, все, кроме VertResolution, HorizResolution может быть установлено из synclient.
адский день
Ранее я использовал x230, который, казалось, имел сенсорную панель очень низкого разрешения. Это отличается от x250, который переходит от без движения к плавному движению. отчет об ошибке
hellday