Fare hareketinin askıya alınmış bir bilgisayarı uyandırmasını nasıl önlerim?


32

Arada bir şişliğin sistemi uyandırmadığından emin olmak için askıya alındıktan sonra fareyi çıkarmak zorunda kalmam çok sinir bozucu. Sistem ayarlarında, etrafta dolaşarak da bunu devre dışı bırakabilecek hiçbir şey bulamadım.

Yanıtlar:


24

Henüz BIOS'u kontrol etmedim, ancak bir çözüm buldum!

Kısa özet: İçinde /proc/acpi/wakeup, hangi aygıtların askıya alınmaya devam etmek için etkin olduğunu görebilirsiniz. Bu liste "Aygıtlar" olarak adlandırılan isimleri (kısaltılmış) gösterir. Örnek "PWRB", "güç düğmesi" anlamına gelir.

Aygıt isimlerini bu dosyaya yazarsanız, bunları etkin / devre dışı arasında değiştirirsiniz.

Bu bilgiyi bulduğum bir bloga dayanarak, fareyle uyanmayı devre dışı bırakmak için küçük bir HowTo yazdım .


1
Bu, cevabımdan çok daha iyi geliyor ve cevabımı buna göre düzenledim. Teşekkürler!
Robie Basak

2
Yani, bu eserler (ancak, sadece kullanarak o geçerken fark sudoeser olmaz: Biri yapmak zorunda sudo su, sonra hiç yankı /proc/acpi/wakeup. Ancak, ben kimsenin bir yolunu bulmuş olup olmadığını merak ediyorum sadece ? Devre dışı fare bende ikisi de var masaüstümde (kablosuz) USB ile bağlandı ve bu da klavyedeki
Marco

15

Fare uyandırma büyük bir rahatsızlık olduğu için tüm posterler sayesinde ve cevaplarımı burada aldım. Bükümümü daha fazla durumda yardımcı olacağı şekilde çözümlere eklemek istiyorum. İçinde 3 farklı öğeyi devre dışı bırakmak zorunda kaldım /proc/acpi/wakeup. Benim cihazlar: EHC1, EHC2, XHCI. İlk 2'si usb2 ve 3'ü bir usb3 girişidir. Lütfen faremin usb alıcı-vericisinin bir usb2 portuna takılı olmasına ve hiçbir şeyin herhangi bir usb3 portunda olmamasına rağmen, bilgisayarın 3 öğenin tümü devre dışı bırakılıncaya kadar farenin üzerinde hareket edeceğini unutmayın .

$ cat /proc/acpi/wakeup | sort 
Device  S-state   Status   Sysfs node
EHC1      S3    *disabled  pci:0000:00:1d.0
EHC2      S3    *disabled  pci:0000:00:1a.0
GLAN      S4    *enabled   pci:0000:08:00.0
.. ,, ..
USB7      S3    *disabled
WLAN      S3    *disabled  pci:0000:03:00.0
XHCI      S3    *disabled  pci:0000:07:00.0

Her açılışta devre dışı uyandırma çizelgesine için, böyle bir şey ekleyebilir /etc/rc.local..

echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup

düzenle cipricus:

Bunu yapıyorum çünkü bu cevaba dayanarak yukarıdakilerin bir kopyası olarak ayrı bir soru sorusunun kapatılması için daha fazla ayrıntı eklemem gerekiyordu ; Ayrı bir cevap olarak göndermekten daha faydalı olduğunu düşünüyorum.

*** ürün engelli olmak gerekir Testi - belirtildiği gibi burada - olarak asıldı öğelerinin her biri için enabledaltı cat /proc/acpi/wakeup | sortfare (yeniden başlatma ihtiyacı olmadan) sistemini uyanır eğer terminali çalışan aşağıda komutların her ardından test ederek :

sudo sh -c "echo EHC1 > /proc/acpi/wakeup"
sudo sh -c "echo EHC2 > /proc/acpi/wakeup"
sudo sh -c "echo XHCI > /proc/acpi/wakeup"

(benim durumumda birincisi, diğer USB portları ile test ettikten sonra bile yeterliydi)

*** /etc/rc.localDosya yoksa - bu yayına göre :

printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local

Dosya şunun gibi görünmelidir:

#!/bin/bash
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup

exit 0

Yeniden Başlatma.


Bu hala işe yaramazsa, dosya /etc/systemd/system/rc-local.serviceeksik veya doğru yapılandırılmamış olabilir.

İle test et

sudo /etc/init.d/rc.local start

ve

sudo systemctl status rc-local

/Etc/rc.local'ın Systemd ile Nasıl Etkinleştirileceğini Takip Etme :

Dosyayı oluştur:

sudo nano /etc/systemd/system/rc-local.service

Sonra aşağıdaki içeriği ekleyin.

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

Dosyayı kaydedin ve kapatın. Bir dosyayı Nano metin düzenleyicisine kaydetmek için, Ctrl + O tuşlarına basın, ardından onaylamak için Enter tuşuna basın. Dosyadan çıkmak için, Ctrl + X tuşlarına basın.

Hepsini kontrol et ve hiçbir hata yapmadı:

sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

Değişiklikleri görmek için yeniden başlatın.


Düzenlememi beğenmiyorsanız, lütfen bana cipricus işaretini bildirerek bildirin, ben de yukarıdakilere bağlı ayrı bir cevap olarak gönderirim.

6

Benim sistemim Ubuntu 15.10

lsusbFare aygıtının ne olduğunu bulmak için komutu kullanmaya çalıştım . Çok basit, lsusbsonra yazdığınız fareyi çıkarın (benim durumumda, bu bir Bluetooth alıcısı) ve lsusbtekrar yazın. Cihaz şöyle görünür:

Bus 007 Device 008: ID 24ae:2000

Şimdi /sys/bus/usb/devices/aynı yolu kullanarak klasörde bulun (unplug / plug). Benim durumumda, klasörlerin başlayacağı bir yerde olduklarını gördüm 7-2*.

Şimdi idProduct ve idVendor'ı okumaya çalışın. Örneğin: cat /sys/bus/usb/devices/7-2.3/idProduct=> 2000, cat /sys/bus/usb/devices/7-2.3/idVendor=> 24ae. Bu kadar.

Sonunda /lib/systemd/system-sleepdizinde bir script oluşturun , ne istersen onu adlandır.

#! /bin/sh

if [ ! -r /sys/bus/usb/devices/7-2.3/power/wakeup ]; then
    exit 0
fi
case "$1" in
    pre )
    echo disabled > /sys/bus/usb/devices/7-2.3/power/wakeup
