Dokunmatik yüzey sürücüsünü “yeniden başlatmanın” bir yolu var mı?


64

Bir dizüstü bilgisayarda Ubuntu 14.04 kullanıyorum, genellikle harici bir usb fare, klavye ve ekran bağlı olarak. Ancak, bazen hepsini çıkartıp, dizüstü bilgisayarı hareket ettirip yerleşik klavye, ekran ve dokunmatik yüzeyle kullanmaya devam ediyorum.

Rastgele zamanlarda, dokunmatik panelin çalışması durur (ancak eğer usb fareyi takarsam, usb fare çalışır). Bu çok nadiren gerçekleşmesine rağmen, tekrar çalıştığında dokunmatik yüzeye ihtiyacım olursa yeniden başlatmaya zorlandığım için bu büyük bir sıkıntı.

Otomatik olarak yeniden başlatılacak bazı işlemleri ya da dokunmatik yüzey sürücüsünün yeniden başlatılmasını ya da yenilenmesini ya da bir şeylerini yenilemesini sağlayacak bazı komutları öldürmek gibi deneyebileceğim bir geçici çözüm var mı? Dokunmatik yüzeyi "yeniden başlatmadan" uyandırabilecek herhangi bir şey var mı?


Bazen laptop ekranını kapatmak ve tekrar açmak sorunu çözüyor.
illüzyonist

Yanıtlar:


32

Bilgisayarın dokunmatik yüzeyinin yanlışlıkla açmam gereken kendi Açma / Kapama düğmesine sahip olduğunu fark edene kadar bir dizüstü bilgisayarda bu sorunu tekrar tekrar yaşıyordum. Özellikle, anahtar tekrar açılmasında yardımcı olmadı. Basmamaya dikkat ettim ve çok geçmeden entegre kablosuz dokunmatik yüzeyle harici bir kablosuz klavye kullanmaya başladım ve o zamandan beri bu sorunu yaşamadım.

GÜNCELLEME: (Not: aşağıdaki bağlantı koptu, çözüm yukarıda) Bu "çözümü" yayınladığımdan bu yana kullanıcının ihtiyaçlarını karşılayan bir yorum gönderdim. Yorumların yalnızca geçici olarak kaldığını ve otomatik olarak silindiğini henüz yeni öğrendikten sonra, aşağıdaki yararlı yorumun içeriğini başkaları için saklanabileceğini bildiriyorum:

Benim için çalışan "çözümü" paylaşıyordum. Bugün, asıl sorunuza daha uygun çözümler bulmak için Google’a geldi ve aşağıdaki bağlantıyı buldu. Şahsen "uygun" olarak düşündüğüm şey değil, ama ondan bir senaryo haline getirerek en azından daha şık olabilirdi. Bunu buldum (aşağıya bakınız) - gyropyge 25 Eyl, 20:06

Basın Alt+ F2ve tip içinde gksudo modprobe -r psmouseşifre, basında Tip Entersonra, basın Alt+ F2aşağıdaki girmek için tekrar gksudo modprobe psmousedüğmesine basınEnter


benim durumum değil, olsa
matteo

2
Benim için çalışan "çözümü" paylaşıyordum. Bugün, asıl sorunuza daha uygun çözümler bulmak için Google’a geldi ve aşağıdaki bağlantıyı buldu. Şahsen "uygun" olarak düşündüğüm şey değil, ama en azından bir senaryo haline getirerek daha zarif olabilirdi. tuxtrix.com/2010/06/…
gyropyge

Teşekkürler! Cevabınızı aslında yorumunuzda olmasına rağmen cevabınızı kabul edilmiş cevap olarak işaretledim (iyi, ancak test etme şansım olmadı ama çözüm gibi görünüyor).
matteo

Düşünce sonrası yorumumun değerlendirmesini yaptığınız için teşekkür ederiz. Ben de ileride bu çözümden faydalanabiliyorum, çünkü dokunmatik yüzeyin kenarını çevreleyen özellikle vurması kolay bir düğmeye basmamaya çalışmam, özellikle tatmin edici olmamıştı.
gyropyge

1
Link benim için çalışıyordu, ama sadece şu durumda: Dizüstü bilgisayarınızda fare hareketi olmadan sıkışmışsanız (dokunmatik yüzey), sonra Alt + F2 tuş kombinasyonlarına basın ve gksudo modprobe -r psmouse yazın . Şifreyi yazın, enter tuşuna basın ve daha sonra aşağıdaki gksudo modprobe psmouse'unu
G Trawo

58

