Чи є спосіб "перезапустити" драйвер тачпада?


64

Я використовую Ubuntu 14.04 на ноутбуці, як правило, із підключеною зовнішньою мишкою usb та клавіатурою та екраном. Однак іноді я відключаю їх від усієї мережі та переміщую ноутбук і продовжую користуватися ним за допомогою вбудованої клавіатури, екрана та тачпада.

У випадковий час трапляється, що тачпад перестає працювати (але якщо я підключую мишу usb, миша usb працює). Хоча це трапляється дуже рідко, коли це робиться, це сильне роздратування, тому що я змушений перезавантажуватися, якщо мені потрібна тачпад, щоб знову працювати.

Чи є якесь вирішення, яке я можу спробувати, наприклад, вбити якийсь процес, який автоматично перезапуститься, або якусь команду, яка спричинить перезапуск або оновлення драйвера тачпада чи щось таке? Що-небудь, що може "розбудити" тачпад без перезавантаження?


Іноді вимикання екрана ноутбука та відкриття знову вирішує проблему.
ілюзіоніст

Відповіді:


32

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

ОНОВЛЕННЯ: (Примітка: посилання нижче зламане, рішення вище). Після публікації цього "рішення" я опублікував коментар, який, очевидно, відповідав потребам користувача. Щойно дізнавшись про те, що коментарі залишаються лише тимчасово та автоматично видаляються, я відновлюю вміст корисного коментаря нижче, що він може бути збережений для інших:

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

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


не мій випадок, хоча
matteo

2
Я ділився "рішенням", яке працювало на мене. Сьогодні мені прийшло в голову, щоб Google шукав рішення, які більш відповідали вашому первинному питанню, і знайшов наступне посилання. Я не вважаю це "зручним", але, принаймні, можна зробити його більш елегантним, зробивши його сценарієм. tuxtrix.com/2010/06/…
gyropyge

Дякую! Я позначив вашу відповідь прийнятою відповіддю, хоча відповідь насправді є у вашому коментарі (ну, я не мав можливості перевірити її, але звучить, що це рішення).
Маттео

Дякую за розгляд мого задумливого коментаря. Я також можу в майбутньому отримати користь від цього рішення, оскільки моє рішення намагатися не натиснути на особливо легку для натискання кнопку, що межує з краєм сенсорної панелі, не була особливо задовільною.
gyropyge

1
Посилання працювало для мене, але про всяк випадок: Якщо ви застрягли в русі миші на ноутбуці (сенсорній панелі), тоді натисніть комбінації клавіш Alt + F2 і введіть gksudo modprobe -r psmouse Введіть пароль, натисніть клавішу Enter і потім знову натисніть Alt + F2, щоб ввести наступний gksudo modprobe psmouse
G Trawo

58

Я знайшов спосіб це зробити:

Спочатку відкрийте термінал і роздрукуйте всі пристрої введення, щоб знайти ідентифікатор, необхідний для пристрою введення, який ви хочете відключити. У терміналі введіть:

xinput --list

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

xinput disable X

Примітка. Якщо ви не впевнені, який ідентифікатор пристрою слід використовувати для відключення тачпада, то це можна дізнатися, перевіривши випадкові ідентифікатори та побачивши, чи працює ваша клавіатура миші. Переконайтеся, що ви НЕ РОБИТИ НІЧОГО ВАЖЛИВОГО. Збережіть всю свою роботу та будьте готові до перезавантаження комп'ютера, якщо ви зробите щось на зразок відключення клавіатури. (У вас можуть виникнути проблеми при спробі ввімкнути його знову, якщо ви не можете ввести термінал.

Тоді вам доведеться запустити цей останній рядок (Дякую, що вловив цей арка Стентон!)

xinput enable X

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

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

Ось як:

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

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

Ось вихід з мого комп'ютера всередині терміналу за допомогою цієї команди:

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 X та xinput enable X на ім'я, відповідне цьому id всередині одиничних лапок. Наприклад, із вищезазначеного, якщо ви хочете зробити це для id = 13, мого пристрою тачпада, ви використовуєте:

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

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

Нарешті, вам потрібно надати дозволи, щоб зробити цей файл виконуваним; запустіть цю команду зі своїм робочим каталогом у терміналі як домашній каталог (де ви створили файл):

chmod +x your_script_name.sh

Отже, як тільки ви складете цей файл із відповідними командами, записаними всередині, переконайтесь, що він знаходиться у вашому домашньому каталозі, виконайте наступні кроки нижче:

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

Вітаю! Весело.


Тоді вам доведеться бігти xinput enable X.
Арк Стентон

А-ха! Я забув покласти це туди? Стріляти. Дякуємо, що додали, що там. Так само, як і я, щоб його зрештою підірвати.
користувач3499524

Аха, не зважаючи, ти врятував мене :-)
Арк Стентон

список xinput + відключити + включити працює чудово
axel22

2
enable/ disableтакож працювати з ідентифікатором лише замість назви пристрою
Zlatev

