Есть ли способ "перезапустить" драйвер сенсорной панели?

Я использую Ubuntu 14.04 на ноутбуке, обычно с подключенными внешней USB-мышью, клавиатурой и экраном. Иногда, однако, я отключаю их все, перемещаю ноутбук и продолжаю использовать его со встроенной клавиатурой, экраном и тачпадом.

В случайные моменты времени случается так, что тачпад перестает работать (но если я подключаю usb-мышь, usb-мышь работает). Хотя это случается очень редко, когда это происходит, это вызывает большое раздражение, так как я вынужден перезагружаться, если мне нужно, чтобы тачпад снова заработал.

Есть ли какой-нибудь обходной путь, который я могу попробовать, например, убить какой-нибудь процесс, который автоматически перезапустится, или какую-нибудь команду, которая заставит драйвер сенсорной панели перезапускаться или обновляться или что-то в этом роде? Что-нибудь, что может "разбудить" сенсорную панель без необходимости перезагрузки?

Я нашел способ сделать это:

Сначала откройте терминал и распечатайте все устройства ввода, чтобы найти нужный идентификатор для устройства ввода, которое вы хотите отключить. В терминале введите:

xinput --list

Далее: Обратите внимание, где написано id= X в одном длинном столбце для каждого устройства ввода. Вы хотите найти идентификатор устройства, соответствующий устройству ввода, которое вы хотите отключить (возможно, что-то похожее на "сенсорную панель"). Затем замените X в следующей команде на идентификационный номер, представляющий устройство ввода, которое вы хотите отключить:

xinput disable X

