Wakeup aus dem Ruhezustand mittels Mausklick unter openSUSE

Aus Gargi.org
Version vom 7. Juni 2018, 21:30 Uhr von Gargi (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Was oftmals unter Windows out of the box geht benötigt manchmal unter Linux ein wenig Nachhilfe. Unter openSUSE 13.2 (funktioniert auch bis openSUSE Leap 42.3 getestet) ist mit aufgefallen, dass sich mein Rechner nicht wie unter Windows nach einer gewissen Zeit in den Schlafzustand versetzt, wenn er nicht genutzt wird. Dieses ist erst einmal deaktiviert. Das macht unter Linux auch Sinn, da es durchaus sein kann, dass die verbaute Hardware das "Einschlafen" und vor allem das "Wiederaufwachen" nicht unterstützt. Schnell ist dann der Rechner in den Schlafzustand geschickt und Linux kann dann eventuell nicht mehr gestartet werden. Deswegen ist es sicherlich auch mit einem gewisse Risiko verbunden, dies auszuprobieren. Von daher denkt daran, eventuell zuerst ein Backup zu machen, bevor Ihr hier mit dem Tutorial einsteigt. Idealerweise probiert man sowas auch zuerst an einem frisch installierten System aus, dann fällt einem im Notfall das Neuinstallieren nicht so schwer …

Ob Eure Hardware das unterstützt ist schnell herausgefunden. Dazu könnt Ihr den Ruhezustand oder den Tiefschlaf einfach manuell über das Startmenü auslösen:

Für mich ist der Ruhezustand die bessere Variante, da hier nichts auf die Platte geschrieben wird, sondern ein Suspend to RAM durchgeführt wird. Das Wiederaufwecken geht hierbei deutlich schneller. Gerade wer eine SSD verbaut hat, der weiß, wie schnell openSUSE generell startet. Da macht ein Suspend to Disc wenig Sinn.

Ihr habt dann sicher festgestellt, dass Euere Maschine nicht über einen Tastendruck auf die Tastatur oder Maus aufwacht, sondern Ihr müsst die Powertaste Eures Rechners drücken. Darauf kommen wir später zurück.

Wenn alles geklappt hat und Eure Maschine wieder aktiv ist, automatisieren wir den Schlafzustand. Ruft dazu als normaler User in Eurem Startmenü die Systemeinstellungen auf und klickt dort auf die Energieeinstellungen:

Dort aktiviert den Punkt Sitzung in den Ruhezustand versetzen. Gebt dabei an, wie lange der Rechner nicht benutzt werden darf, damit der Ruhezustand aktiviert wird. Jetzt noch im Dropdownmenü Eure gewünschte Art des Ruhezustands auswählen. Ich verwende hier den "Ruhezustand".

Übernehmt das alles mit dem Button "Anwenden" .

Jetzt wollen wir noch openSUSE so konfigurieren, damit die Kiste mit einem Klick auf die rechte Maustaste wieder anläuft. Dies ist ein wenig tricky, aber ich bin im Web hier fündig geworden: opensuse.org forum

Öffnet dazu eine shell und werdet root mittels

su

(Passworteingabe für den Rootaccount)

Am besten installiert Ihr ein Textprogramm (falls noch nicht geschehen) wie nano:

zypper install nano

Nun müssen wir zwei neue Dateien anlegen und mit entsprechendem Inhalt füllen. Die erste Datei (eine udev Regel) legen wir mit

nano /etc/udev/rules.d/56-wakeupsub.rules

an. Kopiert folgenden Code in die Zwischenablage:

# Set usb hid devices for wake up on usb
SUBSYSTEM=="usb", ACTION=="add", DRIVERS=="usbhid", RUN+="/usr/local/sbin/usb-wakeup"

Fügt ihn mittels mittlerer Maustaste in die geöffnete Scriptdatei ein und speichert die Änderung in nano mit [B]strg+x[/B] und einem [B]J [/B]als Bestätigung ab. Drückt die Enter - Taste, dann ist die Textdatei wieder zu. Danach gleiches mit einem shell-script, das durch die neue udev Regel ausgelöst werden soll:

nano /usr/local/sbin/usb-wakeup

Auch hier folgenden Code kopieren, einfügen und abspeichern:

#!/bin/bash

cd /sys/devices/pci0000:00

n=`find . -name 'input[0-9]' | grep -i usb | sed 's/\/input//g' | sed 's/.$//g' | awk '{print length,$0}' | sort -nr | awk ' {$1="";print $0}' | cut -f2- -d' ' | head -1 | sed 's/\//\n/g' | wc -l`

let x=n-1

while [ $x -gt 1 ]; do

  for i in $( find . -name 'input[0-9]' | grep -i usb | sed 's/\/input//g' | sed 's/.$//g' | cut -f1-$x -d\/ | sed 's/$/\/power\/wakeup/g' | xargs -i grep -H disabled {} | sed 's/:disabled//g' | sort | uniq ); do

    echo enabled > $i

  done

  let x=x-1

done

Bitte gleicht hier genau ab, dass Ihr keine ungewünschten Zeilenumbrüche habt.

Jetzt muss das Script noch ausführbar gemacht werden. Dazu folgenden Befehl eingeben:

chmod +x /usr/local/sbin/usb-wakeup

Das war es dann aber auch schon. Rechner einmal neu starten, damit die Regel auch entsprechend geladen wird und aktiv ist. Jetzt könnt Ihr den Ruhezustand ausprobieren und mittels linker Maustaste das System wieder aufwecken.

Hinweis: Ihr landet beim Start beim passwortgeschützten Bildschirmschoner, also einem Schwarzbild. Also nicht irritieren lassen, der Rechner ist gestartet, nur kurz an der Maus rucken, dann seht Ihr die Eingabe der Passwortabfrage auch wieder.

Wer den gesperrten Bildschirm nach dem Ruhezustand nicht haben muss, kann dies übrigens in den erweiterten Optionen in der Energieverwaltung auch deaktivieren:

Hier den Haken bei Bildschirm nach Ruhezustand sperren heraus nehmen und Änderung speichern.

cu
Gargi