Bunu yapmanın bir yolunu buldum:

İlk önce bir terminal açın ve devre dışı bırakmak istediğiniz giriş cihazı için gereken kimliği bulmak için tüm giriş cihazlarını yazdırın. Terminalde şunu yazın:

xinput --list

Sonraki: Her giriş cihazı için uzun bir sütunda id = X yazan yere dikkat edin. Devre dışı bırakmak istediğiniz giriş cihazına karşılık gelen cihaz kimliğini bulmak istiyorsunuz (Belki "dokunmatik yüzey" gibi bir şey). Ardından, aşağıdaki komutta X'i devre dışı bırakmak istediğiniz giriş cihazını temsil eden kimlik numarasıyla değiştirin:

xinput disable X

Not: Dokunmatik yüzeyi devre dışı bırakmak için hangi cihaz kimliğini kullanmanız gerektiğinden emin değilseniz, rasgele kimlikleri test ederek ve fare altlığınızın hala çalışıp çalışmadığını kontrol ederek öğrenebilirsiniz. Önemli bir şey yapmadığınızdan emin olun. Tüm çalışmalarınızı kaydedin ve klavyenizi devre dışı bırakmak gibi bir şey yaparsanız bilgisayarınızı yeniden başlatmaya hazır olun. (Terminale yazamıyorsanız tekrar etkinleştirmeye çalışırken sorun yaşayabilirsiniz.

O zaman bu son çizgiyi çalıştırmanız gerekecek (Bu Arch Stanton'ı yakaladığınız için teşekkürler!)

xinput enable X

Sebep: Bu soruna çaresizce bir cevaba ihtiyacım vardı, çünkü touchpad ile yaşadığım sorunlar her türlü işi yapmayı imkansız hale getirdi. Birdenbire, dizüstü bilgisayarımı kullanırken rastgele bir anda, görünüşte sebepsiz, touchpad bir tür "özel moda" giriyor. Dokunmatik yüzeyimde sadece bir parmağımı hareket ettirmek, fare imlecini ekran üzerinde hareket ettirmek yerine ekranın kaymasına neden olur, böylece farenin kaydırma ekranını hesaba katmak için kayda değer koordine etme çabaları olmadan broswer'daki herhangi bir şeyin üzerine gelmesi imkansız hale gelirdi. ve hareketli olmayan fare. Dokunmatik yüzeyi sıfırlamak için, LAPTOP’U BAŞLATMADAN, bir yol bulmak istedim. Artı tarafta, dokunmatik yüzeyi yukarıdaki yöntemle sıfırlamak sorunumu düzeltti.

Güncelleme: Dokunmatik yüzeyi sıfırlamayı daha da kolaylaştırmak için yukarıda listelenen komutlar için bir kısayol tuşu yaptım. Touchpad fritz üzerine çıktığında, basitçe ctrl + super + r tuş kombinasyonunu yapıyorum ve sıfırlamayı benim için yapıyor. Çabuk ve kolay.

İşte nasıl:

-Ev dizininizdeki bir dosyayı oluşturun ve "touchpad-reset.sh" gibi bir şey arayın.

-Bu dosyada, yukarıda listelenen üç komuttan ikisine (son iki) koyunuz, ancak cihaz için X kimlik numarası kullanmak yerine, ek çevre birimleri (belki de ??) kullanabilirsiniz bunun yerine:

İşte bu komutu kullanarak bilgisayarımın terminal içindeki bir çıktısını:

xinput --list

Sonuç:

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)]⎜ 

- Şimdi ne yaparsanız yapın, xinput disable X için X'i (daha önce bir id olan) değiştirirsiniz ve xinput enable X, tek bir tırnak içinde bu kimliğe karşılık gelen isim ile değiştirilir. Örneğin, yukarıdan, id = 13 için yapmak istersen, touchpad cihazımı kullanırsın:

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

-Şimdi, bir kimliğin zaman içinde değişebileceği ve ardından başka bir cihazı devre dışı bırakıp etkinleştireceğiniz bir kimlik numarası yerine adıyla devre dışı bırakıyorsunuz.

Son olarak, bu dosyayı çalıştırılabilir hale getirmek için gerekli izinleri vermeniz gerekir; bu komutu, çalışma dizininizle terminaldeki ana dizininiz olarak çalıştırın (dosyayı oluşturduğunuz yer):

chmod +x your_script_name.sh

