YaVDR 0.5a – Headless Linux Server – Part II

12 Mai 2013 von Oli82 Kommentieren »

image_S056

Im nächsten Schritt werden ACPI Wakeup und WOL konfiguriert und getestet.

ACPI Wakeup steuert, in meinem Fall, das Starten des PCs über die Hardware Uhr (RTC) des Mainboards. So kann der VDR nach setzen eines Timers automatisch starten und muss nicht ständig laufen. Auch wenn das den Geldbeutel schont, kommt es hin und wieder vor, dass man den VDR „wecken“ muss. Zu diesem Zweck setze ich WakeOnLan (WOL) ein. Die Konfiguration beider Funktionen beschreibe ich in diesem Artikel.

04. ACPI Wakeup und WOL

Der VDR unterstützt ja bekanntlich das setzen von Timern und damit verbundenes Aufwachen (Wakeup) des PCs. Dafür mussten bei meinem ASRock Board und auch im OS einige Anpassungen vorgenommen werden.

Anpassungen im BIOS

Im Bios musste ich folgende Einstellungen im Menu „ACPI Configuration“ tätigen:

  • ACPI HPET Table           -> DISABLE
  • PCI Devices Power On   -> ENABLE (für WakeOnLAN)
  • RTC Alarm Power On     -> BY OS (für VDR WakeUp)

Anpassungen im OS

Das ACPI Wakeup funktioniert zuverlässig, wenn die Hardwareuhr (RTC) auf UTC läuft. Somit hat man keine Probleme mit der Sommer- Winterzeit. Konfiguriert wird das ganze in /etc/default/rcS:

sudo nano /etc/default/rcS
# Hier sind folgende Zeilen interessant und wie folgt zu editieren:

# assume that the BIOS clock is set to UTC time (recommended)
UTC=yes

# be more verbose during the boot process
VERBOSE=no

# automatically repair filesystems with inconsistencies during boot
FSCKFIX=no

# RTC beim Runterfahren syncen
HWCLOCKACCESS=yes
HWCLOCKPARS="--directisa"

UTC=yes setzt die RTC auf UTC. HWCLOCKACCESS=yes sorgt dafür, dass die Zeit mit dem Bios abgeglichen wird und HWCLOCKPARS=“–directisa“ sorgt dafür, dass es beim Booten des OS keine Fehler beim setzen der Uhrzeit entstehen.

Es sollte nach einem Reboot natürlich geprüft werden, ob die RTC auch wirklich in UTC läuft.

 sudo hwclock --debug
hwclock von util-linux 2.20.1
Benutze /dev interface to clock.
Die Hardwareuhr läuft vermutlich in UTC.
Warte auf Uhrtick…
… erhielt Uhrtick
Zeit gelesen aus Hardwareuhr: 2013/05/13 06:56:46
Zeit der Hardwareuhr: 2013/05/13 06:56:46 = 1368428206 Sekunden seit 1969
Mo 13 Mai 2013 08:56:46 CEST  -0.621170 Sekunden

Wie man hier sieht, besteht ein Zeitunterschied von 2 Stunden zwischen Hardware- und Systemzeit. Somit sind wir hier fertig.

05. Shutdown über die Konsole

Hier habe ich mir etwas die Zähne ausgebissen (und tue es eigentlich noch immer). Das Problem am Shutdown über die Konsole ist, dass eingestellte Timer nicht geschrieben werden. Somit wacht der PC auch nicht zur gewünschten Zeit auf. Das lieg darin, dass die Scripte „shutdown“, „halt“ und „poweroff“ die Timer nicht in die Datei /sys/class/rtc/rtc0/wakealarm schreiben. Abhilfe schaft das Herunterfahren des PC mit dem Befehl svdrpsend HITK Power. Das simuliert dem PC, dass die Powertaste auf der Fernbedienung gedrückt wurde. Ich habe mir ein kleines Script geschrieben und in /usr/bin/ gelegt:

cd /usr/local/bin/
sudo touch poweroffvdr.sh
# nun der Inhalt
svdrpsend HITK Power
# Jetzt abspeichern (STRG X)
sudo chmod +x poweroffvdr.sh

Damit das Scipt auch greift, wenn man in der Konsole angemeldet ist, muss der Lifeguard im Webinterface oder die lifeguard.conf so angepasst werden, dass ssh deaktiviert ist.

Als Test habe ich mal einen Timer für den 13.05.2013 um 21:08Uhr im Webinterface gesetzt.

Starten wir nun den PC mal über unser Script neu und schauen, ob danach der Timer gesetzt wurde:

sudo cat /proc/driver/rtc
rtc_time        : 07:23:45
rtc_date        : 2013-05-13
alrm_time       : 19:08:00
alrm_date       : 2013-05-13
alarm_IRQ       : yes
alrm_pending    : no
update IRQ enabled      : no
periodic IRQ enabled    : no
periodic IRQ frequency  : 1024
max user IRQ frequency  : 64
24hr            : yes
....Ausgabe gekürzt

In Zeile 2 und 4 sieht man die aktuelle UTC Zeit und die Zeit, wann der PC aufwachen wird. Nicht wundern, die Zeit ist in UTC, also zwei, bzw. eine Stunde vor der aktuellen Uhrzeit auf eurem System.

Werbung

Schreibe einen Kommentar


Deprecated: Function set_magic_quotes_runtime() is deprecated in /www/htdocs/w00b99e6/blog/counter/counter.php on line 61

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /www/htdocs/w00b99e6/blog/counter/includes/mysql.class.php on line 165

Deprecated: Function set_magic_quotes_runtime() is deprecated in /www/htdocs/w00b99e6/blog/counter/counter.php on line 1794