Hallo Vdr'ler,
Seit einiger Zeit nutze ich erfolgreich ctVDR inkl. Toby's ,Bigpatch' Variante.
Mit den ganzen klasse Howtos aus dem Board läuft mein VDR-Rechner mit einem 2.6.7er Kernel, AC3over DVB, etc. Also alles was das Herz sich so wünscht
Nochmal Danke an alle, die sich hier so viel mühe geben Noobs glücklich zu machen. :thumbs
Da ich von Haus aus Neugierig bin und ein Version-Junkie habe ich mich mal hingesetzt und wollte die 1.3.12er version testen. Und da ich mich nun auch mal dankbar zeigen möchte schliesse ich mich in der Reihe der Howtos-schreiber an.
VORAB: Lest euch das Howto erstmal komplett durch, bevor ihr anfangt! Und bitte seid Gnädig, denn:
-1 Ich bin kein Linux-Profi
-2 Dies ist mein erstes Howto
-3 und ich versuche mein bestes
Denkt bitte daran, das ihr danach nicht mehr einfach mit apt-get das vdr-system aktualisieren könnt, auch Plugins, Addons und Patches müssen dann von Hand selber angelegt werden.
Der Vorteil ist aber eindeutig einfach mal den "neuen" VDR zu erleben, der einige bequemlichkeiten mehr bietet, und ihr lernt das System natürlich viel besser kennen, und könnt in problemfällen viel souveräner agiereren. Ich lege mit Absicht die 1.3.12 auf einer Alternativen Partition an, um damit testen zu können, und um das ganze besser verstehen und kennenzulernen.
Ein weiterer Nachteil ist erstmal, das keines der Plugins unter VDR 1.3.12 laufen, die man bisher unrter 1.2.6 hatte, man muss alle neu kompilieren. Das heisst, es ist natürlich wesentlich mehr Arbeit, bis man das System mit allen seinen features am laufen hat. Aber dafür kann man ja den Original weiter zum vdrsehen nutzen, bis alles nach seinen Wünschen läuft.
Hinweis an den Mod: Wenn das Howto den Kriterien entsprechen sollte kann es ruhig verschoben werden
Gut, dann nun endlich zum Thema:
Voraussetzung ist eine 2. Partition (ca. 1,5GB) für eine Entwicklungsumgebung!
Mein System läuft auf einem 2.6.7er Kernel, inkl. aller updates mittels apt-get. in wieweit das wichtig ist, kann ich nicht sagen, möchte es aber erwähnen.
[Optional]
Ich habe vorab ctVDR 2.06 per CD installiert und mit der apt-ressources liste von e-toby (http://www.e-toby.net) aktualiesiert.
Nachdem der VDR nun erfolgreich lief, habe ich mich drangesetzt um den Kernel auf 2.6.7 zu aktualisieren. [HowTo]
Wenn auch hier nach der Aktualisierung alles wie gewünscht läuft, und man erfolgreich auf den 2.6.7er Kernel wechseln konnte. kann es dann weiter gehen. Ich erwähne das deshalb, da der upgrade zum neuen Kernel etwas tricky sein kann, vorallem was die Verarbeitung der Firmware betrifft. Sollte es dabei Probleme geben, kann es sein, das durch den neuen Kernel das Paket hotplug (apt-get install hotplug) fehlt, um die firmware für den dvb-ttpci-01.fw zu laden, ansonsten per Suche mal forschen, das Thema ist hier recht gut bearbeitet worden.
[/Optional]
Um nun weiter arbeiten zu können, ohne mein laufendes System zu zerschiessen, habe ich mir mittels Knoppix eine Kopie auf eine 2. Partition erstellt, mit der ich hinterher arbeiten will.
Vorteil ist wirklich, das man sein bestehendes System keiner Gefahr aussetzt, und man auf der 2.Partition im Notfall von vorne beginnen kann. Wer das Risioko liebt, darf die ruhig ignorieren
Knoppix:
System von der eingelegten Knoppix-CD starten. Da ich keine Maus an meinem VDR-Rechner habe, hangel ich mich per Tastatur durch, was aber für unser Backup recht einfach geht.
Sobald das System gebootet ist, öffne ich mir eine Konsole mit
[alt] [F2] -> konsole -> [enter]
Auf dem Desktop sieht man zwar die Symbole für die Partitionen/HDD aber diese werden erst bei klick gemountet. folglich, da wir per konsole arbeiten, wechseln wir hier in den su-modus (root)
su [enter]
Dann mit
mount /dev/hdxx /mnt/hdxx [enter]
die beiden partitionen einbinden. xx steht hier für die festplatte (hda1, hda2 oder hdb1, etc). Da wir beide Partitionen brauchen, binden wir natürlich auch die 2. an der entsprechenden stelle ein.
Wenn die hdd's eingebunden sind öffnen wir den midnight commander:
mc [enter]
wir wechseln nun in die jeweiligen partitionen, ich gehe der übersichtlichkeit so vor, das ich links bsp. hda1 habe und rechts hda2, auf der die kopie landen soll.
Folglich wechsel ich links in /mnt/hda1 und markiere alles mit [Einfg].
Ich wechsel die Seite mit [tab] und öffne /mnt/hda2.
wieder zurück nach lins mit [tab] und mit [F5] schubse ich alles auf hda2.
Je nachdem holt man sich nun einen kaffe *fg*
wenn das kopieren abgeschlossen ist, beende ich mit [F10] den mc und gebe dann auf der konsole
reboot [enter]
ein.
Das System hat nun auf unserem original vdr gestartet, die 2.Partition hat er noch nicht eingebunden, da er sie noch nicht kennt, aber das wird er jetzt lernen.
Ich lege nun mit
mkdir /vdr2 [enter]
ein neues Verzeichniss an, in dem später die devel-partition eingebunden sein soll. ob man sie vdr2 nennt, oder bratwurst *g* bleibt jedem selbst überlassen, nur sollte man einen aussagekräftigen namen verwenden um die Übersicht zu behalten.
Nach dem das Verzeichniss angelegt wurde, muss die datei fstab bearbeitet werden.
mcedit /etc/fstab [enter]
Hier füge ich nun die Zeile für die devel-partition ein:
/dev/hdxx /vdr2 ext3 defaults 0 0
mit [F2] speichere ich das script nun ab, und verlasse den mc mit [F10]
um zu testen ob ich alles richtig angegeben habe und weiterarbeiten zu können ohne reboot prüfe ich mit
mount /vdr2 [enter]
ob die 2.Partition einghangen wird.
Wenn vdr2 eingebunden wurde wechsel ich nach
cd /vdr2/etc [enter]
und bearbeite dort die entsprechende fstab datei. Da hier das alternativ system liegt muss ich die Kopie korigireren, damit sie nachher beim booten die richtigen pfade einbindet:
Zitat
[...]
/dev/hda2 / ext3 defaults 0 0 < Root-Partition
/dev/hda1 /vdr1 ext3 defaults 0 0 < Original Partition
[...]
Ich beende mc mit [F2] und [F10] und erstelle dann das Verzeichniss in dem hinterher der Original-VDR gemountet wird
mkdir /vdr2/vdr1 [enter]
Wenn das passiert, mache ich mich erstmal an lilo dran, um auch von dort booten zu können:
mcedit /etc/lilo.conf
Dort finde ich ungefähr diesen eintrag:
ZitatAlles anzeigen
[...]
timeout = 20
delay = 20
vga=normal
default="VDR 1.2.6"
image = /boot/vmlinuz-2.6.7
label = "VDR 1.2.6"
root = /dev/hda1
initrd = /boot/initrd.img-2.6.7
append = "apm=power-off noapic acpi=off"
read-only
image = /boot/vmlinuz
label = Linux
root = /dev/hda1
initrd = /boot/initrd.img
append = "apm=power-off noapic acpi=off"
read-only
image = /boot/memtest86.bin
label = Speichertest
[...]
ich bearbeite die lilo.conf so, das ich eine weiter boot option erhalte, bsp:
ZitatAlles anzeigen
[...]
timeout = 20
delay = 20
vga=normal
default="VDR 1.2.6"............................<----------------- StandardSystem das Gebootet wird
image = /boot/vmlinuz-2.6.7
label = "VDR Devel"...........................<---------------- Bezeichnung
root = /dev/hda2...................................<---------------- Ort des Kernels
initrd = /boot/initrd.img-2.6.7
append = "apm=power-off noapic acpi=off"
read-only
image = /boot/vmlinuz-2.6.7
label = "VDR 1.2.6"
root = /dev/hda1
initrd = /boot/initrd.img-2.6.7
append = "apm=power-off noapic acpi=off"
read-only
image = /boot/vmlinuz
label = Linux
root = /dev/hda1
initrd = /boot/initrd.img
append = "apm=power-off noapic acpi=off"
read-only
image = /boot/memtest86.bin
label = Speichertest
[...]
Ich beende wieder den mc mit [F10] und bestätige das speichern der datei mit >Ja<.
nun führe ich lilo mit
lilo [enter]
aus. Als Standard boot-system habe ich den Original VDR beibehalten. Wenn alles glatt gegangen ist, bekomme ich bsp. folgende meldung:
Zitat
Added VDR Devel
Added VDR 1.2.6 *
Added Linux
Added Speichertest
wenn hier alles geklappt hat, kann man nun wieder rebooten.
Beim Bootscreen wählt man nun seine Devel umgebung aus, da wir mit dieser ja weiter arbeiten wollen.
Wenn das System nun gebootet hat, sollte auch von der Kopie der VDR "normal" starten. Das System ist ja im Prinzip eine identische Kopie.
Nun Kontrolieren wir, ob die Partitionen richtig eingebunden sind. Unter /vdr1 sollte man das Original System finden. Ab und an ist es nützlich, wenn man auf die Originale zugreifen kann.
Wenn alles richtig läuft, wechseln wir nach
cd /usr/src [enter]
und holen uns erstmal (um entsprechende Abhängikeiten korrekt beizubehalten) die vdr sources von 1.2.6:
apt-get sources vdr [enter]
danach führe ich
apt-get build-dep vdr [enter]
aus, um die abhängigkeiten beizubehalten, gegebenenfalls installiert mir das System noch benötigete Tools.
wenn das noch nicht passiert ist muss das cvs paket noch installiert werden, da wir nachher die DVB-sources benötigen:
apt-get install cvs [enter]
Es öffnet sich dann ein Screen mit 3 Fragen:
Alles kann einfach mit [enter] betstätigt werden.
Wenn CVS installiert wurde, hole ich mir erstmal die DVB-Sources:
cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv login [enter]
Die Frage nach dem Password bestätige ich nur mit einem [enter]
Danach
cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv co dvb-kernel [enter]
nun holt sich cvs die Sources des dvb-kernels, in dem auch die header für den 2.6er Kernel enthalten sind, die wir benötigen.
wenn Das abgeschlossen ist, legen wir einen symlink an
ln -s dvb-kernel DVB [enter]
Danach wechseln wir in das Verzeichniss mit
cd /usr/src/DVB [enter]
um alle abhängikeiten für später zu behalten, führen wir erstmal
./makelinks [enter]
aus. Gegebenenfalls hat das script keine ausführrechte diese bekommt es mit
chmod +x makelinks [enter]
wenn das ganze ohne fehler durch ist führen wir nur
make [enter]
aus, um die entsprechenden Dateien zu erzeugen, die VDR zum kompilieren benötigt.
Ist das durch, wechseln wir mit
cd /usr/src/ [enter]
und besorgen uns das Objekt unseres Zieles: VDR 1.3.12 mittels wget
wget "http://www.vdr-portal.de/board/portal_download.php?lid=187&dbid=31&sid=" [enter]
Achtet hierbei darauf, das der Downloadlink innerhalb von Anführungszeichen steht, sonst könnte es schief gehen
wenn er fertig ist, mit dem Download entpacken wir das paket mit
tar -xvjf vdr-1.3.12.tar.bz2 [enter]
und legen danach einen Symlink auf das Verzeichniss an
ln -s vdr-1.3.12 VDR
Um nun unseren neuen VDR zu erzeugen, wechseln wir in das Verzeichniss VDR mit
cd /usr/src/VDR [enter]
Dort führen wir
make VFAT=1 [enter]
aus. Da wir noch keine Plugins haben, brauche wir dieses nicht mitanzugeben.
Wenn alles ohne Fehler durchgelaufen ist, testen wir erstmal unsere neue Version, natürlich beachten wir die Pfadstruktur der ct-version, und nicht vergessen vorher vdr zu stoppen, falls er noch läuft ( /etc/init.d/vdr stop [enter] ggf. Holzhammer: killall -9 vdr [enter]) :
./vdr -c /etc/vdr -v /video [enter]
Wenn der "neue" vdr läuft, Bild und Ton, können wir die vdr versionen austauschen.
Wir stoppen unseren vdr mit [strg][code=c], und wechseln erstmal in das verzeichniss
cd /usr/bin [enter]
dort benennen wir sicherheitshalber unsere vdr-datei um mit
mv vdr vdr_backup [enter]
dann kopieren wir unsere "neue" vdr datei die in /usr/src/VDR erzeugt wurde hier hinein:
cp /usr/src/VDR/vdr /usr/bin/vdr [enter]
So, wenn bis hier hin alles glatt und fehlefrei durch gelaufen ist, können wir unseren vdr mit
/etc/init.d/vdr starten.
Die Routinen und scripten laufen auch mit dem "neuen" VDR, zumindest was das Starten betrifft. Die Routinen für runvdr und das laden der plugins läuft weiterhin automatisch, ohne weiter Angaben. Nur die Plugins selber laufen Nicht.
Diese müssen von nun an selber kompiliert werden. Das kompilieren selber läuft wie es hier im vdr-portal, bzw in der wiki angegeben wurde gleich:
cd /usr/src/VDR
make plugins
Der Unterschied liegt dann darin die erstellten vdr-libs in die ct-konformen Pfade zu kopieren.
Die libvdr-* liegen bei ctvdr in
/usr/lib/vdr/plugins
Alle Pfadangaben die der VDR benötigt sind in einem Konfig-script angegeben, das ihr unter
/etc/default/
findet, das vdr heisst. Schaut es euch ruhig an, das es ganz nützlich sein kann, und alle Startvariablen hier angegeben werden die vdr braucht.
Um die Plugins zu für den VDR 1.3.12 zu kompilieren müssen einige gepatcht werden. Einen Thread mit den benötigeten Patches findet ihr [Hier],
Die Patches führt ihr im entsprchenden plugin verszeichniss so aus:
Bsp: Remote:
cd /usr/src/VDR/PLUGINS/src/remote
patch -p1 < vdr-remote-0.3.1-0.3.1a.diff
Wenn das ohne Fehler durchläuft wechseln nach /usr/src/VDR und mit make plugins das gepatchte Plugin erzeugen.
So das wars erstmal.
Hoffe ihr habt erfolg
Grüsse
Micha