Сенсорная панель не работает после приостановки ноутбука

14

Кажется, это общая проблема, но, попробовав все исправления, которые я нашел на форумах, я все еще в растерянности.

Технические характеристики:

  • компьютер: Asus k501LX-EB71
  • ОС: Ubuntu 14.04.3
  • ядро: 3.19.0-26-универсальный
  • сенсорная панель: сенсорная панель Elantech
  • драйвер: xserver-xorg-input-synaptics-lts-trusty (OR) xserver-xorg-input-synaptics-lts-vivid (не уверен, какой из них используется)

Что я пробовал: я могу запустить, sudo modprobe -r psmouseчтобы «выключить» тачпад, а затем sudo modprobe psmouseвключить его снова. Это отлично работает. Однако, когда я приостанавливаюсь, я не могу «оживить» сенсорную панель, даже если я ввожу эти команды.

Есть предположения?

ОБНОВИТЬ:

Я не наблюдаю эту проблему, если я впадаю в спящий режим вместо приостановки. Я не уверен, что делать с этой подсказкой ...

ТЕКУЩАЯ РЕШЕНИЕ:

Поскольку гибернация, кажется, не вызывает проблем, и у меня есть соответствующий объем подкачки памяти, я просто сплю в качестве действия по умолчанию для таких вещей, как закрытие крышки. Вот шаги, которые я выполнил, чтобы включить спящий режим . Я также изменил другие параметры питания по умолчанию, чтобы перейти в режим гибернации с помощью редактора dconf в org> gnome> settings-daemon> plugins> power

Росс Аллен
источник
Вы можете найти это полезным: ubuntuforums.org/showthread.php?t=2189117
Старейшина Гик
хммм ... спасибо за быстрый ответ, но я выполнил все шаги в этой теме без удачи. По какой-то причине я не могу восстановить тачпад sudo modprobe psmouseпосле приостановки. Просто ничего не происходит. Я не могу найти что-то неуместное в файлах журнала
Росс Аллен
Я бы посчитал ваш обходной путь ответом. Вы должны записать его так, чтобы он мог помочь другим, и включение ответа в ваш вопрос может затруднить его поиск.
Старейшина Гик

Ответы:

8

Эта ошибка сообщается в панели запуска: сенсорная панель Elantech перестает работать после приостановки . После того, как приостановить OP попыток # modprobe -r psmouseи # modprobe psmouseи он не работает. Но что, если psmouse был удален до приостановки и вставлен после приостановки?

Если это работает вручную, то вы можете автоматизировать, создав новый файл в /lib/systemd/system-sleep/каталоге, содержащем:

#!/bin/sh

