1. Übersicht: Warum ist es notwendig?

Es ist sowohl energieintensiv als auch kostspielig, einen Desktop 24 Stunden am Tag zu betreiben, sei es zu Hause oder im Büro.

Deshalb habe ich darüber nachgedacht, wie ich mit einem Raspberry Pi, der wie ein kleiner Server 24 Stunden läuft, jederzeit den Desktop aus der Ferne einzuschalten.

Dazu habe ich eine Strategie entwickelt, die die Funktion "Wake-on-LAN (WOL)" nutzt:

  • BIOS-Einstellungen des Desktops: WOL-Funktion aktivieren
  • Linux (Ubuntu) Einstellungen: Netzwerkkarte bleibt auch nach dem Herunterfahren aktiv
  • Raspberry Pi Einstellungen: Skript zum Senden von Magic Packets erstellen und automatisieren

Benötigte Pakete: - wakeonlan (zum Senden von Magic Packets vom Raspberry Pi oder Server)

Wake-on-LAN Übersicht


2. Konfiguration

  • Ziel-PC: Desktop mit Ubuntu 24.04 installiert
  • Server: Raspberry Pi 5 (Ubuntu Server 24.04)
  • Netzwerk: Verbunden im gleichen lokalen Netzwerk (verkabelt empfohlen)

3. BIOS-Einstellungen des Desktops

Um Wake-on-LAN zu nutzen, sind die BIOS-Einstellungen des Motherboards äußerst wichtig.

So ändern Sie die BIOS-Einstellungen

Im BIOS stellen Sie die folgenden Punkte ein. Ich habe ein GIGABYTE-Motherboard verwendet; Benutzer anderer Marken sollten ähnliche Optionen beachten.

  1. Beim Booten des Desktops ins BIOS/UEFI Setup eingeben ( normalerweise DEL, F2 Taste)
  2. Aktivieren Sie die folgenden Optionen:

ERP (Energiesparmodus)
- ERP Einstellung: Disabled (ausgeschaltet), da der Energiesparmodus WOL-Funktion verhindern kann.

CSM aktivieren - CSM Support: Enabled - Nach der CSM-Einstellung können möglicherweise die folgenden Optionen angezeigt werden (im Falle von GIGABYTE-Motherboards): - LAN PXE Boot Option ROM: deaktiviert lassen - Save OpROM policy: Legacy - Other PCI devices: Legacy

Resume by LAN / Power On by PCI-E
- Einige Boards unterstützen dies automatisch, auch ohne spezielle Optionen → Es kann normal funktionieren, auch wenn die Option nicht angezeigt wird.

  1. Speichern und neu starten

※ Je nach Hersteller können die Optionen leicht variieren, suchen Sie nach ähnlichen Optionen wie 'Wake' oder 'Power On by PCI' und stellen Sie sie ein.


4. Linux (Ubuntu) Einstellungen des Desktops

Unter Ubuntu muss die NIC (Network Interface Card) aktiv bleiben, auch wenn das System heruntergefahren wird.

1. Überprüfen des Netzwerk-Interface-Namens

ip a

Beispielausgabe:

2: enp4s0: ...
    link/ether <AA:BB:CC:DD:EE:FF> ...
  • enp4s0: Überprüfen Sie den Namen der Netzwerk-Schnittstelle. (Das ist der WLAN-Gerätename des Desktops, also kann dies je nach Gerät unterschiedlich sein.)
  • AA:BB:CC:DD:EE:FF: MAC-Adresse (Ziel des Magic Packets) ※ Achten Sie auf die Sicherheit, wenn die MAC-Adresse freigegeben wird.

2. ethtool installieren

sudo apt update
sudo apt install ethtool

3. WOL-Status überprüfen und einstellen

sudo ethtool enp4s0 | grep Wake

Beispielausgabe:

Supports Wake-on: pumbg
Wake-on: d
  • d → Deaktiviert
  • Aktivieren mit dem folgenden Befehl:
sudo ethtool -s enp4s0 wol g

Nochmals überprüfen:

Wake-on: g

4. Automatische Einstellung beim Booten (optional: anwenden, wenn Wake-on:g nach dem Neustart deaktiviert ist)

Nach Ubuntu 20.04 wird /etc/rc.local nicht mehr standardmäßig unterstützt, daher wird die Verwendung eines systemd-Dienstes eher empfohlen.

So erstellen Sie /etc/rc.local:

sudo nano /etc/rc.local

Fügen Sie über exit 0 hinzu:

/sbin/ethtool -s enp4s0 wol g
exit 0

Nach dem Speichern der Datei setzen Sie die Ausführungsberechtigung:

sudo chmod +x /etc/rc.local

Zusätzliche systemd-Dienstkonfiguration kann erforderlich sein.


5. Magic Packet vom Raspberry Pi senden

1. Installieren Sie das wakeonlan Paket

sudo apt install wakeonlan

2. WOL-Befehl ausführen

wakeonlan AA:BB:CC:DD:EE:FF # Hier die oben überprüfte MAC-Adresse einfügen.

3. (Optional) Alias registrieren

# Fügen Sie die MAC-Adresse des Boot-Ziel-PCs anstelle von AA:BB:CC:DD:EE:FF ein.
echo "alias wakeup_dude='wakeonlan AA:BB:CC:DD:EE:FF'" >> ~/.bashrc
source ~/.bashrc

→ Von nun an kann der Befehl einfach wie folgt ausgeführt werden:

wakeup_dude

6. Ergebnisse

  • Der Desktop bootet automatisch nach Empfang des Magic Packets, auch wenn er vollständig ausgeschaltet ist
  • Erfolgreiche Implementierung von Wake-on-LAN remote boot!

7. Sicherheitsaspekte

  • Die Sicherheitseinstellungen für die SSH-Verbindung des "Raspberry Pi", der als Kontrollzentrale fungiert, sowie Router-Sicherheitseinstellungen und UFW-Konfigurationen müssen auf jeden Fall verstärkt werden.
  • Wenn Sie von außen zugreifen, wird empfohlen, SSH-Portweiterleitung oder VPN zu verwenden.

8. Anwendungsbeispiele

# Zugriff von außen
ssh username@<your_ip_or_domain> -p <your_ssh_port>
# Nach der Verbindung
wakeup_dude
🎉 Desktop automatisch booten!

9. Referenzen

  • Wake-on-LAN funktioniert nur über verkabeltes LAN (Wi-Fi ist nicht möglich)
  • Einige Boards funktionieren im Suspend-Zustand, aber im Shutdown-Zustand kann dies eingeschränkt sein. (Bei GIGABYTE-Boards wurde der Erfolg auch im Shutdown bestätigt.)

Durch den Aufbau einer Desktop-Umgebung, die nur dann aufwacht, wenn sie benötigt wird, wird eine intelligente und effiziente Serververwaltung ermöglicht.