web-dev-qa-db-ja.com

タッチパッドの電源管理の問題、「スティッキーカーソル」、入力検出遅延(自動サスペンド)

Acer aspire v3 572g、すべてのディストリビューション、および「新しい」リリースでこの問題が発生しています(ubuntu 10.04ltsでは問題は発生しません)。タッチパッドは起動後は完全に機能しますが、一部の使用後(ほとんど使用しないと機能し続ける場合)はタッチパッドが省エネルギーモードになったようです。数秒間使用しないと、0.5秒の遅延が発生します。検出した最初の入力。問題は、nvidia独自のドライバーまたはオープンソースドライバーのどちらを使用していても、synapticsドライバーの有無にかかわらず、xserver-xorg-input-libinputをアンインストールし、synapticsを使用していても発生します(キーボードは機能しなくなりますが、問題は解決しません)。ここにUbuntu 19.10からのxinputとsynclientの出力を貼り付けていますが、これらが問題と関係があるかどうかはわかりません。

xinputリスト

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SYN1B7E:01 06CB:2970 Touchpad             id=12   [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)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Video Bus                                 id=10   [slave  keyboard (3)]
    ↳ HD WebCam: HD WebCam                      id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ↳ Acer WMI hotkeys                          id=14   [slave  keyboard (3)]

xinput --list-props "12"

Device 'SYN1B7E:01 06CB:2970 Touchpad':
    Device Enabled (197):   1
    Coordinate Transformation Matrix (199): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (326): 1
    Device Accel Constant Deceleration (327):   2.500000
    Device Accel Adaptive Deceleration (328):   1.000000
    Device Accel Velocity Scaling (329):    12.640978
    Synaptics Edges (330):  49, 1187, 48, 850
    Synaptics Finger (331): 25, 30, 0
    Synaptics Tap Time (332):   180
    Synaptics Tap Move (333):   67
    Synaptics Tap Durations (334):  180, 180, 100
    Synaptics ClickPad (335):   1
    Synaptics Middle Button Timeout (336):  0
    Synaptics Two-Finger Pressure (337):    282
    Synaptics Two-Finger Width (338):   7
    Synaptics Scrolling Distance (339): 30, 30
    Synaptics Edge Scrolling (340): 0, 0, 0
    Synaptics Two-Finger Scrolling (341):   1, 1
    Synaptics Move Speed (342): 1.000000, 1.750000, 0.130976, 0.000000
    Synaptics Off (343):    0
    Synaptics Locked Drags (344):   0
    Synaptics Locked Drags Timeout (345):   5000
    Synaptics Tap Action (346): 2, 3, 0, 0, 1, 3, 0
    Synaptics Click Action (347):   1, 3, 0
    Synaptics Circular Scrolling (348): 0
    Synaptics Circular Scrolling Distance (349):    0.100000
    Synaptics Circular Scrolling Trigger (350): 0
    Synaptics Circular Pad (351):   0
    Synaptics Palm Detection (352): 0
    Synaptics Palm Dimensions (353):    10, 200
    Synaptics Coasting Speed (354): 20.000000, 50.000000
    Synaptics Pressure Motion (355):    30, 160
    Synaptics Pressure Motion Factor (356): 1.000000, 1.000000
    Synaptics Resolution Detect (357):  1
    Synaptics Grab Event Device (358):  0
    Synaptics Gestures (359):   1
    Synaptics Capabilities (360):   1, 0, 0, 1, 1, 0, 0
    Synaptics Pad Resolution (361): 12, 12
    Synaptics Area (362):   0, 0, 0, 0
    Synaptics Soft Button Areas (363):  618, 0, 736, 0, 0, 0, 0, 0
    Synaptics Noise Cancellation (364): 7, 7
    Device Product ID (322):    1739, 10608
    Device Node (321):  "/dev/input/event6"

synclient -l

Parameter settings:
    LeftEdge                = 49
    RightEdge               = 1187
    TopEdge                 = 48
    BottomEdge              = 850
    FingerLow               = 25
    FingerHigh              = 30
    MaxTapTime              = 180
    MaxTapMove              = 67
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 0
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 30
    HorizScrollDelta        = 30
    VertEdgeScroll          = 0
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 1
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.130976
    TouchpadOff             = 0
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 2
    RBCornerButton          = 3
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 3
    TapButton3              = 0
    ClickFinger1            = 1
    ClickFinger2            = 3
    ClickFinger3            = 0
    CircularScrolling       = 0
    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            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
    HorizHysteresis         = 7
    VertHysteresis          = 7
    ClickPad                = 1
    RightButtonAreaLeft     = 618
    RightButtonAreaRight    = 0
    RightButtonAreaTop      = 736
    RightButtonAreaBottom   = 0
    MiddleButtonAreaLeft    = 0
    MiddleButtonAreaRight   = 0
    MiddleButtonAreaTop     = 0
    MiddleButtonAreaBottom  = 0

電源管理の問題である可能性があります。このリンクの手順を実行しようとしましたが、ここで何をしているのか本当にわかりません: https://wiki.ubuntu.com/DebuggingTouchpadDetection

任意の提案のために事前にThx。

1
Killdashnein TV

私は私の問題の解決策を見つけました:

ここで提案されているように https://wiki.ubuntu.com/DebuggingTouchpadDetection ルートとして次のように実行して、タッチパッドの電源管理を無効にしようとしました

_echo 'on' > '/path/to/device/power/control'
_

しかし、これは_/proc/bus/input/devices_で記述されたデバイスパスを使用すると機能しませんでした。

そこで、powertopをインストールし、使用する正しいデバイスとパスを見つけることができました:Runtime PM for I2C Adapter i2c-0 (Synopsys DesignWare I2C adapter);

コマンドpowertopはrootとして実行され、このデバイスの自動サスペンドを無効にします。

_echo 'on' > '/sys/bus/i2c/devices/i2c-0/device/power/control'
_

これは確かに問題を解決します!私が今見逃している唯一のものは、起動時にこれを実行する方法です。 (/etc/rc.localがないため)

(編集)

systemdを使用するシステムで起動時に回避策を実行するには、以下を含む_/etc/systemd/system/disable-touchpad-pm.service_を作成します。

_[Unit]
Description=disables Acer aspire v3 572g touchpad PM to work around input delays

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo on > /sys/bus/i2c/devices/i2c-0/device/power/control"

[Install]
WantedBy=multi-user.target
_

次にターミナルで実行します:

_Sudo systemctl daemon-reload && Sudo systemctl enable disable-touchpad-pm
_
2
Killdashnein TV