Примечание: Если вы не уверены, какой идентификатор устройства следует использовать для отключения сенсорной панели, вы можете узнать это, протестировав случайные идентификаторы и проверив, работает ли ваш коврик для мыши по-прежнему. Убедитесь, что вы НЕ ДЕЛАЕТЕ НИЧЕГО ВАЖНОГО. Сохраните всю свою работу и будьте готовы перезагрузить компьютер, если вы сделаете что-то вроде отключения клавиатуры. (У вас могут возникнуть проблемы при попытке включить его снова, если вы не можете ввести текст в терминал.

Затем вам нужно будет запустить эту последнюю строку (спасибо, что поймали этого Арка Стэнтона!)

xinput enable X

Причина: Мне отчаянно нужен был ответ на эту проблему, потому что проблемы, с которыми я сталкивался с моей сенсорной панелью, делали невозможным выполнение любой работы. Внезапно, в какой-то случайный момент при использовании моего ноутбука, по-видимому, без всякой причины, моя сенсорная панель переходит в какой-то "специальный режим". Простое перемещение одного пальца по моей сенсорной панели привело бы к прокрутке экрана вместо фактического перемещения курсора мыши по экрану, поэтому было невозможно заставить мышь навести курсор на что-либо в broswer без значительных усилий по координации для учета прокрутки экрана и неподвижной мыши. Я хотел найти способ, НЕ ПЕРЕЗАГРУЖАЯ НОУТБУК, сбросить тачпад. С положительной стороны, сброс сенсорной панели с помощью описанного выше метода фактически устраняет мою проблему.

Обновление: Чтобы сделать сброс настроек сенсорной панели еще проще, я сделал горячую клавишу для перечисленных выше команд. Когда моя сенсорная панель выходит из строя, я просто нажимаю комбинацию клавиш ctrl + super + r, и она выполняет сброс за меня. Быстро и легко.

Вот как это делается:

-Создайте файл в вашем домашнем каталоге и назовите его примерно так "touchpad-reset.sh ".

-Внутри этого файла введите две из трех (последних двух) предыдущих команд, перечисленных выше, за исключением того, что вместо использования идентификационного номера X для устройства, поскольку он может быть изменен с добавлением периферийных устройств (возможно??) вы можете использовать это вместо этого:

Вот вывод с моего компьютера внутри терминала с использованием этой команды:

xinput --list

Результат:

Virtual core pointer                        id=2    [master pointer  (3)]⎜      ↳ Virtual core XTEST pointer                 id=4    [slave  pointer  (2)]⎜      ↳ Genius 2.4G Wireless Mouse                 id=10   [slave  pointer  (2)]⎜      ↳ MSFT0001:00 06CB:75BD UNKNOWN              id=13   [slave  pointer  (2)]⎜      ↳ ELAN Touchscreen                           id=12   [slave  pointer  (2)]⎜ 

-Теперь, что вы делаете, вы заменяете X (который раньше был идентификатором) на xinput disable X и xinput enable X именем, соответствующим этому идентификатору, заключенным в одинарные кавычки. Например, из приведенного выше, если вы хотите сделать это для id = 13, моего устройства с сенсорной панелью, вы бы использовали:

xinput disable 'MSFT0001:00 06CB:75BD UNKNOWN'xinput enable 'MSFT0001:00 06CB:75BD UNKNOWN'

- Итак, теперь вы отключаете по имени, а не по идентификационному номеру, где идентификатор может измениться со временем, и тогда вы будете отключать и включать какое-то другое устройство.

Наконец, вам нужно предоставить разрешения, чтобы сделать этот файл исполняемым; запустите эту команду с вашим рабочим каталогом в терминале в качестве домашнего каталога (где вы создали файл).:

chmod +x your_script_name.sh

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

  1. Нажмите супер-клавишу (клавиша Windows на ПК) на клавиатуре, чтобы вызвать боковую панель unity. Введите "системные настройки" и нажмите клавишу enter.
  2. Найдите опцию "Клавиатура" под надписью "Оборудование" и нажмите на нее.
  3. Выберите вкладку "Ярлыки".
  4. В левом окне выберите пункт "Пользовательские ярлыки".
  5. Нажмите на кнопку + рядом с центром внизу.
  6. Должно появиться окно с запросом имени описания и команды для ввода.
  7. Сделайте название чем-то вроде "сброс сенсорной панели".
  8. Используйте эту команду: gnome-terminal -x ./name_of_your_script.sh
  9. Нажмите на кнопку "Применить".
  10. Теперь вы должны увидеть свой ярлык в списке, а в крайнем правом углу должно быть написано "Отключено" или какой-то другой мусор. Нажмите на этот текст и будьте готовы создать какую-то комбинацию клавиш, например, ctrl +super +r.
  11. Как только вы наберете эту комбинацию клавиш, все готово.

Поздравляю! Повеселиться.

Чтобы перезапустить драйвер сенсорной панели ноутбука:

Откройте терминал, нажав Ctrl+Alt+Tи выполните следующую команду

sudo  modprobe -r psmouse

затем

sudo modprobe psmouse

Я нашел решение здесь и есть также решение для usb мышь

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

ОБНОВЛЕНИЕ: (Примечание: ссылка ниже сломана, решение приведено выше)С момента публикации этого "решения" я опубликовал комментарий, который, по-видимому, соответствовал потребностям пользователя. Только сейчас узнав, что комментарии остаются только временно и автоматически удаляются, я перепечатываю содержание полезного комментария ниже, чтобы оно могло быть сохранено для других:

Я делился "решением", которое сработало для меня. Сегодня мне пришло в голову поискать в Google решения, более подходящие к вашему первоначальному вопросу, и я нашел следующую ссылку. Это не то, что я лично счел бы "удобным", но это могло бы, по крайней мере, быть более элегантным, если сделать из него сценарий. Я нашел это (см. Ниже) – gyropyge 25 сентября в 20:06

Нажмите Alt+F2 и введите gksudo modprobe -r psmouse Введите пароль, нажмите Enter, а затем нажмите Alt+F2 еще раз для ввода следующего gksudo modprobe psmouse а затем нажмите Enter

Если у вас есть сенсорная панель synaptics :

synclient TouchpadOff=0

Если вы не знаете, какой модуль использует ваша сенсорная панель, вы можете выяснить это, немного покопавшись

grep -iA2 touchpad /proc/bus/input/devices

для меня это возвращение

N: Name="Elan Touchpad"P: Phys=S: Sysfs=/devices/platform/80860F41:03/i2c-11/i2c-ELAN0100:00/input/input10

затем посмотрите, какие модули ядра доступны в этой категории:

ls $(find /lib/modules/$(uname -r) -type d -name mouse)

который для меня возвращает

appletouch.ko  bcm5974.ko  cyapatp.ko  elan_i2c.ko  gpio_mouse.ko  psmouse.ko  sermouse.ko  synaptics_i2c.ko  synaptics_usb.ko  vsxxxaa.ko

Перекрестная ссылка на два - в моем случае это выглядит так, как будто модуль для моей сенсорной панели elan_i2c.ko

Редактировать: Недавно я выяснил, как надежно получить имя используемого драйвера с помощью запутанной команды, которую тердон хорошо упростил для меня

grep -hriPo 'DRIVER=\K.+' /sys 2>/dev/null | while read driver; do [ -e /lib/modules/$(uname -r)/kernel/drivers/input/mouse/"$driver"* ] && echo $driver; done

Чтобы проверить, что вы получили правильный модуль, протестируйте команду для его выгрузки из ядра:

sudo modprobe -r elan_i2c

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

sudo modprobe elan_i2c

Это эффективно перезапускает модуль. Вы можете выполнить две команды вместе следующим образом:

sudo modprobe -r elan_i2c && sudo modprobe elan_i2c

Иногда мне приходится делать это при возобновлении из приостановки.

Что может быть проще и что сработало для меня, так это перезагрузка драйвера в ядре. Следующий код сначала находит имя драйвера ядра, который обрабатывает сенсорную панель, затем выгружает его с помощью rmmod и перезагружает его с помощью modprobe. Обратите внимание, что для выполнения этих команд вам необходимо иметь права root, поэтому запустите sudo su первый.

> lsmod | grep touchhid_multitouch         20480  0 > rmmod hid_multitouch > modprobe hid_multitouch

Вот что у меня работало: [Zenbook ASUS UX501VW]:

sudo  modprobe -r elan_i2csudo  modprobe elan_i2c

И моя пропавшая сенсорная панель вернулась.

Для меня, на ядре 4.13.0-46 на Asus для ELAN1200, речь шла не о перезагрузке elan_i2c но в hid-multitouch водитель:

sudo modprobe -r hid-multitouch && sudo modprobe hid-multitouch

Самым простым решением может быть:

  • подключите мышь
  • идти к >>Системные настройки Мышь и сенсорная панель
  • переключите сенсорную панель в положение ВКЛ.

Также попробуйте gksudo /etc/init.d/hotplug restart

Иногда закрытие экрана ноутбука и повторное открытие решают проблему.

@illusionist - Сработало для меня.