[HOWTO] VDR NFS Client auf Debian 5.0 (64bit) lenny mit debootstrap Installation - 2010.03.04

  • Im Zuge meiner Server-Aktualisierung (Debian 4.0 32bit wurde durch Debian 5.0 64bit ersetzt) wollte
    ich auch den diskless VDR durch Debian 5.0 lenny ersetzen.


    Voraussetzung für diese Installation ist ein funktionsfähiger Fileserver mit NFSd, DHCPd und TFTPd. Das
    Aufsetzen dieser Dienste wird z.B. im alten
    [HOWTO] VDR Client via Netz per NFS booten (Neu: mit debootstrap Installation) beschrieben.


    Für den VDR nutze ich die Pakete, welche Tobi dankenswerterweise in einem Repository für Debian 5.0
    bereit stellt:


    [UPDATE] Lenny + Sid


    Zusätzlich wird der jeweils aktuelle vanilla Kernel von kernel.org und LIRC aus dem CVS genutzt.


    Stand: 2010.03.04


    Linux Kernel 2.6.33
    vdr 1.6.0-13ctvdr3
    lirc-0.8.6 CVS



    Inhaltsverzeichnis


    SERVER: Der Client


    1. Grundsystem
    2. Nutzerverwaltung
    3. Repositories

    a. Debian
    b. VDR
    c. debian-multimedia.org
    d. Pakete installieren
    4. Netzwerk
    5. Dateisysteme
    6. Auslagerungsdatei
    7. Kernel

    a. DVB-Karten-Module
    b. DVB-Karten-Firmware

    8. chroot Ende


    SERVER


    9. Client-Backup
    10. NFS-Freigabe
    11. tftp Dämon
    12. Daten-Übernahme


    CLIENT


    13. MOTD
    14. LIRC
    15. VDR

    a. vdr-plugin-burn
    b. vdr-plugin-dvd
    c. vdr-plugin-graphlcd
    d. nvram-wakeup

    16. HG DVB Treiber
    17. Kernel Update

    a. Kernel
    b. LIRC
    c. HG DVB Treiber



    SERVER: Der Client


    Die folgenden Befehle sind, soweit nicht anders erwähnt, als User root auszuführen.


    1. Grundsystem


    Auf dem Server (bei mir ebenfalls mit Debian 5.0 lenny bestückt) wird das Paket debootstrap installiert,
    ein Verzeichnis für den VDR Client eingerichtet und debootstrap ausgeführt, welches das Grundsystem
    aufspielt. Mittels chroot wechselt man in das neue System.


    Ausgabe:


    Code
    # in das neu installierte System wechseln
    chroot /srv/netboot/nfsroot/vdr_lenny


    Nun werden ein paar spezielle Verzeichnisse eingebunden, locales und die Zeitzone eingerichtet, die
    Paketverwaltung aktualisiert und einige wichtige Pakete installiert. vim läßt sich gegen den bevorzugten
    Editor austauschen.


    Code
    # die Zeitzone konfigurieren
    dpkg-reconfigure tzdata
    Code
    # Pakete installieren
    aptitude install wget debconf devscripts vim


    2. Nutzerverwaltung


    Jetzt erfolgt das Erstellen der Gruppe und des Nutzers vdr. Wer bereits ein Videoverzeichnis mit alten
    Aufnahmen besitzt, sollte uid und gid entsprechend setzen.



    Das root Passwort und der Nutzer kilroy werden eingerichtet. Damit 'kilroy' u.a. aus syslog lesen kann,
    wird er in die Gruppe adm eingetragen.




    3. Repositories


    a. Debian 5.0


    Als nächstes werden die Einträge für die Paketverwaltung vorgenommen und es werden die aktuellen
    Updates sowie ein paar weitere Programme installiert.



    b. VDR


    Code
    # e-tobis vdr Pakete haben Priorität
    cat >> /etc/apt/preferences << EOF
    Package: *
    Pin: release o=e-tobi.net
    Pin-Priority: 1001
    EOF
    
    
    # Paketlisten aktualisieren
    aptitude update


    c. debian-multimedia.org


    Code
    # debian-multimedia.org einrichten
    wget --quiet http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
    dpkg -i debian-multimedia-keyring_2008.10.16_all.deb
    
    
    echo "deb http://www.debian-multimedia.org lenny main" > /etc/apt/sources.list.d/debian-multimedia.org.list
    
    
    # Paketlisten aktualisieren
    aptitude update


    d. Pakete installieren


    Code
    # temporäre Dateien löschen
    rm *all.deb
    
    
    # Pakete aktualisieren
    aptitude safe-upgrade


    Code
    # Pakete installieren
    aptitude install udev openssh-server anacron less mc portmap at ntp rsync powernowd exim4 mutt bzip2 build-essential libncurses5-dev kernel-package nfs-common cvs man-db manpages pciutils figlet
    #
    [ -f /var/log/exim4/paniclog ] && rm /var/log/exim4/paniclog


    4. Netzwerk


    Diese Einträge dienen der Funktionsfähigkeit des Netzwerkes.


    Wer mehr als eine Netzwerkkarte nutzt, muss die Datei interfaces u.U. anpassen.



    5. Dateisysteme


    Die Datei /etc/fstab wird wie nachfolgend aufgeführt erstellt. Auf das Verzeichnis /video mounte ich
    die Aufnahmen, welche auf dem Server liegen. /dev/loop0 dient dem Swap-Bereich.



    Code
    # ASYNCMOUNTNFS abschalten, da /video sonst nicht eingehangen wird
    # siehe auch man rcS
    echo "ASYNCMOUNTNFS=no" >> /etc/default/rcS


    6. Auslagerungsdatei


    Mittels der nächsten Befehlsfolge wird eine Swap-Datei eingerichtet, welche per loop-Device eingehängt wird.



    7. Kernel


    Im nächsten Schritt wird der derzeit aktuelle vanilla Kernel heruntergeladen, ggf. für AMD Geode NX 1750
    gepatcht, übersetzt und installiert. Die verwendete .config sollte man nicht ungeprüft übernehmen.




    a. DVB-Karten-Module


    Ich lade die Module für die DVB Karten in einer vorgegebenen Reihenfolge.



    b. DVB-Karten-Firmware


    Jetzt wird die benötigte Firmware für die FujitsuSiemens FF DVB-Karte geladen. Andere DVB-Karten
    benötigen ggf. weitere Firmware-Dateien.



    8. chroot Ende


    Jetzt die chroot Umgebung verlassen.


    Code
    umount /proc/; umount /sys; umount /dev/pts
    aptitude clean
    exit



    SERVER


    9. Client-Backup


    Code
    tar cvjf /tmp/vdr_lenny.tar.bz2 /srv/netboot/nfsroot/vdr_lenny/


    10. NFS-Freigabe


    Auf dem Server muss das root Verzeichnis für den VDR per nfs freigegeben werden.


    Code
    echo "/srv/netboot/nfsroot/vdr_lenny 172.17.42.0/255.255.255.0(rw,no_root_squash,no_all_squash,sync,no_subtree_check)" >> /etc/exports
    /etc/init.d/nfs-kernel-server reload


    11. tftp Dämon


    Es folgen die Einträge für die PXELINUX Konfigurationsdatei.



    12. Daten-Übernahme


    Ich übernehme diverse Daten des alten Systems auf das Neue.


    Code
    # alte SSH Schlüssel auf das neue System kopieren
    cp /srv/netboot/nfsroot/vdr_hardy/etc/ssh/ssh_host_*key* /srv/netboot/nfsroot/vdr_lenny/etc/ssh/
    # alte MOTD auf neues System kopieren
    cp /srv/netboot/nfsroot/vdr_hardy/etc/motd.tail /srv/netboot/nfsroot/vdr_lenny/etc/
    # altes root home Verzeichnis auf das neue System kopieren
    cp -a /srv/netboot/nfsroot/vdr_hardy/root /srv/netboot/nfsroot/vdr_lenny/
    # altes kilroy home Verzeichnis auf das neue System kopieren
    cp -a /srv/netboot/nfsroot/vdr_hardy/home/kilroy/ /srv/netboot/nfsroot/vdr_lenny/home/
    # altes vdr .ssh Verzeichnis auf das neue System kopieren
    cp -a /srv/netboot/nfsroot/vdr_hardy/var/lib/vdr/.ssh /srv/netboot/nfsroot/vdr_lenny/var/lib/vdr/


    Zu diesem Zeitpunkt sollte man den VDR mit dem tatsächlich dafür vorgesehenen Computer starten.
    Für "Trockentests" kann das System auch mit VMware oder VirtualBox gestartet werden.



    CLIENT


    Auf dem gestarteten VDR Client sollte man sich nun anmelden und zum User root wechseln.


    13. MOTD


    Code
    cat > /etc/motd.tail << EOF
    
    
      Willkommen auf dem
    EOF
    figlet -f big VDR >> /etc/motd.tail
    
    uname -snrvm > /var/run/motd && [ -f /etc/motd.tail ] && cat /etc/motd.tail >> /var/run/motd


    14. LIRC


    LIRC aus dem Repository installieren.


    Code
    aptitude install lirc help2man automake1.7 autoconf libtool dialog setserial
    
    
    # lirc deaktivieren - es wird die CVS Variante genutzt
    /etc/init.d/lirc stop
    update-rc.d -f lirc remove
    aptitude hold lirc


    Den vorhandenen "/dev/ttyS0" (für die erste, serielle Schnitstelle) Eintrag in /var/lib/setserial/autoserial.conf gegen "/dev/ttyS0 uart none" austauschen.


    Code
    grep ^"/dev/ttyS0" /var/lib/setserial/autoserial.conf >/dev/null && sed -i 's$^/dev/ttyS0$#/dev/ttyS0$' /var/lib/setserial/autoserial.conf && echo "/dev/ttyS0 uart none" >> /var/lib/setserial/autoserial.conf
    /etc/init.d/setserial restart


    LIRC aus dem CVS herunterladen.


    Code
    cd /usr/local/src
    cvs -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc login
    cvs -z8 -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc
    cd lirc
    ./autogen.sh


    Für einen seriellen "Home-brew" Empfänger an der ersten seriellen Schnittstelle folgendes auswählen:


    • remote configuratio: Home-brew (16x50 UART compatible serial port)
    • IR transmitter: None
    • serial device: /dev/ttyS0


    Code
    ./setup.sh
    # 1  Driver configuration 
    # 2  Software configuration 
    # 3  Save configuration & run configure
    make
    make install


    Einfaches lirc-cvs Startskript



    lirc automatisch starten


    Code
    mkdir /etc/lirc-cvs
    chmod 755 /etc/init.d/lirc-cvs
    update-rc.d lirc-cvs defaults 20


    Beispiel-Konfigurationsdatei für irexec


    Code
    wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/lircrc -O /etc/lirc-cvs/lircrc


    Die Fernbedienung auswählen.


    Code
    cp remotes/logitech/lircd.conf.logitech /etc/lirc-cvs/lircd.conf # Beispiel
    #wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/lircd.conf.harmony-655 -O /etc/lirc-cvs/lircd.conf


    LIRC starten.


    Code
    /etc/init.d/lirc-cvs start


    LIRC mittels irw testen.


    Code
    irw


    Wenn alles korrekt arbeitet, sieht die Ausgabe in etwa wie folgt aus.


    Code
    00000000a0a020df 00 1 lircd.conf
    00000000a0a020df 01 1 lircd.conf
    00000000a0a0a05f 00 2 lircd.conf
    00000000a0a0a05f 01 2 lircd.conf
    00000000a0a0609f 00 3 lircd.conf
    00000000a0a0609f 01 3 lircd.conf
    00000000a0a010ef 00 4 lircd.conf
    00000000a0a010ef 01 4 lircd.conf
    00000000a0a03ac5 00 OK lircd.conf
    00000000a0a03ac5 01 OK lircd.conf


    15. VDR


    VDR Pakete installieren. Beispiel:


    Code
    aptitude install vdr vdr-plugin-burn vdr-plugin-cinebars vdr-plugin-dvd vdr-plugin-dvdswitch vdr-plugin-epgsearch vdr-plugin-graphlcd vdr-plugin-streamdev-server vdr-plugin-sudoku vdr-plugin-vbox nvram-wakeup
    # aptitude install vdr vdr-plugin-burn vdr-plugin-cinebars vdr-plugin-dvd vdr-plugin-dvdswitch vdr-plugin-epgsearch vdr-plugin-graphlcd vdr-plugin-streamdev-server vdr-plugin-sudoku vdr-plugin-vbox vdr-burnbackgrounds vdr-enigmang-icons vdr-genindex vdr-plugin-extrecmenu vdr-plugin-femon vdr-plugin-screenshot vdr-plugin-skinenigmang vdradmin-am vdr-addon-acpiwakeup
    # ln -s /usr/lib/vdr/svdrpsend.pl /usr/local/bin/svdrpsend.pl


    Als nächstes ist ggf. eine passende channels.conf nach /var/lib/vdr/channels.conf zu kopieren.
    Beispiel für DVB-C Nutzer:


    Code
    /etc/init.d/vdr stop
    zcat /usr/share/doc/vdr/examples/channels.conf.cable.gz > /var/lib/vdr/channels.conf
    /etc/init.d/vdr start


    An dieser Stelle kann man VDR noch etwas an die eigenen Bedürfnisse anpassen.



    Wer seine Fernbedienung bereits angelernt hat, kann seine alte remote.conf nutzen.


    Code
    /etc/init.d/vdr stop
    wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/remote.conf.harmony-655 -O /var/lib/vdr/remote.conf
    chown vdr.vdr /var/lib/vdr/remote.conf
    /etc/init.d/vdr start


    a. vdr-plugin-burn


    Wenn kein DVD laufwerk im VDR vorhanden ist, benötigt das burn Plugin ein Ziel-Verzeichnis.


    Code
    vi /etc/vdr/plugins/plugin.burn.conf


    Beispiel:


    Code
    grep ^"--" /etc/vdr/plugins/plugin.burn.conf 
    --iso=/video/isos


    b. vdr-plugin-dvd


    Wenn kein DVD laufwerk im VDR vorhanden ist, sollte folgende Änderung vorgenommen werden.


    Code
    rm /var/cache/vdr/dvd
    mkdir /var/cache/vdr/dvd


    c. vdr-plugin-graphlcd


    Für das graphlcd Plugin muß VDR auf die parallele Schnittstelle zugreifen dürfen.


    Code
    adduser vdr lp


    Es wird eine zum LCD passende graphlcd.conf benötigt.


    Code
    wget --quiet http://www.on-luebeck.de/kilroy/vdr_lenny_howto/graphlcd.conf -O /etc/graphlcd.conf


    Wenn man nur ein LCD in der graphlcd.conf konfiguriert hat, ist folgende Änderung notwendig.
    Ansosnten ist simlcd entsprechend zu ersetzen.


    Code
    cat /etc/vdr/plugins/plugin.graphlcd.conf
    -c /etc/graphlcd.conf -d simlcd
    
    
    sed -i 's/ -d simlcd//' /etc/vdr/plugins/plugin.graphlcd.conf
    
    
    cat /etc/vdr/plugins/plugin.graphlcd.conf
    -c /etc/graphlcd.conf


    Nach einer Änderung an einer Plugin-Konfiguration muß der VDR neu gestartet werden.


    Code
    /etc/init.d/vdr restart


    d. nvram-wakeup


    nvram-wakeup Konfigurationsdatei für das PC-Chips M811:



    16. HG DVB Treiber



    Code
    # Kerneltreiber wiederherstellen
    rm -rf /lib/modules/$(uname -r)/kernel/drivers/media/*
    cp -a /lib/modules/media-$(uname -r)/* /lib/modules/$(uname -r)/kernel/drivers/media/
    depmod -a



    17. Kernel Update


    Bei einem Kernel Update müssen sowohl der Kernel als auch LIRC und die HG DVB Treiber
    neu übersetzt werden.


    a. Kernel


    Der Kernel kann auf dem meist performanterem Server übersetzt werden.



    Nach dem Verlassen der chroot Umgebung mittels exit wird der neue Kernel in die PXELINUX
    Konfigurationsdatei eingetragen.



    Jetzt muß der VDR CLient Rechner neu gestartet werden. Es wird mit dem neuen
    Kernel gestartet.



    b. LIRC


    Auf dem neu gestarten VDR Rechner wird nun LIRC neu übersetzt.



    Alternativ LIRC auf dem Server übersetzen.



    c. HG DVB Treiber


  • Damit weitere NFS mounts (z.B. /video) zuverlässig eingehangen werden, ist in /etc/default/rcS
    ASYNCMOUNTNFS=no zu setzen.


    Code
    # ASYNCMOUNTNFS abschalten, da /video sonst nicht eingehangen wird
    # siehe auch man rcS
    echo "ASYNCMOUNTNFS=no" >> /etc/default/rcS
  • Update auf Linux Kernel 2.6.33-rc4 eingepflegt.


    ACPI wakeup Problem wurde in diesem Kernel gefixt. Bitte beachten, dass es sich bei dieser Kernel Version um ein "release candidate" handelt.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!