;;
esac

Hepsi tamam.


Dizüstü bilgisayarımda Ubuntu 18.04 ile çalışıyor.
Minh Nguyen,

1

bu senaryo benim sorunumu çözdü. bunu kontrol et.

    #!/bin/bash

# allow only one instance
r=$(pidof -x -o $$ ssmonoff.sh)
set -- $r
if [ "${#@}" -ge 1 ]; then
    echo "Script already running. Exit..."
    exit
fi

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | ( while read line; do
    if echo $line | grep "boolean true" &> /dev/null; then
            xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "0"
            xset dpms force off
    else
            xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "1"
    fi
done )

Tek yapmanız gereken, önce çalıştırmak sudo xinput list, USB farenizin adını bulup onu komut dosyasına koymak. Sonra dosyayı "ssmonoff.sh" olarak kaydedin, çalıştırılabilir duruma getirin ve başlangıçta çalışacak şekilde ayarlayın.


1

Harika bir açıklama. Ben sadece aşağıdaki komutu rc.local ekledi

for d in `cat wakeup |grep enabled|grep -v PS2K|cut -b -4`; do echo $d >/proc/acpi/wakeup ; done

Her cihazı PS2K'dan (klavye PS2) uyandırmaktan çıkarmak için kullanılır. Basit ve çalışıyor!


0

Donanımınıza özel bir yol olabilir, bu durumda seçenek sisteminizin BIOS ayarları ile kullanılabilir.

Ayarları değiştirmek için BIOS menüsüne almak da sisteme özgüdür. Genellikle yeniden başlattıktan hemen sonra bir tuşa basarsınız ve basılacak tuş genellikle ekranda görüntülenir.

Bununla birlikte, user138339'ın cevabı, ihtiyacınız olanı elde etmek için daha genel bir yol gibi görünüyor ve bunu çalışan sistemden yapabilirsiniz.


0

Bu sizin için çalışmasını sağlamak için adım adım "öğretici" dir:

  1. cat /proc/acpi/wakeupUyandırma aygıtlarının listesini göstermek için komutu kullanın
  2. sudo sh -c "echo XXXX >/proc/acpi/wakeup"Cihaz durumunu değiştirmek için (etkin / devre dışı) komutunu kullanın ("XXXX" cihaz kodunuzla değiştirin). Bir seferde bir cihaza gidin ve makineyi askıya alın ve hak ettiğiniz cihaz makineyi uyandırana kadar devre dışı bırakmak istediğiniz cihazı kullanarak uyandırın. Devre dışı bırakmak istemediğiniz cihazları her zaman geri etkinleştirmeyi unutmayın.
  3. Doğru cihazı bulduğunuzda masaüstünüzde aşağıdaki kodu içeren "acpi_wakeup" dosyasını oluşturun: #!/bin/sh printf "XXXX" > /proc/acpi/wakeup ("XXXX" ifadesini cihaz kodunuzla değiştirmeyi unutmayın)
  4. Dosyayı klasöre taşıyın veya kopyalayın /etc/init.d/. Dosyayı kopyalamak için aşağıdaki komutu kullanın: sudo cp /home/USERNAME/Desktop/acpi_wakeup /etc/init.d/acpi_wakeup ("USERNAME" yerine gerçek kullanıcı adınızı girin)
  5. Dosyayı çalıştırılabilir duruma getirin: sudo chmod 755 /etc/init.d/acpi_wakeup
  6. Ardından, gerekli sembolik bağlantıları diğer dizinlerde otomatik olarak yapmak için 'update-rc.d' komutunu kullanın: sudo update-rc.d acpi_wakeup defaults (görünür, WARNING: ...missing LSB tags and overridesancak tamamdır. Bu konuda endişelenmenize gerek yoktur)
  7. Bilgisayarını yeniden başlat.

Kaynaklar ve daha fazla okuma:

http://www.das-werkstatt.com/forum/werkstatt/viewtopic.php?f=7&t=1985 http://ubuntuforums.org/showthread.php?t=814939&page=3

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.