Aufsetzen einer VDR-Maschine

  • Gedacht sind diese Zeilen für diejenigen, die einen schlanken VDR aufsetzen möchten, bei dem sie (auf einer anderen Maschine) für diesen VDR auch entwickeln können. Nicht gedacht ist dieser braindump für Leute, die nach der Installation einen VDR "nur" benutzen möchten - absolut legitim, nur dafür gibt es bereits schickere Lösungen (z.B. LinVDR).



    00. Warum gentoo?

      Meiner Ansicht nach hat gentoo die modernste und flexibelste Paket- und Systemverwaltung. Zu dem Preis, dass die Pakete beim Installieren übersetzt werden, was deutlich länger dauert, als das Kopieren von fertig übersetzten Paketen wie bei anderen Distributionen.
      Dafür bekommt man ein konsistentes System, welches selbstständig die Abhängigkeiten beachtet und bei dem man keine Versionen mehr installieren muss (denn bei gentoo gibt es in dem Sinn keine Versionen mehr).
      Ein update kann jederzeit erfolgen - je nachdem, wie lange das letzte update her ist und welche cpu in der Kiste werkelt, kann sich so ein update allerdings schon mal über ein WE erstrecken.


    ... und noch subjektiver:

      Ich suchte einen Weg, den VDR auf einer kleinen Maschine lauffähig zu haben und den gleichen VDR in einer Entwicklungsumgebung im Netz bearbeiten zu können. Durch die momentane Praxis (keine Quellen bereit zu stellen) bei den Paketen für LinVDR ist dies für mich nicht mehr gegeben, sodass ich nach einer neuen Lösung gesucht habe.
      Ich hoffe mal, dies jetzt gefunden zu haben.
      Es gibt immer noch sehr viel, was ich NICHT von gentoo weiß, aber mit dem Rest bin ich schon sehr zufrieden!


    Logisch, dass diese Variante einen viel höheren Einarbeitungsaufwand erfordert, als z.B. das Aufsetzen einer Entwicklungsumgebung für LinVDR, aber ich denke es lohnt sich.



    0. Einleitung:

      Was man unbedingt gelesen haben sollte:


      http://forums.gentoo.org/viewtopic-t-193199.html und hier insbesondere die Links unter 'Portage und Programmierung', sowie 'Dinge, die man mit Portage besser nicht machen sollte'.


      Wer keinen DSL-Anschluss hat, ist sicher an folgenden Tips interessiert (... obwohl, meiner Ansicht nach sollte JEDER dafür sorgen, dass nicht unnötig viel Bandbreite verschwendet wird, auch wenn man selber vielleicht ne Flatrate hat):
      http://forums.gentoo.org/viewtopic-t-215401.html und http://forums.gentoo.org/viewtopic-t-173433.html


      Weitere hilfreiche Tips findet man unter: http://de.gentoo-wiki.com/


      Weil es an allen Ecken immer wieder noch als Tip auftaucht, will ich es hier nochmal betonen:
      ACCEPT_KEYWORDS ist NUR für Testzwecke legitim. Wer ein stabiles System wünscht, welches sich ohne Probleme updaten läßt, sollte dieses Konstrukt unter allen Umständen vermeiden!

      Wer Probleme bei der Installation bekommt, ist sicher im Gentoo-Forum vom vdrportal besser aufgehoben, als in den Foren von Gentoo.
      Mein Eindruck ist der, dass hier (bei vdrportal) die Menschen hilfsbereiter, toleranter und nicht zuletzt auch verständnisvoller sind, als in anderen Foren.
      Das ist auch der Grund, warum mein erster Anlauf mit gentoo schief ging.
      In anderen Foren gibt es einfach zu viele Möchtegern-Spezialisten, die lieber schimpfen anstatt eine Frage richtig zu lesen...



    1. Basis-System gemäß Gentoo-Handbuch installieren (incl. grub und Neustart).

      Tips dazu:

    • für remote-Installation: Netzwerk einrichten (vor chroot):
      Wer ein Netzwerk hat und die Installation gerne remote betreuen möchte, kann dies auch tun. Auf der live-CD von gentoo ist schon alles drauf, was man dazu braucht.
      Es sind lediglich folgende Konfigurationsdateien anzupassen:
      /etc/networks
      /etc/hosts
      /etc/resolv.conf


      Ferner sollte noch ein Kennwort für root eingerichtet werden ( passwd )


      Dann kann über '/etc/init.d/sshd start' der ssh-Server gestartet werden.
      Der Rest der Installation kann dann über ssh remote erfolgen.


    • /etc/make.conf kontrollieren, wobei die USE-Variable nur die Schalter enthalten sollte, die sich zum Einen auf die Hardware beziehen, wie z.B. 3dnow, mmx, etc. sowie allgemeine Dinge wie X und/oder gtk, gnome, kde.


    • Ein guter Ausgangspunkt für einen Kernel für VDR ist Coopers config von LinVDR
      Vom Einsatz einer eigenen Kernel-Namens-Erweiterung möchte ich abraten, denn ich hatte Probleme, dass die dvb-Treiber aus dem cvs unter einer anderen Kernel-Bezeichnung installiert wurden und somit nach dem reboot nicht gefunden wurden.


      gzip -d config.gz && mv config config.LinVDR
      make mrproper && cp config.LinVDR .config && make menuconfig

      hierbei noch überprüfen, ob auch das Lieblings-FS im Kernel enthalten ist
      und - WICHTIG: dvb-Support im Kernel abwählen! - der wird separat installiert.


      Kernel backen mit: make && make install modules_install


      WICHTIG: Nicht die dvb-Treiber des Kernels verwenden, sondern aus dem cvs (Ganz easy, da eigenes gentoo-Paket).
      Hat mich etliche Stunden und ein paar graue Haare mehr gekostet, um heraus zu finden, dass die dvb-Treiber des Kernels (zumindest bei mir) nicht funzen. DVB-Treiber Howto


    • '/etc/modules.autoload.d/kernel-2.6' anpassen



    2. Overlay für deutsches Gentoo einrichten:

      mkdir /usr/local/overlays
      emerge gentoolkit gentoolkit-dev


      '/etc/gensync/gensync.conf' kontrollieren auf: base_overlay=/usr/local/overlays/

      echo 'PORTDIR_OVERLAY="/usr/local/overlays"' >> /etc/make.conf

      '/etc/gensync/gentoo-de.syncsource' erstellen mit:
      id="gentoo-de"
      description="gentoo.de Portage Overlay"
      rsync="rsync://rsync.gentoo.de/gentoo-de-ebuilds"
      overlay="gentoo-de"


      gensync gentoo-de


      (alias mysync='emerge --sync && gensync gentoo-de' in /etc/profile zufügen)


    2a. persönliche Empfehlung für die Vorbereitung

      Paket eix installieren: emerge eix
      danach den eix-cache erzeugen mit: update-eix
      alle weiteren syncs sollten über eix-sync erfolgen.

    WARUM?

      eix ist ein kleines und schnelles Werkzeug um Paketinformationen zu suchen und anzuzeigen. Dabei kann eix mit den unterschiedlichsten Wildcard-Varianten umgehen (default ist regexp :) )


      (alias mysync='gensync gentoo-de && eix-sync' in /etc/profile zufügen, bzw. ändern)



    3. Installation vorbereiten

      Eine Text-Datei erstellen, in der jede gewünschte Anwendung eine Zeile belegt.
      Hierbei können 'eix' und 'http://packages.gentoo.org' gute Dienste leisten.
      Bei der Textdatei ist es nicht nötig, sich um Abhängigkeiten zu kümmern!


      Es macht Sinn, die Plugins für den vdr in eine separate Datei (z.B. '/etc/portage/vdr-plugins.txt') zu schreiben.
      So können nach einem update des VDR die Plugins rel. einfach mitgezogen werden.
      Einfach dazu dann ein 'emerge $(< /etc/portage/vdr-plugins.txt)' eingeben und das Schönste dabei:
      Es ist egal, ob es für ein plugin eine neuere Version gibt oder nicht - man bekommt auf jeden Fall die neuesten Plugins passend zum VDR gebaut.


      In '/etc/portage/package.keywords' werden die Pakete eingetragen, von denen man jeweils die neueste Version installieren möchte:
      z.B. media-video/vdr ~x86


      In '/etc/portage/package.mask' werden die Pakete eingetragen, die man auf garkeinen Fall installieren möchte:
      z.B. x11-base/xorg-x11

      Für diejenigen, die den VDR auf mehreren Maschine pflegen möchten, macht es ganz besonders Sinn,
      - die USE-Flags in Anwendungs- und System-Schalter zu trennen.
      - Die Anwendungs-Schalter werden in '/etc/portage/package.use' eingetragen: z.B.: media-video/vdr aio -bigpatch setup-plugin -subtitles yaepg


      Wenn man dann die '/etc/portage/package.use' auf alle relevanten Maschinen kopiert, unterscheiden sich die Anwendungen nur in den System-Einstellungen (wie z.B. cpu, mmx, sse2, etc.).

      Vor jeder (Teil-)Installation sollte überprüft werden, was denn installiert werden soll.
      In der Annahme, dass die Namen der gewünschten Anwendungen in einer Datei namens '/etc/portage/vdr-packages.txt' gespeichert wurden, kann die Überprüfung wie folgt angestoßen werden:
      emerge -pv -tree $(< /etc/portage/vdr-packages.txt)


      Anhand der Ausgabe können noch die USE-Flags oder andere Einstellungen geändert werden. Oft ist es so, dass das Freischalten der Testversion eines Paketes zu der Meldung führt, dass ein anderes Paket blockiert ist.
      Meist kann dies aufgelöst werden, indem das entsprechende Paket ebenfalls in die '/etc/portage/package.keywords' aufgenommen wird - mit dem Schlüssel '~x86'.

      Wenn man z.B. einen VDR ohne X aufsetzen möchte, ist es hilfreich, X in '/etc/portage/package.mask' aufzunehmen. Bei der Installationsüberprüfung werden dann die Pakete aufgeführt, die Abhängigkeiten zu X haben, sodass man entscheiden kann/muss, ob auf das Paket verzichtet werden kann, oder ob X installiert werden muss.


      Leider hat z.B. vdrsync eine Abhängigkeit zu X, obwohl der wichtigste Verarbeitungsteil auch ohne X funktioniert.
      Bei solchen Spezialfällen kann es Sinn machen, das Gewünschte manuell zu installieren ;D



    4. Anwendungen installieren

      wer nicht die ganze Installationphase online sein möchte, kann den download auch vor dem build ausführen:
      emerge --fetchonly $(< /etc/portage/vdr-packages.txt)

      und zu guter Letzt der eigentliche Installationsmarathon:
      emerge $(< /etc/portage/vdr-packages.txt) 2>&1 | tee vdr-packages.log


      Nach dem Installieren sollten die Anwendungen noch konfiguriert werden. Neben /etc ist bei gentoo viel davon unter /etc/conf.d zu finden.


      Bei der DVB-Karte gibt es noch eine Besonderheit:
      Beim Laden des Moduls wird zwar die Firmware mitgeladen, nicht jedoch das udev-Device erzeugt.
      Auch coldplug hilft hier nicht weiter, es muss hotplug aktiviert werden:
      rc-update add hotplug default



    5. Abspecken


      Wer nach erfolgreicher Installation ein df/du macht und die Ausgaben z.B. mit einem installierten LinVDR vergleicht wird schnell ernüchtert.
      Die (erfolgversprechende) Diät nennt sich busybox. Ein 'busybox --help' oder unter LinVDR ein 'ls -lR | grep busybox' zeigt auf, wo Einsparpotential vorhanden ist.
      Die Entschlackung erfolgt durch das Ersetzen eines unterstützten Befehls durch einen Softlink zu busybox. Hilfreich wäre, das Ersetzen der Befehle in ein script auszulagern, sodass die Entschlackung nach einem update erneut durchgeführt werden kann.
      Im Netz läßt sich dann z.B. noch /usr/portage auslagern, was auch nicht zu verachten ist.



    6. Wie geht's weiter?


      regelmäßig ein 'mysync' (siehe Punkt 2) durchführen mit anschließendem 'emerge -uD world' (ein 'emerge -uDpv world' zeigt, was geändert werden soll).
      Für den Fall, dass bei Konfigurationsdaten Neuerungen eingeführt werden, die man bereits editiert hat, hilft ein 'etc-update' bei der Verwaltung.


      Wer (wie ich) den VDR auch mal kurz ohne Fernseher ausprobieren möchte, hat vielleicht Interesse an fbtv. Damit fbtv nicht die Vorherrschaft über den VDR übernimmt (fbtv hat ein recht einnehmendes Wesen), muss es entsprechend beruhigt werden.
      Dafür habe ich einen Patch beigefügt. In Anhang findet sich auch eine Vorlage für ein /etc/portage.



    7. Der Lohn der Mühe ...


      ist ein System, welches sich komplett remote verwalten und updaten läßt, ohne den Bedarf nach einem DVD- oder CD-Laufwerk


    Kommentare, Korrekturen und/oder Verbesserungen sind erwünscht und gern gesehen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!