Website-Suche

Deaktivieren Sie das Aufwecken Ihres Ubuntu-PCs durch Tastatur, Maus oder Deckel


In diesem Tutorial erfahren Sie, wie Sie Tastatur-, Maus-, Deckelöffnungs- und/oder andere Geräteereignisse aktivieren/deaktivieren, um Ihren Ubuntu-PC oder -Laptop aus dem Ruhezustand aufzuwecken.

Standardmäßig können Sie Ihren Computer aus dem Energiespar- oder Ruhezustand aufwecken, indem Sie den Laptopdeckel öffnen, eine beliebige Taste auf der Tastatur drücken oder die Ruhezustandstaste drücken. Wenn Sie möchten, können Sie Ubuntu so konfigurieren, dass bestimmte Aktivierungsauslöser ignoriert werden, die Sie nicht möchten.

Bild von pixabay.com

Dieses Tutorial wurde auf ThinkPad t480s mit Ubuntu 24.04 getestet. Es sollte auch auf anderen Linux- und anderen Geräten funktionieren, die Aktion „Deckel öffnen“ kann jedoch variieren!

Schritt 1: Sagen Sie, wer Ihren Computer aufwecken kann

Normalerweise kann der Benutzer die Datei /proc/acpi/wakeup lesen, um eine Liste der aktivierten und deaktivierten Weckauslöser zu erhalten.

1. Drücken Sie zunächst Strg+Alt+T, um ein Terminalfenster zu öffnen, und führen Sie dann den Befehl aus, um aktivierte Weckauslöser aufzulisten:

cat /proc/acpi/wakeup |grep enabled

Wenn Sie |grep aktiviert im Befehl überspringen, werden alle aktivierten oder deaktivierten Trigger angezeigt.

In der Ausgabe sehen Sie herstellerspezifische Codenamen, z. B Schlafniveau (s3 – Suspend, s4 – Ruhezustand), aus dem sie aufwachen können.

2. Bei PCI-Geräten können Sie einen weiteren Befehl ausführen, um mehr darüber zu erfahren, um was es sich handelt:

lspci |grep -e "xx:xx.x" -e "xx:xx.x" -e "xx:xx.x" -e "xx:xx.x"

Ersetzen Sie im Befehl xx:xx.x entsprechend den sysfs-IDs (der zweiten Hälfte), die Sie im letzten Befehl erhalten haben. Und fügen Sie -e "xx:xx.x" hinzu bzw. entfernen Sie es, je nachdem, wie viele PCI-Geräte Sie auflisten möchten.

Wie der Screenshot unten zeigt, kann ich in meinem Fall meinen Computer aufwecken von:

  • GLAN, pci:0000:00:1f.6, die kabelgebundene Netzwerkkarte, aus dem Ruhezustand S4 (einschließlich S3/S2/S1).
  • XHC, pci:0000:00:14.0, USB 3.0-Gerät, vom S3-Suspendierungszustand (Ruhezustand zum RAM).
  • PXSX, pci:0000:04:00.0, Thunderbolt 3-Gerät, aus S4-Ruhezustand.
  • SLPB (Ruhezustandstaste), LID (Laptopdeckel) und einige andere PCIe-Geräte.

Schritt 2: Deaktivieren Sie die Aktivierung durch bestimmte PCI-Geräte

Alle oben im letzten Schritt aufgeführten Geräte haben ihre eigenen Unterordner /sys/bus/, die bei der Erkennung automatisch erstellt werden (normalerweise beim Start, es sei denn, Sie stecken sie per Hotplug aus und wieder ein).

Jeder Unterordner enthält eine power/wakeup-Datei, die den Schlüsselwert zum Aufwecken aus dem Ruhezustand entweder „aktiviert“ oder „deaktiviert“ enthält.

Um eines zu deaktivieren, führen Sie einfach den folgenden Befehl aus:

echo disabled | sudo tee /sys/bus/pci/devices/0000:00:14.0/power/wakeup

Ersetzen Sie hier 0000:00:14.0 entsprechend der ID, die Sie im letzten Befehl erhalten haben, um jeden gewünschten PCI-Trigger zu deaktivieren. Oder ersetzen Sie disabled durch enabled, um den Trigger zu aktivieren.