Bu nedenle, bu dosyayı içinde yazılan uygun komutlarla yaptığınızda, giriş dizininizde olduğundan emin olarak aşağıdaki adımları izleyin:

  1. Birlik kenar çubuğunu açmak için klavyedeki süper tuşa (PC'deki windows tuşu) basın. 'System settings' yazıp enter tuşuna basın.
  2. 'Donanım' yazan yerin altındaki 'Klavye' seçeneğini bulun ve tıklayın.
  3. 'Kısayollar' sekmesini seçin.
  4. Sol pencerede, 'Özel Kısayollar'ı seçin.
  5. Alt merkezin yakınındaki + düğmesine tıklayın.
  6. Bir açıklama adı ve girilmesi gereken bir komut isteyen bir pencere açılmalıdır.
  7. Adı "dokunmatik yüzeyi sıfırla" gibi bir şey yap
  8. Bu komutu kullanın: gnome-terminal -x ./name_of_your_script.sh
  9. 'Uygula' üzerine tıklayın
  10. Şimdi kısayolunuzu listelemelisiniz ve en sağda "Devre Dışı" veya başka bir çöp demeli. Bu yazıya tıklayın ve belki de ctrl + super + r gibi bir çeşit tuş kombinasyonu yapmaya hazır olun.
  11. Bu tuş kombinasyonunu bir kez yaptıktan sonra bitirdiniz.

Tebrikler! İyi eğlenceler.


O zaman kaçman gerekecek xinput enable X.
Arch Stanton,

Ah-ha! Bunu oraya koymayı unuttum mu? Ateş etmek. Oraya eklediğin için teşekkürler. Sonunda patlatmam gibi.
user3499524

Ahah nevermind, beni kurtardın :-)
Arch Stanton

xinput listesi + disable + etkinleştirmek harika çalışıyor
axel22 18

2
enable/ disableayrıca yalnızca cihaz adı yerine kullanıcı kimliği ile çalışır
Zlatev

50

Dizüstü bilgisayarın dokunmatik yüzey sürücüsünü yeniden başlatmak için:

Ctrl+ Alt+ T Tuşlarına basarak terminali açın ve aşağıdaki komutu çalıştırın

sudo  modprobe -r psmouse

sonra

sudo modprobe psmouse

Çözümü burada buldum ve ayrıca bir usb fare için de çözüm var


Mükemmel bulma. İşaretçim bu sorunu çözmeme yardım eden bir konumda sıkışıyor.
Manikandan Arunachalam

1
bu benim için çalıştı - touchpad bir süre sonra çalışmayı bıraktı. Ben Xubuntu 16.04 çalıştıran Dell üzerinde ALPS dokunmatik yüzeyi var
Ur Ya'ar

sudo modprobe psmouse proto=impsbenim için bir Asus UX303UB + Ubuntu 16.04.2'de çalıştı ama çok dokunuşlu özelliklere sahip değildi. Her nasılsa bir günden diğerine dokunmatik komutu kullanmak için bu komutu çalıştırmam gerekiyor, bir daha asla jestlerle.
Pablo A,

Bu benim için bir Dell Precision'da işe yaramadı.
Cerin

Bu çözüm benim için işe yaramadı. "SYNA8004: 00 06CB: CD8B Dokunmatik Yüzey", Lenovo X1 Carbon Gen 7 ile Ubuntu 18.04.
SaTa

9

Touchpad'inizin hangi modülü kullandığını bilmiyorsanız, bir miktar kazı yaparak öğrenebilirsiniz

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

benim için bu döner

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

o zaman bu kategoride hangi çekirdek modüllerin mevcut olduğunu görün:

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

hangi benim için döner

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

Çapraz referans iki - benim durumumda touchpad için modül gibi görünüyor elan_i2c.ko

Düzenleme: Geçenlerde terdon'un benim için iyi bir şekilde sadeleştirilmiş düzgün bir komutla kullanılan sürücünün adını nasıl güvenilir bir şekilde alabileceğimi öğrendim.

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

Doğru modülü aldığınızı kontrol etmek için, çekirdekten kaldırma komutunu test edin:

sudo modprobe -r elan_i2c

Doğru modüle sahipseniz touchpad anında ölecek, böylece deneme yanılma yoluyla kolayca bulabilirsiniz. İle yeniden yükle

sudo modprobe elan_i2c

Bu, modülü etkili bir şekilde yeniden başlatır. İki komutu bu şekilde birlikte çalıştırabilirsiniz:

sudo modprobe -r elan_i2c && sudo modprobe elan_i2c

Zaman zaman bunu askıya alma özgeçmişinde yapmak zorundayım.


7

