Есть ли способ «перезапустить» драйвер тачпада?

39

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

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

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

    
задан matteo 25.09.2014 в 12:45
источник

9 ответов

19

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

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

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

  

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

    
ответ дан gyropyge 25.09.2014 в 12:56
источник
35

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

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

xinput --list

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

xinput disable X

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

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

xinput enable X

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

Обновление: Чтобы сделать сброс сенсорной панели еще проще, я сделал горячую клавишу для перечисленных выше команд. Когда мой тачпад идет на fritz, я просто делаю комбинацию клавиш 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 (который раньше был id) для xinput отключить X и xinput включить 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 на ПК) на клавиатуре, чтобы открыть боковую панель. Введите «системные настройки» и нажмите клавишу ввода.
  2. Найдите опцию «Клавиатура» в разделе «Оборудование» и нажмите на нее.
  3. Выберите вкладку «Ярлыки».
  4. В левом окне выберите «Пользовательские ярлыки»
  5. Нажмите кнопку + рядом с нижним центром.
  6. Появится окно с запросом имени описания и команды для ввода.
  7. Сделайте имя что-то вроде "reset touchpad"
  8. Используйте эту команду: gnome-terminal -x ./name_of_your_script.sh
  9. Нажмите «Применить»
  10. Теперь вы должны видеть, что ваш ярлык указан, а в крайнем правом - «Отключено» или какой-либо другой мусор. Нажмите на этот текст и будьте готовы сделать какую-то комбинацию клавиш, возможно, например ctrl + super + r.
  11. Как только вы сделаете эту комбинацию клавиш, вы закончили.

Congrats! Получайте удовольствие.

    
ответ дан user3499524 05.12.2015 в 06:56
25

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

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

sudo  modprobe -r psmouse

затем

sudo modprobe psmouse

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

    
ответ дан maruf 14.01.2016 в 15:27
6

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

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

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

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

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

    
ответ дан Zanna 05.09.2016 в 08:11
5

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

sudo  modprobe -r elan_i2c
sudo  modprobe elan_i2c

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

    
ответ дан Denis Walrave 04.09.2016 в 18:25
2

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

> lsmod | grep touch
hid_multitouch         20480  0 
> rmmod hid_multitouch 
> modprobe hid_multitouch
    
ответ дан ChrisR 19.11.2017 в 21:47
1

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

synclient TouchpadOff=0
    
ответ дан AnteBios 25.09.2016 в 09:53
1

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

    
ответ дан qwr 01.03.2017 в 08:03
0

иллюзионист.

Я понимаю, что вы используете Ubuntu 14.04; Мой немного отличается (следующим образом):

Этот ноутбук: Acer Swift 1 (EUFI); x86-64 бит.

Тип ОС: Ubuntu 16.04 LTS.

Тип сенсорной панели: SYNA7DAB: 00 06CB: сенсорная панель 7DAC (synaptics_i2c.ko).

Предоставлено решение : Ссылка

Создайте сценарий файла bash (как предложено: создайте символическую ссылку на сценарий bash и сопоставьте ему горячую клавишу); Содержимое должно быть следующим:

#!/bin/bash

declare -a STATES=(1 0)
DEVICE=$(xinput list --name-only | grep Touchpad)
STATE=$(xinput list-props "$DEVICE" | grep 'Device Enabled' | sed 's/^.*:[ \t]*//')
xinput set-prop "$DEVICE" 'Device Enabled' ${STATES[$STATE]}

Убедитесь, что у него есть разрешения для eXecutable!

sudo chmod +x path/filename.sh

Это решение отлично работает для меня. Надеюсь, это относится и к вам.

Личные данные собственной проблемы (возможно, применимые к вашей ситуации)

По какой-то неизвестной причине: тачпад этого ноутбука автоматически станет неработоспособным (пока все еще работает AFAIK). Я попытался удалить оптическую мышь на основе USB; все же столкнулись с той же проблемой.

xinput --list дамп:

[email protected]:~/Desktop$ xinput --list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=10   [slave  pointer  (2)]
⎜   ↳ SYNA7DAB:00 06CB:7DAC Touchpad            id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Logitech USB Receiver                     id=9    [slave  keyboard (3)]
    ↳ 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)]

grep -iA2 сенсорная панель / proc / bus / input / devices дамп:

[email protected]:~/Desktop$ grep -iA2 touchpad /proc/bus/input/devices
N: Name="SYNA7DAB:00 06CB:7DAC Touchpad"
P: Phys=i2c-SYNA7DAB:00
S: Sysfs=/devices/pci0000:00/0000:00:17.0/i2c_designware.4/i2c-9/i2c-SYNA7DAB:00/0018:06CB:7DAC.0003/input/input11

Рекомендация ( предоставлена ​​UBUNTU ): Ссылка

    
ответ дан Daniel B 29.12.2017 в 10:59