[HOWTO] VDR Client via Netz per NFS booten (Neu: mit debootstrap Installation)

  • Ein lauffähiges System setzt er doch für die erste (umständliche)Vorgehensweis vor oder?
    Bei der zweiten Variante (debootstrap) installiert man doch von Grund auf ein Linux-System in einem Ordner. Wenn ich das richtig sehe wechselt man dann mit chroot in diesem System und kann dann rein theoretisch alles installieren was man haben will so wie z.B. die VDR-Packages (dieser Schritt fehlt ja in der Beschreibung). Am Ende kommt man eben mit exit wieder raus und hat somit einen VDR-Client in einem Verzeichniss auf einem laufenden Betriebssystem installiert.


    Stimmt das soweit oder habe ich hier noch einen Denkfehler?

  • Müsste so passen.


    Sorry, hatte die Anleitung nur "quer" gelesen.


    Gruss


    Macavity

    Capulet:
    HW: Dell Dimension 3100, Pentium 4 3GHz, 2GB RAM, 160GB HDD (System), 1TB HDD (Video), 1 x TT S2-1600, 1 x Technisat Skystar HD | SW: Debian 7.4, VDR 2.0.4 (selfcompiled), dummydevice 2.0.0, streamdev-server 0.6.1, NFS-Server


    TiViPi01:
    HW: Raspberry Pi Mod. B Rev. 2, 512MB RAM, 8GB SD-Card, Teko TEK-BERRY.9 Gehäuse, Ednet 85024 USB 2.0 Hub, Digitainer X10 Funk-Fernbedienung | SW: Raspbian 01/2014, VDR 2.0.4 (selfcompiled), rpihddevice 0.0.8, ffmpeg 1.0.8, streamdev-client 0.6.1, NFS-Client

  • Dann werde ich das heute abend gleich mal testen und hoffen das es so tut wie erwartet. Die Installation der VDR-Packages hat kilroy ja bereits hier unter Punkt 7 beschrieben.


    Damit sollte es dann ja also mit Hilfe von debootstrap möglich sein einen VDR-Client in einem Verzeichniss eines laufenden Linux-OS zu installieren und anschließend per PXE zu booten.

  • Quote

    Original von DonGyros
    Damit sollte es dann ja also mit Hilfe von debootstrap möglich sein einen VDR-Client in einem Verzeichniss eines laufenden Linux-OS zu installieren und anschließend per PXE zu booten.


    Ja.


    Gruss


    Macavity

    Capulet:
    HW: Dell Dimension 3100, Pentium 4 3GHz, 2GB RAM, 160GB HDD (System), 1TB HDD (Video), 1 x TT S2-1600, 1 x Technisat Skystar HD | SW: Debian 7.4, VDR 2.0.4 (selfcompiled), dummydevice 2.0.0, streamdev-server 0.6.1, NFS-Server


    TiViPi01:
    HW: Raspberry Pi Mod. B Rev. 2, 512MB RAM, 8GB SD-Card, Teko TEK-BERRY.9 Gehäuse, Ednet 85024 USB 2.0 Hub, Digitainer X10 Funk-Fernbedienung | SW: Raspbian 01/2014, VDR 2.0.4 (selfcompiled), rpihddevice 0.0.8, ffmpeg 1.0.8, streamdev-client 0.6.1, NFS-Client

  • Quote

    Original von DonGyros
    Damit sollte es dann ja also mit Hilfe von debootstrap möglich sein einen VDR-Client in einem Verzeichniss eines laufenden Linux-OS zu installieren und anschließend per PXE zu booten.


    Wenn dir dies vollständig gelungen (vdr-Pakete, Lirc?, Kernel-Update?) sein sollte wäre ich an deinen Erfahrungen sehr interessiert. Habe mich selbst mal mit debootstrap versucht und bin genau dort gescheitert (nachdem die Installation des eigentlichen Systems wirklich komfortabel war...). Für den nächsten client wäre es jedoch wirklich eine alternative Herangehensweise...


    Gruß


    Andi

    registered vdr-user: 1318


    file/vdr-server: ASRock Q1900M, SSD, 2TB HD, 1xDVBSky S952 v3 mit 2xDVB-S2, stretch+e-tobi, vdr 2.4.0-2~etobi1

  • Quote

    mit Hilfe von debootstrap möglich sein einen VDR-Client in einem Verzeichniss eines laufenden Linux-OS zu installieren und anschließend per PXE zu booten.


    also ich fuehre die Installation erst mal per debootstrap durch. In etwa so wie her beschrieben (z.T. leider schon etwas veraltet)
    http://www.debian.org/releases/testing/i386/apds03.html.en [32BIT]
    http://alioth.debian.org/docma…1/debian-amd64-howto.html [64BIT]
    dann installiere ich kernel + grub.


    Erst wenn der Boot ueber grub vom lokalen System funktioniert,
    baue ich auf pxeboot/etherboot um. So kann man evtl. Fehler leichter erkennen.

  • Quote

    Original von sparkie
    Erst wenn der Boot ueber grub vom lokalen System funktioniert,
    baue ich auf pxeboot/etherboot um.


    Ist sicherlich eine Variante, setzt doch aber voraus, dass du Server und client auf der gleichen Architektur am Laufen hast, oder?

    registered vdr-user: 1318


    file/vdr-server: ASRock Q1900M, SSD, 2TB HD, 1xDVBSky S952 v3 mit 2xDVB-S2, stretch+e-tobi, vdr 2.4.0-2~etobi1

  • Quote

    dass du Server und client auf der gleichen Architektur am Laufen hast, oder?


    eigentlich sollte es dem NFS Server egal sein, fuer welche Architektur er seine Dienste bereitstellt.
    Ich habe hier einen NFS Server mit 32bit etch fuer NFS Clients mit 64bit lenny. Geht ohne Probleme. Ob es zwischen einem Server mit SPARC und Client/Intel auch so einfach geht weiss ich nicht.
    Oder was meinst du mit 'gleiche Architektur'?

  • Na ich habe hier einen Server auf AMD-Basis am Laufen. Die clients sind jedoch auf PII-Basis. Wenn ich jetzt auf dem Server per debootstrap einen client "installiere", habe ich doch ein Problem diesen Server-seitig in grub einzubinden und auf diesem System (vor der Umstellung auf PXE-boot) zu testen, oder nicht? So hatte ich deinen Vorschlag zumindest verstanden...

    registered vdr-user: 1318


    file/vdr-server: ASRock Q1900M, SSD, 2TB HD, 1xDVBSky S952 v3 mit 2xDVB-S2, stretch+e-tobi, vdr 2.4.0-2~etobi1

  • Quote

    Na ich habe hier einen Server auf AMD-Basis am Laufen. Die clients sind jedoch auf PII-Basis. Wenn ich jetzt auf dem Server per debootstrap einen client "installiere", habe ich doch ein Problem diesen Server-seitig in grub einzubinden und auf diesem System (vor der Umstellung auf PXE-boot) zu testen, oder nicht? So hatte ich deinen Vorschlag zumindest verstanden...


    ok ich verstehe jetzt, wie du es meinst. Nein, ich installiere gar nicht auf dem Server sondern immer
    auf dem Client (auf einer temporaeren Platte). Den initialen Client-Boot mache ich ueber ein Mini-Debian
    z.B. von USB Stick. Erst wenn der Client lokal auf Platte
    grundsaetzlich aufgesetzt ist und alles funktioniert, kopiere ich das System
    komplett auf den Server und boote ab jetzt
    ueber Netz. Ab jetzt folgen weitere Installationen diskless.


    Das Zielsystem sofort auf dem Server per debootstrap hochzuziehen ist (vermutlich) schwierig wenn nicht unmoeglich.
    Beispiel:
    Eine 64bit debootstrap Installation setzt z.B. einen laufenden 64bit Kernel voraus, eine Bedingung die auf dem Server gar nicht unbedingt gegeben ist.

  • Hi,


    was ist eigentlich der Vorteil von PXE/TFTBOOT gegenüber NFS-Root?


    Man kann doch dem Kernel einen neuen Root-Pfad mitgeben, also anstatt

    Code
    1. root=/dev/hdx


    Code
    1. root=/dev/nfs ip=<client_ip>:<server_ip>:<gateway_ip>:<subnet_mask>:<hostname>:<device>:<conf> rw nfsroot=<server_ip>:<NFS_Pfad>


    Das sieht zwar im ersten Moment "wüst" aus, aber wenn das einmal steht (und das geht schnell) dann ist das ne saubere sache finde ich.


    Klaus hat mal ne nettes Howto dafür gemacht


    Man spart sich PXE/TFTBoot und auch DHCP (wobei letzteres auch ein Router sein kann)


    MfG
    Kris

  • Quote

    was ist eigentlich der Vorteil von PXE/TFTBOOT gegenüber NFS-Root?


    Man kann doch dem Kernel einen neuen Root-Pfad mitgeben, also anstatt


    du gehst offenbar davon aus, dass auf dem Client immer schon ein Kernel vorhanden ist.


    Mit PXE brauchst du nur eine PXE faehige Karte und die entsprechende BIOS EInstellung.
    ALles andere kommt vom Server (einschliesslich Kernel und initrd)

  • Hi,


    Quote

    du gehst offenbar davon aus, dass auf dem Client immer schon ein Kernel vorhanden ist.


    Das stimmt, aber das ist doch heutzutage keine Hürde. ?!


    Ich habe das hier sowohl mit der S100 DOM und mit einem USB Stick am laufen. Letzteres ist echt genial, wenn man was "upgraden" möchte oder man die menu.lst vergurkt hat, steckt man es ab und woanders wieder ein und ändert das ganze. (hab den Stick mit Fat32 gemacht)


    Man ist sogar deutlich flexibler, je nach Kernel kann man so verschiedene Hardware booten.


    Sogar "Jugendschutz" ist drin, stöpsel weggelegt keiner kann mehr gucken *fg*


    MFg
    Kris

  • Quote

    Original von sparkie
    du gehst offenbar davon aus, dass auf dem Client immer schon ein Kernel vorhanden ist.
    Mit PXE brauchst du nur eine PXE faehige Karte und die entsprechende BIOS EInstellung.
    ALles andere kommt vom Server (einschliesslich Kernel und initrd)


    Genau das ist ja der Witz bei dieser Variante. Auf dem Client benötige ich nur
    die bootfähige NIC und sonst gar nichts (an Software und Laufwerken).


    Ein 64bit System wird man auf einem 32bit Server wohl nicht per debootstrap
    hochziehen können; habe ich aber noch nicht getestet.


    Andi011 :
    Wenn es an die Installation von lirc oder anderen zu übersetzenden Programmen
    geht, sollte man dies nicht mehr per chroot machen, da sonst auf den Kernel
    der Servers zugegriffen wird. Zu diesem Zeitpunkt sollte man spätestens auf
    dem tatsächlichen Client arbeiten. Das reine Installieren von Paketen im chroot
    ist i.A. aber kein Problem.


    Grundsätzlich nutze ich debootstrap bis ich ein lauffähiges Minimalsystem auf
    dem Client starten kann.

  • Quote

    Ein 64bit System wird man auf einem 32bit Server wohl nicht per debootstrap
    hochziehen können; habe ich aber noch nicht getestet.


    das habe ich testweise mal gemacht. Spaetestens beim 'chroot' aus einer 32 in die 64bit Umgebung steigt er dann aus.

  • Also das Grundsystem habe ich gestern abend noch installieren können. Beim Versuch dieses mal über PXE zu booten ist er aber ausgestiegen da er das rootfs nicht mounten konnte. Hatte dann auch keine Lust dem nachzugehen da mir das Ganze doch zu fehleranfällig erschien (vor allem das Aufsetzen eines VDR Clients mit allen benötigten Abhängigkeiten).


    Habe dann erstmal Mahlzeit 4.0beta2 genommen und auf dem Client auf einem IDE Flash Modul installiert. Das ging doch recht komfortabel und war nach in wenig Handarbeit dann letztendlich auch möglich. Jetzt muss ich nur noch testen ob der VDR-Client auch wirklich einen Stream übers Netzwerk empfangen kann und diesen darstellt (dazu muss ich die ganze Hardware heute erstmal in mein zukünftiges Heim schaffen denn nur dort hab ich ne Sat-Anlage). Der Boot- und VDR-Streaming Server laufen aber soweit. Konnte das bereits mit VLC auf einem Client testen. Wenn jetzt mein Mahlzeit-Client so tut wie erwartet dann bin ich erstmal ganz glücklich.
    Als nächsten Schritt möchte ich dann gern das Installierte OS auf dem Flash Modul PXE bootfähig machen. Das sollte ja aber an sich auch irgendwie gehen.

  • Hallo!

    Quote

    Original von kilroy
    Ein 64bit System wird man auf einem 32bit Server wohl nicht per debootstrap
    hochziehen können; habe ich aber noch nicht getestet.


    Habe nach deiner Anleitung zumindest ein 32bit-System auf einem 64bit-Server mit debootstrap installieren können. Nur boot per PXE war dann nicht möglich, weil ich den Kernel nicht mit NFS-root updaten konnte. Werde mich da aber nochmal versuchen...


    Hier habe ich genau das oben beschriebene Problem. Ohne NFS-root im Kernel kein PXE-boot, damit kein Starten eines Minimalsystems auf dem client. Zumindest bis jetzt...


    Quote

    Original von DonGyros
    Also das Grundsystem habe ich gestern abend noch installieren können. Beim Versuch dieses mal über PXE zu booten ist er aber ausgestiegen da er das rootfs nicht mounten konnte. Hatte dann auch keine Lust dem nachzugehen da mir das Ganze doch zu fehleranfällig erschien (vor allem das Aufsetzen eines VDR Clients mit allen benötigten Abhängigkeiten).


    Sollte genau das von mir beschriebene Problem sein...


    Gruß


    Andi

    registered vdr-user: 1318


    file/vdr-server: ASRock Q1900M, SSD, 2TB HD, 1xDVBSky S952 v3 mit 2xDVB-S2, stretch+e-tobi, vdr 2.4.0-2~etobi1

  • Quote

    Original von DonGyros
    Als nächsten Schritt möchte ich dann gern das Installierte OS auf dem Flash Modul PXE bootfähig machen. Das sollte ja aber an sich auch irgendwie gehen.


    An sich benötige ich doch für dieses Vorgehensweise (PXE) nur den Kernel und eine initrd. Die initrd kann ich mir doch mit mkinitrd erstellen und alle benötigten Dateien/Pfade (theoretisch alles ab / ) des installierten Systemes aufnehmen.
    Somit hätte ich doch dann theoretisch ein voll lauffähiges PXE Boot Image das sich der Client komplett ins RAM laden kann.

  • Quote

    Original von DonGyros
    An sich benötige ich doch für dieses Vorgehensweise (PXE) nur den Kernel und eine initrd. Die initrd kann ich mir doch mit mkinitrd erstellen und alle benötigten Dateien/Pfade (theoretisch alles ab / ) des installierten Systemes aufnehmen.


    Nicht vergessen, den Kernel (und ggf. initrd) dem tftpd bekanntgeben. Aktuelle
    Distributionen bringen einen NFS-Root fähigen Kernel bereits mit. Beispiel:


    Code
    1. # trillian 172.17.42.7
    2. LABEL linux
    3. KERNEL vmlinuz-2.6.22-14-generic-3
    4. APPEND initrd=initrd.img-2.6.22-14-generic-3 root=/dev/nfs nfsroot=172.17.42.1:/netboot/nfsroot/trillian,v3,rsize=65536,wsize=65536
    5. IPAPPEND 1
    Quote

    Somit hätte ich doch dann theoretisch ein voll lauffähiges PXE Boot Image das sich der Client komplett ins RAM laden kann.


    Das ist der Plan. ;D

  • Das Mounten des rootfs über NFS ist aber nur nötig wenn ich wirklich Client-seitig z.B. diverse Sachen über das OSD einstelle und die Änderungen bei einen Neustart nicht verlieren will.
    Meine angestrebte Lösung sieht folgendes vor:


    Ausgangssituation: zentraler Budget TV-Streaming-Server mit mehreren Clients(nur Softdevice-Plugin in Verbindung mit Streamdev-Client)


    - einmalige Installation einer fertigen Distribution auf ein Flash Modul (in meinem Fall Mahlzeit) und korrektes Einrichten des VDR-Client
    - Samba Freigaben eines NAS einbinden/mounten (hier legt auch der Server die Aufnahmen ab)
    - aus dieser Installation kann man sich dann wie gesagt den Kernel und eine initrd holen und diese Dateien dem tftpboot-Server zur Verfügung stellen
    - nun kann jeder Client sich das VDR-Image vom Bootserver abholen und komplett ins RAM laden
    - da geplant ist im Betrieb keine Client-seitigen Änderungen vorzunehmen (nur Kanalwechsel, Aufnehmen und Aufnahmen abspielen), wird somit auch kein persistentes Filesystemtem für die Clients benötigt