Перезапустите Сенсорный экран после резюме

У меня есть Йога ThinkPad 14 с поддержкой Pen и Touch на экране. При возобновлении иногда сети не работают правильно. Я могу зафиксировать это с service network-manager restart. То, что также всегда происходит, - то, что Pen и Touch больше не работают. Кажется, нет probems с, он - конфигурация с xinput и synclient. Таким образом, я предполагаю, что может быть некоторый сервис, который я могу перезапустить или так? Или некоторые другие фиксируют, чтобы заставить его работать снова, не перезапуская или выходя из системы. Возможно, у кого-то есть Идея. service wacom-inputattach restart не работал, к сожалению.

2
задан 27 March 2017 в 15:08

4 ответа

Эта та же проблема неожиданно возникла для меня несколько месяцев назад на моей Йоге ThinkPad 14, под управлением Ubuntu 14.04: в то время как сенсорный экран/перо работал превосходный больше года, неважно, сколько циклов сна/резюме, они прекратили отвечать после сна/резюме когда-то около декабря 2016 (по-видимому, из-за изменения в обновленном ядре?). Перо и касание все еще хорошо работали на начальной начальной загрузке, включая экран-заставку. Различные предложения от сети не сделали , решают вопрос:

  • Высокий звук + Ctrl + F1 / Высокий звук + Ctrl + F6 не работал
  • sudo modprobe hid_multitouch, не работал
  • xinput disable/enable (touchscreen ID), не работал
  • , я даже не попробовал обновление микропрограммы, поскольку перо/касание очевидно все еще функционировало на новом перезапуске

Наконец, проложенный под землей глубоко в некоторых ссылках, которые привели к http://linuxwacom.sourceforge.net/wiki/index.php/Input-wacom , я нашел решение, которое кажется простым задним числом: перезагрузка wacom и wacom_w8001 модулей

sudo modprobe -r wacom
sudo modprobe -r wacom_w8001
sudo modprobe wacom
sudo modprobe wacom_w8001

Вы могли записать сценарий для автоматического выполнения этого на резюме; я просто бросил его в сценарий оболочки для выполнения вручную при необходимости. Надежда это помогает кому-то

4
ответ дан 2 December 2019 в 01:56

/usr/sbin/rtcwake -m freeze -s 1 - добивается цели для меня!

Благодаря: (https://forums.lenovo.com/t5/Other-Linux-Discussions/X1Y3-Touchscreen-not-working-after-resume-on-Linux/td-p/4021200)

Можно сделать сервис, который запускает скрипт на системном резюме.

Создайте файл в /etc/systemd/system/: например. wake_hack.service:

[Unit]
Description=Wakeup
After=suspend.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/rtcwake -m freeze -s 1

[Install]
WantedBy=suspend.target

включите стандартным способом: (как корень)

systemctl enable wake_hack.service

1
ответ дан 2 December 2019 в 01:56

Этот простой bash-скрипт для перезагрузки модуля atmel_mxt_ts у меня работает:

echo "Running rmmod and modprobe...\n"
rmmod atmel_mxt_ts
modprobe atmel_mxt_ts
echo "Mouse pad / touchscreen should be working again? ;-)\n"
-2
ответ дан 27 September 2020 в 21:28

Вот решение для систем на базе systemd (Ubuntu 16.10 и новее):

Инструкции

  1. Узнайте, какое последовательное устройство распознается вашим сенсорным экраном Wacom. Для этого запустите sudo cat /proc/tty/driver/serial | grep 16550A и посмотрите на первое число в строке вывода. Например, если вывод:

    4: uart:NS16550A port:00000200 irq:5 tx:19 rx:411732 RTS|DTR
    

    тогда ваш планшет Wacom — /dev/ttyS4. Если вы видите несколько строк, протестируйте все соответствующие устройства одно за другим, выполнив sudo inputattach --dump /dev/ttyS… для устройства, а затем коснувшись экрана, чтобы увидеть, генерирует ли оно какой-либо вывод. Устройство, которое делает это, является вашим устройством с сенсорным экраном.

  2. Создайте файл /etc/systemd/system/restart-wacom-inputattach.service с этим содержимым, указав свой собственный номер устройства вместо 4 в ttyS4. :

    [Единица измерения]
    Описание=перезапустить службу wacom-inputattach
    После=приостановить.цель
    
    [Услуга]
    Пользователь=корень
    Тип=простой
    ExecStart=/bin/systemctl --перезапуск без блокировки wacom-inputattach@ttyS4
    Тайм-аутсек=0
    Стандартный вывод = системный журнал
    
    [Установить]
    WantedBy=suspend.target
    
  3. Включите новую службу с помощью:

    sudo systemctl enable /etc/systemd/system/restart-wacom-inputattach.service
    

Пояснения и подробности

  • Проблема перезапуска сенсорного экрана Wacom повторялась в нескольких версиях Ubuntu. Любой отчет до Ubuntu 16.10 относится к системе pm-utils и решениям (например, здесь) и не может быть применен к системе на основе systemd, которая у нас есть сейчас. Приведенное выше решение предназначено для систем на основе systemd.

  • Ubuntu поставляется со службой /lib/systemd/system/wacom-inputattach@.service, предоставляемой пакетом xserver-xorg-input-wacom. Проблема в том, что он не переживает цикл приостановки и возобновления работы. Наше решение состоит в том, чтобы создать другую службу, которая будет перезапускать ее всякий раз, когда система выходит из режима ожидания, , как показано здесь.

  • Службы, имеющие в своем имени @, могут быть запущены с параметром, который мы делаем здесь, используя серийное имя устройства сенсорного экрана. В большинстве систем это имя устройства остается постоянным между перезагрузками и после возобновления работы, но если это не так, вам потребуется более сложное решение, подобное этому .

  • В диагностических целях проверьте выходные данные своей пользовательской службы в journalctl, чтобы убедиться, что она действительно что-то делает:

    journalctl -u restart-wacom-inputattach.service
    
  • Наша настраиваемая служба не выполняет длительную команду, а просто перезапускает другую службу (которая, в свою очередь, запускает длительную команду). Благодаря этому вы можете запланировать запуск других служб после их завершения. Это полезно, например, для калибровки сенсорного экрана после возобновления работы, например, для использования в настройке с двумя мониторами — см. мой другой ответ .

  • Вы часто будете видеть предложение выполнить sudo inputattach --daemon -w8001 /dev/ttyS4 (или подобное), чтобы перезагрузить сенсорный экран. Это работает, когда делается в терминале, но по неизвестным мне причинам не работает, когда делается в сервисе systemd, хотя он выдает тот же результат в dmesg. К счастью, команда isdv4-serial-inputattach, используемая в службе wacom-inputattach@.service, может использоваться внутри systemd услуги, чтобы сделать то же самое.

0
ответ дан 12 October 2020 в 00:05

Другие вопросы по тегам:

Похожие вопросы: