Sonntag, 5. November 2006, 20:49 Uhr

Freevo automatisch starten und herunterfahren

Obwohl ich genügend zu tun hätte, konnte ich auch heute nicht von dem Optiplex GX150 lassen, der momentan unter meinem Bürotisch steht und auf seinen Produktiveinsatz wartet …

Heute ging es darum, Freevo den letzten Schliff zu verpassen. Ich band neben meinem digitalen Film-Archiv nun auch mein Musik-Archiv sowie mein Bilder-Archiv ein. Auch diese Mediengattungen lasen sich unter Freevo bequem am TV-Bildschirm anzeigen resp. abspielen.

Auf der technischen Seite des Feinschliffs lernte ich nebenbei auch noch das mit Ubuntu 6.10 (Edgy) eingeführte upstart kennen (ein Ersatz für den init daemon – ha, tönt das klug!), ohne es aber auch nur ansatzweise zu durchblicken.

Ziel

Wird das Mediacenter eingeschaltet, soll das System booten und danach gleich direkt in die Freevo-Oberfläche wechseln. Der Benutzer muss sich also nicht mehr – wie bis anhin – zuerst einloggen und dann über das Terminal Freevo starten; das sollte jetzt vollautomatisch passieren.

Beendet der Benutzer Freevo, soll auch gleich der PC ausgeschaltet werden.

Auto-Login unter Linux

Was Windows-Benutzer in den Consumer-Versionen der 90er-Jahre standardmässig vorfanden, ist bei Linux natürlich aus Sicherheitsgründen verpönt: Das Auto-Login.

Für einen Mediacenter-PC ist aber gerade dieses Feature sehr wünschenswert – einerseits, weil man den Multimedia-PC am liebsten mit einer Infrarot-Fernbedienung steuern möchte (sprich: kein Keyboard zur Stelle, das die Eingabe von Benutzernamen und Passwort erlauben würde), andererseits, weil man das Ding ja evtl. auch den Eltern in die gute Stube stellen will. Und die sind sich nun mal gewöhnt, dass man die Video-Kassette in den Rekorder schiebt und auf Play drückt – und dabei nicht erst nach Benutzernamen und Passwort gefragt wird.

Der (auch für die restliche Konfiguration sehr hilfreiche) Wiki-Artikel Freevo Media Center enthielt die nötigen Schritte, um sich eine Auto-Login Linux-Kiste zu zimmern. Da man nie weiss, wie lange solche How-Tos im Netz bleiben, „drucke“ ich hier die Anleitung zusätzlich zur Original-Quelle ab:

Auto Start

We will disable the Gnome GDM login manager, and instead start a bare xsession with only freevo using the entire fullscreen display. Rungetty will autologin freevo on TTY1 and then start X Windows.

first create the freevo user

adduser freevo
adduser freevo cdrom
adduser freevo video 
adduser freevo audio

Then edit some dot files in freevo’s home directory.

add to the end of /home/freevo/.bash_profile:

export SDL_AUDIODRIVER=alsa

if [ "$TERM" = "linux" -a `tty` = "/dev/tty1" ]; then
       startx -- :1 -br ; exit
fi

create /home/freevo/.xsession:

# turn off screen blanking
/usr/bin/X11/xset s off
/usr/bin/X11/xset -dpms

# allow local user access to windows
/usr/bin/X11/xhost +local:

# make blue bars black
/usr/bin/xvattr -a XV_COLORKEY -v 0

# showtime
/usr/bin/X11/xsetroot -solid "#000000" &
/usr/bin/unclutter -idle 1 &
#xterm -font 9x15
/usr/bin/freevo

make sure the .xsession is executable

chmod +x /home/freevo/.xsession

edit /etc/inittab to start rungetty autologin of the freevo user:

#1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
1:345:respawn:/sbin/getty 38400 tty1
7:2:respawn:/sbin/rungetty tty1 --autologin freevo

disable GDM

mv /etc/rc2.d/S13gdm /etc/rc2.d/O13gdm
/etc/init.d/gdm stop
init q

That’s it. Not for the faint of heart. Now reboot and enjoy all your snail mail flix and bittorrent downloads!

Quelle: Freevo Media Center

Hilfreich war für Detailfragen die Anleitung Xfce Autologin (die sich auf Ubuntu <6.10, also auf init und nicht auf upstart bezieht) sowie einen Forenbeitrag, der den entscheidenden Hinweis für Edgy enthielt: Autologin ohne GDM mit Edgy.

Wichtig war hierbei die Installation des Paketes rungetty:

apt-get install rungetty

Bootet man den Rechner neu, landet man – ehe man sich versieht – in der schönen Freevo-Oberfläche. Auf zum nächsten Schritt!

Nicht nur Freevo, sondern gleich das ganze System herunterfahren

Hier kämpfen wir (wieder) mit Sicherheitsaspekten – Linux kann man normalerweise ja nur als root-User herunterfahren:

shutdown -h now

Drücke ich aber in Freevo auf den ‚Shutdown‘-Befehl, sollte die Kiste wider dieser Sicherheitsmassnahme vollständig heruntergefahren und danach ausgeschaltet werden.

Als erstes durchsuchen wir – natürlich – das Web nach geeigneten Anleitungen. Gefunden habe ich Herunterfahren für Non-Root-Benutzer. Klar doch – sudo ist mein Freund. Doch bei Freevo hat der User keine Shell, wo er mit Eingabe seines Passwortes Super-User-Rechte erlangen könnte. Hier kommt die Anleitung ins Spiel: Es gibt die Möglichkeit, Nicht-Root-Benutzer Befehle als root ausführen zu lassen, ohne dass sie ein Passwort eingeben müssen (Aber Achtung, tönt ganz gefährlich – hier muss man Vorsicht walten lassen).

Wichtig ist dazu der Eintrag in die /etc/sudoers-Datei, den man mit visudo vornehmen sollte:

freevo ALL=(ALL) NOPASSWD: /sbin/shutdown

Der Benutzer freevo wird mit dieser Konfigurationszeile authorisiert, den folgenden Befehl ohne Passworteingabe auszuführen:

sudo /sbin/shutdown -r now

Danach basteln wir noch am Freevo-Quellcode herum – wie der Vorredner bereits gesagt hat: „Not for the faint of heart“. Hierzu öffnen wir die Datei /usr/lib/python2.4/site-packages/freevo/plugins/shutdown.py im Editor unserer Wahl.

Zeile 96 ändern wir wie folgt:

os.system('sudo /sbin/shutdown -r now')

Und schwupp – bestätigt man den Druck auf den ‚Shutdown‘-Knopf, schaltet sich die Kiste nach einigen Sekunden (oder Minuten) selbständig aus.

Tags:
Labels: Allgemein

Kommentar erfassen