У меня есть Йога ThinkPad 14 с поддержкой Pen и Touch на экране. При возобновлении иногда сети не работают правильно. Я могу зафиксировать это с service network-manager restart
. То, что также всегда происходит, - то, что Pen и Touch больше не работают. Кажется, нет probems с, он - конфигурация с xinput и synclient. Таким образом, я предполагаю, что может быть некоторый сервис, который я могу перезапустить или так? Или некоторые другие фиксируют, чтобы заставить его работать снова, не перезапуская или выходя из системы. Возможно, у кого-то есть Идея. service wacom-inputattach restart
не работал, к сожалению.
Эта та же проблема неожиданно возникла для меня несколько месяцев назад на моей Йоге ThinkPad 14, под управлением Ubuntu 14.04: в то время как сенсорный экран/перо работал превосходный больше года, неважно, сколько циклов сна/резюме, они прекратили отвечать после сна/резюме когда-то около декабря 2016 (по-видимому, из-за изменения в обновленном ядре?). Перо и касание все еще хорошо работали на начальной начальной загрузке, включая экран-заставку. Различные предложения от сети не сделали , решают вопрос:
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
Вы могли записать сценарий для автоматического выполнения этого на резюме; я просто бросил его в сценарий оболочки для выполнения вручную при необходимости. Надежда это помогает кому-то
/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
Этот простой 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"
Вот решение для систем на базе systemd
(Ubuntu 16.10 и новее):
Узнайте, какое последовательное устройство распознается вашим сенсорным экраном 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…
для устройства, а затем коснувшись экрана, чтобы увидеть, генерирует ли оно какой-либо вывод. Устройство, которое делает это, является вашим устройством с сенсорным экраном.
Создайте файл /etc/systemd/system/restart-wacom-inputattach.service
с этим содержимым, указав свой собственный номер устройства вместо 4
в ttyS4.
:
[Единица измерения]
Описание=перезапустить службу wacom-inputattach
После=приостановить.цель
[Услуга]
Пользователь=корень
Тип=простой
ExecStart=/bin/systemctl --перезапуск без блокировки wacom-inputattach@ttyS4
Тайм-аутсек=0
Стандартный вывод = системный журнал
[Установить]
WantedBy=suspend.target
Включите новую службу с помощью:
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
услуги, чтобы сделать то же самое.