case $1/$2 in
  pre/*)
    echo "Going to $2..."
    # Place your pre suspend commands here, or `exit 0` if no pre suspend action required
    modprobe -r psmouse
    ;;
  post/*)
    echo "Waking up from $2..."
    # Place your post suspend (resume) commands here, or `exit 0` if no post suspend action required
    sleep 2
    modprobe psmouse
    ;;
esac

Известно, что после приостановки модуль psmouse не может быть удален. Мы также знаем, что он может быть удален и вставлен до приостановки. Так что эта техника удаляет его перед приостановкой. После возобновления вставьте его и, надеюсь, ядро ​​не отклонит его.

Команда sleep 2из моих собственных проблем, когда systemd и kernel (через gnome или APM) спали и просыпались. Мне нужно было перенаправить звук pulseaudio обратно на телевизор из-за ошибки, появившейся в Ubuntu 16.04 / pulseaudio 8.0. Задержка в 2 секунды была необходима ядру и systemd для завершения пробуждения. До сих пор не выяснил двойной приостановки и двойного резюме еще ....

WinEunuuchs2Unix
источник
Я думаю, что было бы лучше использовать стандартную SUSPEND_MODULESфункцию pm-utilsдля этого linux.die.net/man/8/pm-suspend
cgogolin
Это решение не сработало для меня. Ubuntu 18.04 с «SYNA8004: 00 06CB: CD8B Touchpad», Lenovo X1 Carbon Gen 7. Я получаю быстрое поведение сенсорной панели после выхода из спящего режима.
SaTa
7

Было рекомендовано опубликовать мой обходной путь в качестве ответа:

Я обнаружил, что hibernate ( sudo pm-hibernate) не испытывал тех же проблем при перезапуске сенсорной панели, поэтому я просто установил все соответствующие параметры питания в спящий режим вместо приостановки. Это требует немного усилий, так как спящий режим отключен по умолчанию. Вот что должно произойти

Росс Аллен
источник
1
Осторожно, гибернация по умолчанию отключена, так как существует высокая вероятность повреждения жесткого диска. Мне пришлось дважды переустанавливать свою ОС после неудачного спящего режима. Отключил это снова сейчас.
crobar
1
Измените настройку сенсорной панели в вашем BIOS с ADVANCED на BASIC, это не имеет значения в отношении функциональности, и тачпад все еще работает, когда возобновляет работу из режима ожидания.
pst007x
3

Я имею дело с двумя простыми подходами к этой проблеме. Первый, который не всегда работает (как вы упомянули), просто перезапускает модуль мыши после действия приостановки.

sudo rmmod psmouse; sudo modprobe psmouse

Вот хорошее обсуждение того, как сделать это «автоматически»: как выполнить команду после возобновления из режима ожидания?

Альтернативный подход состоит в том, чтобы убить модуль перед приостановкой, избегая блокировки модуля после возобновления (что, очевидно, является причиной возникновения проблемы, как подчеркнул WinEunuuchs2Unix).

Для этого я использую простую командную строку, чтобы приостановить работу ноутбука, вместо того, чтобы просто закрывать крышку «вручную». Конечно, это совсем не фантастика, но работает, и это прямое решение. Нет времени, чтобы взломать участие.

sudo rmmod psmouse; sudo pm-suspend

И затем, после возобновления работы ноутбука, вы должны снова включить модуль, набрав:

sudo modprobe psmouse

Вы всегда можете взломать pm-suspendскрипт по умолчанию , но я не буду его рекомендовать. Проще и безопаснее генерировать эти специальные небольшие последовательности команд.

Наконец, простой и быстрый способ быстрого «убивания / приостановки» и «повторного включения» модуля мыши состоит в том, чтобы связать эти шаги с сочетаниями клавиш: Как я могу изменить действия клавиш на клавиатуре? (Как я могу создать пользовательские команды клавиатуры / сочетания клавиш?) .

Надеюсь, что это сработает, это сработает для меня, хотя действительно неудобно иметь дело с таким способом. У меня есть эта проблема в ноутбуках HP и Asus.

ро
источник
Это работает для меня, где еще не сделал- спасибо!
Даборосс
Ура! Рад, что это было полезно! ; D
Ро
3

Следующее решение работало для меня на моем Acer Predator Helios 300, работающем под Ubuntu 18.04 (5.0.0-36-generic), когда все остальное не

Проверьте, работает ли решение
Попробуйте выполнить следующую команду после выхода из режима ожидания, когда трекпад не работает /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid.
Если это заставляет ваш трекпад работать, выполните следующие шаги, чтобы создать автоматическое решение, которое будет запускаться каждый раз, когда вы просыпаетесь от приостановки.

Постоянное решение
1. Создайте /lib/systemd/system-sleep/touchpad
2. Откройте вышеуказанный файл и отредактируйте его, sudo vi /lib/systemd/system-sleep/touchpad
3. Сохраните следующее содержимое в файле:

#!/bin/sh

case $1 in
  post)
    /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid 
  ;;
esac
  1. Сделайте это исполняемым chmod +x /lib/systemd/system-sleep/touchpad

Это в основном перезапускает устройство i2c_hid после пробуждения из режима ожидания.

Предоставлено: /unix//a/526488/283735

nihal111
источник
Отличный ответ, это сработало для меня, спасибо. Модуль "psmouse" был не для меня, а "i2c_hid". Dell Inspiron У меня это было в dmesg: [24063.094911] psmouse serio1: elantech: elantech_send_cmd, запрос 0x02 не выполнен. [24063.094918] psmouse serio1: elantech: не удалось запросить возможности. [24064.645952] psmouse serio1: Не удалось включить мышь на isa0060 / serio1 [24065.383423] input: ImPS / 2 Logitech Wheel Mouse as / devices / platform / i8042 / serio1 / input / input38 [24240.449885] psmouse serio1: elantech: предполагается, что аппаратная версия 4 (с версией прошивки 0x4f5001)
Дэвид Робсон
1

Это сработало для меня:

  1. Загрузка в BIOS, при загрузке системы удерживайте F2 или ESC

  2. Измените настройку сенсорной панели в вашем BIOS с ADVANCED на BASIC (без разницы в функциональности)

Теперь тачпад должен все еще работать, когда возобновлен от приостановки.

pst007x
источник
0

У меня есть несколько ноутбуков Asus, мне пришлось отключить тачпад на всех них. Они вызывают проблемы с блокировкой и другие проблемы.

ChangosMuertos
источник
Не то, что я надеялся услышать, но я ценю ответ
Росс Аллен
это тачпад Elan. Это буквально заставляет меня использовать ctrl-alt-f1 / 2/3, чтобы измениться и вернуться обратно, чтобы разморозить его. Как только я его отключил, проблем нет. Как вы знаете, вы можете использовать его короткими очередями и использовать мой метод, упомянутый выше, чтобы выйти из заточения. Надеюсь, это поможет.
ChangosMuertos
0

Драйверы, которые плохо реагируют на приостановку, довольно распространены независимо от ОС. Я рад, что вы нашли обходной путь через спящий режим.

Поскольку приостановка не полностью отключается, а режим гибернации появляется, это может указывать на то, что водитель не очень хорошо реагирует на «1/2 срока службы» подвески, но вполне способен подняться во время цикла включения, который это то, что гибернация обеспечивает после пробуждения.

источник: http://manpages.ubuntu.com/manpages/trusty/man8/pm-action.8.html

Старейшина Гик
источник
Вы можете подключиться к процедурам пробуждения, чтобы перезапустить драйвер, может быть ... Очень похоже на перезагрузку сетевого менеджера Просто пока не понял, как это сделать сам. У меня это работало, чтобы перезапустить pulseaudio, но мне удалось сломать это 2 дня назад :(
WinEunuuchs2Unix
1
@ WinEunuuchs2Unix Мне бы очень хотелось это увидеть. пингуй меня, если разберешься.
Старейшина Гик
конечно Я, вероятно, сделаю одну из этих вещей «ответь на свой вопрос» примерно через шесть месяцев с такой скоростью уже 6 недель.
WinEunuuchs2Unix
1
Я отправил ответ, но, по какой-то странной причине, мне кажется, что я могу пинговать всех, кроме вас (старейшина Гика).
WinEunuuchs2Unix