Und Sie können den Befehl immer wieder mit unterschiedlichen sysfs-IDs ausführen, um mehrere Weckauslöser zu deaktivieren/aktivieren.

Um dies zu überprüfen, führen Sie entweder den Befehl cat /proc/acpi/wakeup erneut aus oder halten Sie Ihren Computer einfach an und versuchen Sie, ihn mit den gerade deaktivierten Triggern aufzuwecken.

Verwenden Sie udev-Regeln, um es dauerhaft zu machen

Der letzte echo-Befehl funktioniert vorübergehend, bis die Geräte neu gestartet oder neu angeschlossen werden. Damit es auch nach einem Neustart bestehen bleibt, können Sie udev-Regeln erstellen.

1. Führen Sie zunächst den Befehl aus, um eine benutzerdefinierte udev-Regeldatei zu erstellen (und zu bearbeiten) (in diesem Fall 40-disable-wakeup-triggers.rules):

sudo gnome-text-editor /etc/udev/rules.d/40-disable-wakeup-triggers.rules

Ersetzen Sie hier gnome-text-editor entsprechend Ihrer Desktop-Umgebung, gedit für altes GNOME (22.04 und früher), musepad für XFCE , oder verwenden Sie stattdessen nano, was auf den meisten Desktops funktioniert.

2. Wenn die Datei geöffnet wird, fügen Sie die folgende Zeile hinzu:

ACTION=="add", KERNEL=="0000:00:14.0", SUBSYSTEM=="pci", ATTR{power/wakeup}="disabled"

Hier :

  • ACTION=="add" weist an, die Aktion bei Erkennung des Geräts auszuführen.
  • KERNEL=="0000:00:14.0", SUBSYSTEM=="pci" werden zur Identifizierung des Geräts verwendet. Ersetzen Sie die ID entsprechend.
  • ATTR{power/wakeup}="disabled" (hier ist nur ein „=“) weist an, „disabled“ in den power/wakeup zu schreiben also um den Auslöser zu deaktivieren.

Und Sie können mehrere Zeilen mit unterschiedlichen IDs (für den KERNEL-Wert) hinzufügen, um mehrere Trigger bei Erkennung zu deaktivieren oder zu aktivieren.

Nachdem Sie die Datei gespeichert haben (drücken Sie für nano Strg+S und dann Strg+X), starten Sie den Computer neu, um die Änderungen zu übernehmen.

(Optional) Deaktivieren Sie die Aktivierung durch bestimmte USB-Geräte

Deaktivieren Sie im letzten Schritt XHC (in meinem Fall pci:0000:00:14.0), um zu verhindern, dass alle USB 3.0-Geräte den Computer aktivieren.

Wenn Sie jedoch bestimmte USB-Geräte (z. B. eine USB-Tastatur) deaktivieren und andere USB-Geräte unverändert lassen möchten, führen Sie die folgenden Schritte Schritt für Schritt aus.

HINWEIS: Damit dieser Schritt funktioniert, müssen Sie XHC aktiviert lassen (im letzten Schritt konfiguriert).

1. Führen Sie zunächst den folgenden Befehl aus, um allen angeschlossenen USB-Geräten sowie deren IDs mitzuteilen.

lsusb

In meinem Fall habe ich eine USB-Maus mit der ID 1c4f:0034 und eine USB-Tastatur mit der ID 3151:3020. Die ersten vier Hexadezimalzahlen sind die Hersteller-ID, während die zweiten vier die Produkt-ID sind.

Führen Sie dann den folgenden Befehl aus (ersetzen Sie die Produkt-ID „3020“ durch Ihre eigene), um den Ordner /sys/bus für das USB-Gerät zu ermitteln.