Eğer bir synaptics dokunmatik yüzeyiniz varsa:

synclient TouchpadOff=0

2
Yeyaaaaa! Ubuntu 18.04 xfce ile LTS ve Synaptics ile bir cazibe gibi çalıştı!
azatar

6

İşte benim için çalışan şey [Zenbook ASUS UX501VW]:

sudo  modprobe -r elan_i2c
sudo  modprobe elan_i2c

Ve eksik dokunmatik yüzeyim geri döndü.


Teşekkür! ubuntu 16.04 lts üzerinde zenbook ux305ca için çalışıyor.
chao,

4

Hangisi daha kolay olabilir ve hangisi benim için işe yaradı, çekirdeği sürücüyü yeniden yüklüyordu. Aşağıdaki kod ilk önce dokunmatik yüzeyi tutan çekirdek sürücünün adını bulur, ardından boşaltır rmmodve yeniden yükler modprobe. Bu komutları çalıştırmak için root olmanız gerektiğine dikkat edin, sudo suilk önce çalıştırın .

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

2

Benim için, ELAN1200 için Asus'ta 4.13.0-46 çekirdeğinde, yeniden yüklemekle ilgili elan_i2cdeğil, hid-multitouchsürücü hakkında:

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

Asus dizüstü bilgisayarım BOTH klavye ve dokunmatik yüzey için saklanmış bir sürücü kullanıyor, bu yüzden bunu tek bir cmdline içinde yapmanız gerekiyor, aksi halde modprobe -r komutundan sonra yazamazsınız.
Tomofumi

1

Ayrıca denemek gksudo /etc/init.d/hotplug restart


1

Bir dokunmatik yüzeyi sıfırlamak için bir bash komut satırı (@ user3499524 yanıtına dayanarak):

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

1

En basit çözüm şunlar olabilir:

  • fareyi tak
  • gidin Sistem Ayarları >> Fare ve Touchpad
  • dokunmatik yüzeyi ON konumuna getirin

Ubuntu'ya Sormaya Hoş Geldiniz! ;-) Çözümler iyi olmak için geeky olması gerekmez! Sadece kısa ve basit tutun ... :-)
Fabby

0

illüzyonist.

Anladığım kadarıyla Ubuntu 14.04 kullanıyorsunuz; Benimki biraz farklı (şöyle):

Bu dizüstü bilgisayar: Acer Swift 1 (EUFI); x86-64 bit.

İşletim sistemi tipi: Ubuntu 16.04 LTS.

Dokunmatik yüzey tipi: SYNA7DAB: 00 06CB: 7DAC Dokunmatik Yüzey (synaptics_i2c.ko).

Sağlanan çözüm : https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey

Bir bash dosyası betiği oluşturun (önerildiği gibi: bash betiğine bir bağlantı oluşturun ve bir kısayol tuşunu eşleyin); İçerik aşağıdaki gibi olmalıdır:

#!/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]}

Uygulanabilir izinlere sahip olduğundan emin olun!

sudo chmod +x path/filename.sh

Bu çözüm kendim için harika çalışıyor. Umarım sizin için de geçerlidir.

Kişisel sayınıza ilişkin kişisel bilgiler (muhtemelen durumunuza uygulanabilir)

Bilinmeyen bir nedenden dolayı: Bu dizüstü bilgisayarın dokunmatik yüzeyi otomatik olarak otomatik olarak işlevsiz hale gelecektir (henüz AFAIK kullanıyor). USB tabanlı optik fareyi çıkarmaya çalıştım; Yine de aynı konuya rastla.

xinput - list dökümü:

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 touchpad / proc / bus / giriş / cihazlar dökümü:

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

Çözümün özeti ( UBUNTU tarafından sağlanmaktadır ): https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey


0

Ben bu senaryo olarak adlandırıyorum mouse-reset. Kaldırır ve daha sonra modprobebu soruya verilen cevaplarda listelenen tüm modülleri s:

#!/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

Bir Apple Macbook Retina Pro kullanıyorum; dokunmatik yüzey bazen çalışmayı durduruyor. Yukarıdaki yöntemlerin çoğu, adı 'fare' veya 'dokunma' içermediğinden sürücüyü bulamaz.

Dokunmatik yüzey sürücüsünü bulmak için, benim durumumda bcm5974:

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

Sonra boşaltmak ve yeniden yüklemek için:

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

Çözüldü.


Durumunuzdaki belirli cihaz numarası 11 ise, bu numarayı burada kullanmadan xinput --listönce kullanarak bulmak zorundasınız .
Yaron
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.