To naprawdę denerwujące, ponieważ po zawieszeniu muszę odłączyć mysz od zasilania, aby mieć pewność, że od czasu do czasu system nie budzi systemu. Nie znalazłem niczego w ustawieniach systemu, które nie mogłyby tego wyłączyć, przeglądając strony.
To naprawdę denerwujące, ponieważ po zawieszeniu muszę odłączyć mysz od zasilania, aby mieć pewność, że od czasu do czasu system nie budzi systemu. Nie znalazłem niczego w ustawieniach systemu, które nie mogłyby tego wyłączyć, przeglądając strony.
Odpowiedzi:
Nie sprawdziłem jeszcze BIOS-u, ale znalazłem rozwiązanie!
Krótkie podsumowanie: w /proc/acpi/wakeup
możesz zobaczyć, które urządzenia są obecnie włączone, aby wznowić zawieszanie. Ta lista zawiera nazwy (w skrócie) tak zwanych „urządzeń”. Przykład „PWRB” oznacza „przycisk zasilania”.
Jeśli zapisujesz nazwy urządzeń w tym pliku, przełączasz je między włączonymi / wyłączonymi.
Napisałem mały HowTo na temat wyłączania funkcji budzenia za pomocą myszy , na podstawie bloga, na którym znalazłem te informacje.
sudo
nie będzie działać: trzeba zrobić sudo su
najpierw, a potem do echo /proc/acpi/wakeup
. Jednak zastanawiam się, czy ktoś znalazł sposób na to ? Wyłączyć mysz mam zarówno na moim pulpicie podłączonym przez (bezprzewodowy) USB, a to również wyłączy wybudzanie z klawiatury
Podziękowania dla wszystkich plakatów, ponieważ budzenie myszy jest poważną niedogodnością i otrzymałem tutaj odpowiedzi. Chciałbym dodać swój zwrot do rozwiązań, ponieważ może to pomóc w większej liczbie przypadków. Musiałem wyłączyć 3 różne elementy w /proc/acpi/wakeup
. Moje urządzenia: EHC1, EHC2, XHCI
. Pierwsze 2 to usb2, a trzeci to wpis usb3. Należy pamiętać, że chociaż urządzenie nadawczo-odbiorcze USB dla mojej myszy jest podłączone do portu USB2 i nic nie jest w żadnym porcie USB3, komputer budzi się po ruchach myszy, dopóki wszystkie 3 elementy nie zostaną wyłączone.
$ 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
Aby wyłączyć elementy budzenia przy każdym uruchomieniu, możesz dodać coś takiego do /etc/rc.local
...
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup
edytuj przez cipricus:
Edytuję to, ponieważ musiałem dodać więcej szczegółów, aby uzyskać osobne pytanie moje zostało zamknięte jako duplikat powyższego w oparciu o tę odpowiedź; Myślę, że to bardziej przydatne niż publikowanie jako osobna odpowiedź.
*** Sprawdź, które elementy należy wyłączyć - jak wskazano tutaj - dla każdego z elementów, które zostały zaksięgowane jako enabled
poniżej cat /proc/acpi/wakeup | sort
, uruchamiając w terminalu każde z poniższych poleceń, a następnie sprawdzając, czy mysz budzi system (bez konieczności ponownego uruchamiania) :
sudo sh -c "echo EHC1 > /proc/acpi/wakeup"
sudo sh -c "echo EHC2 > /proc/acpi/wakeup"
sudo sh -c "echo XHCI > /proc/acpi/wakeup"
(w moim przypadku pierwszy wystarczył nawet po przetestowaniu z innymi portami USB)
*** Jeśli /etc/rc.local
plik nie istnieje - zgodnie z tym postem:
printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local
Plik powinien wyglądać mniej więcej tak:
#!/bin/bash
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup
exit 0
Restart.
Jeśli to nadal nie działa, może to oznaczać, że plik /etc/systemd/system/rc-local.service
brak lub niewłaściwa konfiguracja.
Przetestuj za pomocą
sudo /etc/init.d/rc.local start
i
sudo systemctl status rc-local
W następstwie Jak włączyć /etc/rc.local z Systemd :
Utwórz plik:
sudo nano /etc/systemd/system/rc-local.service
Następnie dodaj do niego następującą treść.
[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
Zapisz i zamknij plik. Aby zapisać plik w edytorze tekstu Nano, naciśnij Ctrl + O, a następnie naciśnij Enter, aby potwierdzić. Aby wyjść z pliku, naciśnij Ctrl + X.
Sprawdź, czy wszystko jest w porządku bez błędów dzięki:
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
Uruchom ponownie, aby zobaczyć zmiany.
Mój system to Ubuntu 15.10
Próbowałem użyć lsusb
polecenia, aby znaleźć urządzenie myszy. To bardzo proste, piszesz, lsusb
a następnie odłączasz mysz (w moim przypadku jest to odbiornik Bluetooth) i piszesz lsusb
ponownie. Urządzenie wygląda następująco:
Bus 007 Device 008: ID 24ae:2000
Teraz znajdź go w /sys/bus/usb/devices/
folderze, używając tej samej metody (odłącz / podłącz). W moim przypadku stwierdziłem, że są one gdzieś w folderach zaczynających się od 7-2*
.
Teraz spróbuj przeczytać idProduct i idVendor. Na przykład: cat /sys/bus/usb/devices/7-2.3/idProduct
=> 2000
, cat /sys/bus/usb/devices/7-2.3/idVendor
=> 24ae
. to jest to!
Na koniec tworzę skrypt w /lib/systemd/system-sleep
katalogu, nadaj mu dowolną nazwę.
#! /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
Wszystko gotowe.
ten skrypt rozwiązał mój problem. Sprawdź to.
#!/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 )
Wszystko, co musisz zrobić, to najpierw uruchomić sudo xinput list
, znaleźć nazwę myszy USB i umieścić ją w skrypcie. Następnie zapisz plik jako „ssmonoff.sh”, ustaw go jako wykonywalny i ustaw go tak, aby był uruchamiany podczas uruchamiania.
Może istnieć sposób specyficzny dla twojego sprzętu, w którym to przypadku opcja może być dostępna w ustawieniach BIOS systemu.
Wejście do menu BIOS w celu zmiany ustawień jest również specyficzne dla systemu. Zwykle naciskasz klawisz zaraz po ponownym uruchomieniu komputera, a klawisz do naciśnięcia jest często wyświetlany na ekranie.
Jednak odpowiedź user138339 wydaje się bardziej ogólnym sposobem na osiągnięcie tego, czego potrzebujesz, i możesz to zrobić z uruchomionego systemu.
To jest mój „samouczek” krok po kroku, aby działał dla Ciebie:
cat /proc/acpi/wakeup
aby wyświetlić listę urządzeń budzącychsudo sh -c "echo XXXX >/proc/acpi/wakeup"
(zamień „XXXX” na kod urządzenia), aby przełączyć stan urządzenia (włączony / wyłączony). Idź po jednym urządzeniu na raz i spróbuj zawiesić swój komputer i obudzić go za pomocą urządzenia, które chcesz wyłączyć, dopóki zasłużone urządzenie nie będzie w stanie go obudzić. Nie zapomnij zawsze włączać ponownie urządzeń, których nie chcesz wyłączać.#!/bin/sh
printf "XXXX" > /proc/acpi/wakeup
(nie zapomnij zastąpić „XXXX” kodem urządzenia)/etc/init.d/
. Aby skopiować plik, użyj następującego polecenia:
sudo cp /home/USERNAME/Desktop/acpi_wakeup /etc/init.d/acpi_wakeup
(zastąp „USERNAME” rzeczywistą nazwą użytkownika)sudo chmod 755 /etc/init.d/acpi_wakeup
sudo update-rc.d acpi_wakeup defaults
(pokazuje, WARNING: ...missing LSB tags and overrides
ale jest OK. Nie musisz się tym martwić)Źródła i dalsze czytanie:
http://www.das-werkstatt.com/forum/werkstatt/viewtopic.php?f=7&t=1985 http://ubuntuforums.org/showthread.php?t=814939&page=3