grep 3020 /sys/bus/usb/devices/*/idProduct

2. Um ein USB-Gerät vorübergehend daran zu hindern, das System aus dem Ruhezustand aufzuwecken, verwenden Sie den folgenden Befehl:

echo disabled | sudo tee /sys/bus/usb/devices/1-2/power/wakeup

Ersetzen Sie hier /sys/bus/usb/devices/1-2 durch den Ordnerpfad, entsprechend dem, was Sie im letzten Befehl erhalten haben. Und es funktioniert bis zum Neustart oder bis zum erneuten Anschließen des USB-Geräts.

3. Um es dauerhaft zu machen, erstellen Sie auch eine udev-Regel per Befehl (ersetzen Sie gnome-text-editor durch Ihren Texteditor):

sudo gnome-text-editor /etc/udev/rules.d/40-disable-wakeup-triggers.rules

Wenn die Datei geöffnet wird, schreiben Sie die folgende Zeile (ersetzen Sie 3151 und 3020 durch Ihre eigene):

ACTION=="add|change", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="3151", ATTRS{idProduct}=="3020", ATTR{power/wakeup}="disabled"

Hier weist ACTION=="add|change" darauf hin, dass bei jedem Gerätewechsel versucht werden soll, die Regeln erneut anzuwenden, da das USB-Gerät Hot-Plug-fähig ist.

Verhindern Sie, dass das Öffnen des Laptopdeckels Ubuntu aufweckt

HINWEIS: Dieser Schritt funktioniert möglicherweise auf Ihrem Laptop oder auch nicht!! Es scheint keine einheitliche Möglichkeit zu geben, die Weckfunktion bei geöffnetem Deckel zu deaktivieren. Wenn Sie es wissen, sagen Sie es mir bitte, indem Sie unten einen Kommentar hinterlassen.

Die meisten Laptops unterstützen heutzutage das Aufwachen beim Öffnen des Deckels. Um diese Funktion zu aktivieren/deaktivieren, müssen Sie zunächst die Option in den BIOS-Einstellungen ausprobieren.

Wenn Ihre BIOS-Einstellungsseite diese Option NICHT enthält, können Sie die folgenden Schritte nacheinander ausprobieren, was jedoch bei einigen Laptops möglicherweise NICHT funktioniert.

1. Öffnen Sie zunächst das Terminal (Strg+Alt+T) und führen Sie den folgenden Befehl aus, um den Unterordner /sys/bus für den Lid herauszufinden:

sudo dmesg |grep Lid

In meinem Fall ist es /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/.

2. Versuchen Sie dann, „deaktiviert“ an die Datei power/wakeup für diesen Geräteordner zu senden (ersetzen Sie den fett gedruckten Text entsprechend).

echo disabled | sudo tee /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/power/wakeup

Wenn Sie fertig sind, hängen Sie Ihren Computer an und schließen Sie den Deckel. Versuchen Sie schließlich ein paar Augenblicke später, den Deckel zu öffnen, und prüfen Sie, ob er sich bei Aktion aktiviert. Wenn es NICHT funktioniert, versuchen Sie, die Aktion des Deckelschalters auf „Ignorieren“ einzustellen.

3. Wenn der letzte Schritt funktioniert, können Sie eine udev-Regel erstellen, um sie dauerhaft zu machen.

Führen Sie zunächst den Befehl aus, um die Schlüsselparameter zur Identifizierung des Geräts herauszufinden (ersetzen Sie den fetten Text entsprechend dem letzten Befehl).

udevadm info -q all -a /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/

In meinem Fall (siehe Screenshot) KERNEL=="PNP0C0D:00", SUBSYSTEM=="acpi" und DRIVER=="button" ist das, was ich für udev-Regeln benötige.

Führen Sie als Nächstes den Befehl aus, um eine udev-Regel zu erstellen (und zu bearbeiten) (ersetzen Sie gnome-text-editor entsprechend):

sudo gnome-text-editor /etc/udev/rules.d/40-disable-wakeup-triggers.rules

Während die Datei geöffnet wird, fügen Sie die folgende Zeile hinzu und speichern Sie:

ACTION=="add", KERNEL=="PNP0C0D:00", SUBSYSTEM=="acpi", DRIVER=="button", ATTR{power/wakeup}="disabled"

Die udev-Regel wird beim nächsten Start des Ubuntu-Linux-Systems wirksam.

Verwandte Artikel