50

Щоб перезапустити драйвер сенсорної панелі ноутбука:

Відкрийте термінал, натиснувши Ctrl+ Alt+ T і виконайте наступну команду

sudo  modprobe -r psmouse

тоді

sudo modprobe psmouse

Я знайшов рішення тут і є також рішення для USB миші


Ідеальна знахідка. Мій вказівник застряг у положенні, це допомогло мені вирішити його.
Манікандан Аруначалам

1
це працювало для мене - мій сенсорний панель через деякий час перестане працювати. У мене є сенсорний панель ALPS на Dell під керуванням Xubuntu 16.04
Ur Ya'ar

sudo modprobe psmouse proto=impsпрацював для мене на Asus UX303UB + Ubuntu 16.04.2, але без функцій мультитач. Якось з одного дня в інший мені потрібно виконати цю команду, щоб мати тачпад, ніколи більше не жестами.
Пабло А

Це не спрацювало для мене на Dell Precision.
Серин

Це рішення для мене не спрацювало. Ubuntu 18.04 з "SYNA8004: 00 06CB: Сенсорна панель CD8B", Lenovo X1 Carbon Gen 7. Я отримую спритну поведінку тачпада після відновлення зі сплячки.
SaTa

9

Якщо ви не знаєте, який модуль використовує ваш тачпад, ви можете дізнатися, трохи копаючи

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

Мені періодично доводиться робити це під час резюме з призупинення.


7

Якщо у вас є тачпад синаптики:

synclient TouchpadOff=0

2
Єяаааа! Ubuntu 18.04 LTS з xfce, і він працював як шарм із Synaptics!
азатар

6

Ось що для мене працювало [Zenbook ASUS UX501VW]:

sudo  modprobe -r elan_i2c
sudo  modprobe elan_i2c

І мій недолік сенсорної панелі повернувся.


Дякую! працює для zenbook ux305ca на ubuntu 16.04 lts.
чао

4

Що може бути простіше, і що працювало для мене, це перезавантаження драйвера в ядро. Наступний код спочатку знаходить ім'я драйвера ядра, який обробляє сенсорну панель, потім вивантажує її rmmodта перезавантажує modprobe. Зауважте, що для запуску цих команд потрібно мати root, тому виконайте sudo suспочатку запуск .

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

2

Для мене в ядрі 4.13.0-46 на Asus для ELAN1200 мова йшла не про перезавантаження, elan_i2cа про hid-multitouchдрайвер:

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

мій ноутбук Asus використовує прихований драйвер для клавіатури BOTH та тачпада, тому потрібно робити це в одній cmdline, інакше ви не можете вводити після modprobe -r.
Томофумі


1

Один командний рядок bash для скидання тачпада (на основі @ user3499524 відповіді):

id=`xinput --list |grep -i touchpad | cut -f2 | cut -f2 -d=` && xinput disable $id && xinput enable $id && echo "The touchpad has been reset."

1

Найпростішим рішенням може бути:

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

Ласкаво просимо до Ask Ubuntu! ;-) Рішення не повинні бути вигадливими, щоб бути хорошим! Просто будьте коротким і простим ... :-)
Fabby

0

ілюзіоніст.

Я розумію, ви працюєте з Ubuntu 14.04; Моя трохи інша (наступним чином):

Цей ноутбук: Acer Swift 1 (EUFI); x86-64 біт.

Тип ОС: Ubuntu 16.04 LTS.

Тип тачпада: SYNA7DAB: 00 06CB: 7DAC Тачпад (synaptics_i2c.ko).

Надається рішення : https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey

Створіть сценарій файлу 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; все-таки зіткнутися з тим же питанням.

дамп xlist - список :

larvae@MST-Laptop:~/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 / шина / вхід / скидання пристроїв :

larvae@MST-Laptop:~/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 ): https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey


0

Я називаю цей сценарій mouse-reset. Він видаляє, а потім видаляє modprobeвсі модулі, перелічені у відповідях на це запитання:

#!/bin/bash

modules=(psmouse hid_multitouch elan_i2c)

for mod in "${modules[@]}"; do
    sudo rmmod "$mod" 2> /dev/null
    sudo modprobe -v "$mod" 2> /dev/null
done

0

Я використовую Apple Macbook Retina Pro; тачпад іноді перестає працювати. Більшість з перерахованих вище методів не знайде драйвер, оскільки ім'я не містить "миші" або "дотику".

Щоб знайти драйвер тачпада, у моєму випадку bcm5974:

MacBookPro:~$ xinput list-props 11
Device 'bcm5974':
    Device Enabled (147):   1`
...

Потім вивантажте та перезавантажте:

MacBookPro:~$ sudo modprobe -r bcm5974
MacBookPro:~$ sudo modprobe bcm5974

Вирішено.


11 - це конкретний номер пристрою у вашому випадку, вам доведеться знайти цей номер, використовуючи його, xinput --listперш ніж використовувати його тут.
Ярон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.