|
|
Zeile 1: |
Zeile 1: |
− | = Installation eines Gentoo DVB-C HDTV-VDR Systemes mit Reelbox eHD PCI Support =
| + | o84MkH <a href="http://eqqrfjauvfti.com/">eqqrfjauvfti</a>, [url=http://iivirglsjfwk.com/]iivirglsjfwk[/url], [link=http://aoskfkywsvmx.com/]aoskfkywsvmx[/link], http://ctooqtplzemq.com/ |
− | | + | |
− | Hier folgt eine ausführliche Anleitung zur Installation eines Gentoo-VDR 1.6.0 Systemes inkl. der h.264 Patches von r.nissl und Support für die
| + | |
− | Reelbox eHD PCI Karte.
| + | |
− | | + | |
− | Als Basis für die Installation dient ein Gentoo 2007 Base System (Stand 12.02.08) mit der folgenden make.conf
| + | |
− | | + | |
− | <pre> | + | |
− | # Please consult /etc/make.conf.example for a more detailed example.
| + | |
− | CFLAGS="-O2 -march=i686 -pipe"
| + | |
− | CXXFLAGS="${CFLAGS}"
| + | |
− | # This should not be changed unless you know exactly what you are doing. You
| + | |
− | # should probably be using a different stage, instead.
| + | |
− | CHOST="i686-pc-linux-gnu"
| + | |
− | MAKEOPTS="-j3"
| + | |
− | ACCEPT_KEYWORDS="~x86"
| + | |
− | USE="aac a52 acpi aio asf dga dts dvb dvdread evo ffmpeg httpd icq imon exif
| + | |
− | imagemagick lcd lesstif lirc live lm_sensors matroska matrox mjpeg mmx
| + | |
− | mmxext network nvram pcmcia pdf projectx rtc samba sasl screen server
| + | |
− | sourcecaps sse sse2 stream svg svga v4l v4l2 vcd vdr vdr-net vfat wxwindows
| + | |
− | unicode cmdctrl cmdsubmenu ddepgentry dolbyinrec dvbplayer dvbsetup jumpplay
| + | |
− | timerinfo wareagleicon liemikuutio child-protection reelchannelscan
| + | |
− | xinerama xvid xvmc dolby-record-switch slang noepg -arts -gnome -kde -ldap"
| + | |
− | LINGUAS="de en"
| + | |
− | </pre>
| + | |
− | | + | |
− | === Vorbereitung des VDR 1.6.0 ===
| + | |
− | | + | |
− | * Anpassung der /etc/make.conf am Ende der Datei:
| + | |
− | | + | |
− | VDR_LOCAL_PATCHES_DIR="/usr/src/vdr-patches"
| + | |
− | source /usr/portage/local/layman/make.conf
| + | |
− | | + | |
− | * Anlage des VDR Patch-Verzeichnisses:
| + | |
− | | + | |
− | mkdir -p /usr/src/vdr-patches/1.6.0 (vdr-1.6.0 dient hier als Basis)
| + | |
− | | + | |
− | * Download des h.264 Patches für DVB-C
| + | |
− | | + | |
− | <pre>
| + | |
− | cd /usr/src/vdr-patches/1.6.0
| + | |
− | wget http://www.linuxtv.org/pipermail/vdr/attachments/20080319/67b02b27/attachment-0003.bin
| + | |
− | mv attachment-0003.bin vdr-1.6.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
| + | |
− | bunzip2 vdr-1.6.0-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff.bz2
| + | |
− | </pre>
| + | |
− | | + | |
− | Ich musste den Patch noch anpassen, damit dieser mit meinen Use-Flags und dem VDR-Extensions-Patch-57 kompiliert. Ich bekam rejects in remux.c und remux.h. Diese liessen sich auf den syncearly Patch zurückführen, der auch in dem Extensions-Patch enthalten ist.
| + | |
− | | + | |
− | === Installation TFTP-Server ===
| + | |
− | | + | |
− | die Reel Karte versucht beim Start einen tftp-connect auf den VDR und dort den download des hdplayers. Dieser ist somit recht leicht zu aktualisieren.
| + | |
− | Dafür muss aber auf dem VDR-System ein tftp-Server laufen, der den hdplayer zur Verfügung stellt.
| + | |
− | | + | |
− | emerge net-ftp/tftp-hpa
| + | |
− | | + | |
− | Anschliessend wird noch kurz in der Konfiguration das Basisverzeichnis hinterlegt
| + | |
− | | + | |
− | * /etc/conf.d/in.tftpd
| + | |
− | | + | |
− | INTFTPD_PATH="/opt/reelbox-ehd/"
| + | |
− | | + | |
− | Nun wird noch der automatische Start des Servers eingetragen:
| + | |
− | | + | |
− | rc-update add in.tftpd default
| + | |
− | /etc/init.d/in.tftpd start
| + | |
− | | + | |
− | === Die benötigten Ebuild-Pakete ===
| + | |
− | | + | |
− | Folgende Pakete wurden bisher für die Reel-eHD generiert:
| + | |
− | | + | |
− | * media-video/reelbox-ehd-driver
| + | |
− | | + | |
− | Der Kernel Kartentreiber (hdshm)
| + | |
− | | + | |
− | * media-video/reelbox-ehd-bin
| + | |
− | | + | |
− | Linux Kernel für die Karte und hdplayer
| + | |
− | | + | |
− | * media-video/reelbox-ehd-tools
| + | |
− | | + | |
− | Tools und Programmme für den Betrieb der Karte
| + | |
− | | + | |
− | * media-plugins/vdr-reelbox
| + | |
− | | + | |
− | Plugin für den VDR
| + | |
− | | + | |
− | === Einbindung der Karte ===
| + | |
− | | + | |
− | Nachdem die Karte eingebaut ist, sollte diese mit einem lspci -v einen ähnlichen Eintrag zu finden sein:
| + | |
− | | + | |
− | <pre>
| + | |
− | 02:09.0 Multimedia controller: Unknown device 1905:8100
| + | |
− | Subsystem: Unknown device 1905:8100
| + | |
− | Flags: bus master, medium devsel, latency 64, IRQ 5
| + | |
− | Memory at f7efb000 (32-bit, non-prefetchable) [size=4K]
| + | |
− | Memory at e8000000 (32-bit, non-prefetchable) [size=128M]
| + | |
− | Capabilities: [40] Power Management version 2
| + | |
− | </pre> | + | |
− | | + | |
− | ==== eHD Kerneltreiber ====
| + | |
− | | + | |
− | Den Kerneltreiber für die Reel-eHD merged man einfach mittels:
| + | |
− | | + | |
− | emerge reelbox-ehd-driver
| + | |
− | | + | |
− | Für den Betrieb der Karte wird noch das TUN-Device benötigt, welches in den laufenden Kernel fest einkompiliert, oder als Modul geladen werden kann.
| + | |
− | Damit der Kartentreiber beim Booten geladen wird, wird dieser einfach (hier mit dem TUN-Device) in die Datei /etc/modules.autoload.d/kernel-2.6 eingetragen:
| + | |
− | | + | |
− | <pre>
| + | |
− | echo "tun" >> /etc/modules.autoload.d/kernel-2.6
| + | |
− | echo "hdshm" >> /etc/modules.autoload.d/kernel-2.6
| + | |
− | </pre>
| + | |
− | | + | |
− | Für den Erstbetrieb lädt man die Module einmalig von Hand:
| + | |
− | | + | |
− | <pre>
| + | |
− | modprobe tun
| + | |
− | modprobe hdshm
| + | |
− | </pre>
| + | |
− | | + | |
− | Mittels dmesg sollte die Karte nun folgendes ausgeben:
| + | |
− | | + | |
− | <pre>
| + | |
− | hdshm_init_struct: Phys start eb000000, start d0c80000, nc-start d1000000
| + | |
− | hde_fb: init 0
| + | |
− | </pre>
| + | |
− | | + | |
− | ==== eHD Binaries ==== | + | |
− | | + | |
− | Da die wenigsten User eine Crossdev Umgebung haben, werden die Pakete, die auf der eHD-Karte direkt laufen als Binärarchive von Reel ohne Änderungen übernommen und eingespielt. Dies betrifft den hdplayer und den Linux Kernel für die eHD.
| + | |
− | | + | |
− | emerge reelbox-ehd-bin
| + | |
− | | + | |
− | ==== eHD Tools ====
| + | |
− | | + | |
− | Für den Betrieb der eHD werden hier einige Tools und Programme installiert, die z.B. für das Starten der Karte verantwortlich sind.
| + | |
− | | + | |
− | emerge reelbox-ehd-tools
| + | |
− | | + | |
− | ==== Start der Karte ====
| + | |
− | | + | |
− | Wenn alles richtig durchgeführt worden ist und keine Fehlermeldungen kamen, sollte die eHD einfach mittels
| + | |
− | | + | |
− | /etc/init.d/reelbox-ehd start
| + | |
− | | + | |
− | hochgefahren werden. Anschliessend sollte nach einem erfolgreichen Boot mittels ifconfig prüfen, ob das Tun-Device aktiviert wurde:
| + | |
− | | + | |
− | <pre>
| + | |
− | vdr # ifconfig tun0
| + | |
− | tun0 Protokoll:UNSPEC Hardware Adresse 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
| + | |
− | inet Adresse:192.168.99.130 P-z-P:192.168.99.130 Maske:255.255.255.252
| + | |
− | UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:8300 Metric:1
| + | |
− | RX packets:383 errors:0 dropped:0 overruns:0 frame:0
| + | |
− | TX packets:490 errors:0 dropped:0 overruns:0 carrier:0
| + | |
− | Kollisionen:0 Sendewarteschlangenlänge:500
| + | |
− | RX bytes:32541 (31.7 Kb) TX bytes:168190 (164.2 Kb)
| + | |
− | </pre>
| + | |
− | | + | |
− | Wenn dieses Device aktiv ist, so sollte die reel-eHD nun auch pingbar sein:
| + | |
− | | + | |
− | <pre>
| + | |
− | vdr # ping 192.168.99.129
| + | |
− | ping -c 1 192.168.99.129
| + | |
− | PING 192.168.99.129 (192.168.99.129) 56(84) bytes of data.
| + | |
− | 64 bytes from 192.168.99.129: icmp_seq=1 ttl=64 time=4.58 ms
| + | |
− | | + | |
− | --- 192.168.99.129 ping statistics ---
| + | |
− | 1 packets transmitted, 1 received, 0% packet loss, time 0ms
| + | |
− | rtt min/avg/max/mdev = 4.588/4.588/4.588/0.000 ms
| + | |
− | </pre>
| + | |
− | | + | |
− | Mittels telnet sollte man direkt auf der Karte landen. Hier kann man auch gleich prüfen, ob in /tmp der hdplayer liegt und ob dieser bereits läuft (ps):
| + | |
− | <pre>
| + | |
− | vdr # telnet eHD
| + | |
− | Trying 192.168.99.129...
| + | |
− | Connected to eHD.
| + | |
− | Escape character is '^]'.
| + | |
− | | + | |
− | | + | |
− | | + | |
− | BusyBox v1.2.2 (2008.03.25-10:08+0000) Built-in shell (ash)
| + | |
− | Enter 'help' for a list of built-in commands.
| + | |
− | | + | |
− | | + | |
− | Welcome to extensionHD
| + | |
− | | + | |
− | This image is based on SDK V1.7.
| + | |
− | It was built @ Fr 11. Apr 12:14:32 CEST 2008 on rollercoaster.
| + | |
− | | + | |
− | hdext # ls -la /tmp/hdplayer
| + | |
− | -rwxr-xr-x 1 0 0 141092 Jan 1 00:00 /tmp/hdplayer
| + | |
− | hdext # ps
| + | |
− | PID Uid VmSize Stat Command
| + | |
− | 1 0 656 S init
| + | |
− | 2 0 SWN [ksoftirqd/0]
| + | |
− | 3 0 SW< [events/0]
| + | |
− | 4 0 SW< [khelper]
| + | |
− | 5 0 SW< [kthread]
| + | |
− | 6 0 SW< [kblockd/0]
| + | |
− | 20 0 DW [swapper]
| + | |
− | 84 0 SW [pdflush]
| + | |
− | 85 0 SW [pdflush]
| + | |
− | 87 0 SW< [aio/0]
| + | |
− | 86 0 SW [kswapd0]
| + | |
− | 91 0 SW [kseriod]
| + | |
− | 133 0 SW< [VIDEO/0]
| + | |
− | 134 0 SW< [AUDIO/0]
| + | |
− | 135 0 SW< [PSI/0]
| + | |
− | 139 0 SW< [VIDEO/0]
| + | |
− | 140 0 SW< [AUDIO/0]
| + | |
− | 141 0 SW< [PSI/0]
| + | |
− | 171 0 636 S syslogd -m 0 -C
| + | |
− | 173 0 628 S klogd
| + | |
− | 235 0 572 S < udevd
| + | |
− | 254 1 684 S portmap
| + | |
− | 256 0 516 S telnetd -l /sbin/loginash
| + | |
− | 283 0 468 S shmnetd
| + | |
− | 293 0 684 S /bin/sh /sbin/hdplayermgr -d
| + | |
− | 300 0 616 S /usr/bin/hdctrld -o DVI -a WF -v 576i -s -d
| + | |
− | 309 0 660 S init
| + | |
− | 314 0 616 S /usr/bin/hdctrld -o DVI -a WF -v 576i -s -d
| + | |
− | 824 0 616 S /usr/bin/hdctrld -o DVI -a WF -v 576i -s -d
| + | |
− | 827 0 572 S sh -c /tmp/hdplayer
| + | |
− | 828 0 2896 S /tmp/hdplayer
| + | |
− | 829 0 2896 S /tmp/hdplayer
| + | |
− | 830 0 2896 R N /tmp/hdplayer
| + | |
− | 6305 0 792 S /bin/ash --login
| + | |
− | 6315 0 424 S sleep 2
| + | |
− | 6316 0 712 R ps
| + | |
− | hdext #
| + | |
− | </pre>
| + | |
− | | + | |
− | Sollte der hdplayer nicht laufen, so stimmt vermutlich etwas mit dem tftp-Server nicht. Wenn alles so aussieht wie in dem obigen Beispiel, ist die Karte betriebsbereit und die Installation des VDR kann beginnen.
| + | |
− | | + | |
− | Ansonsten fügt man as Startskript nun dem Default Bootmodus hinzu, damit die Karte automatisch beim Booten gestartet wird:
| + | |
− | | + | |
− | rc-update add reelbox-ehd default
| + | |
− | | + | |
− | === Installation des VDR === | + | |
− | | + | |
− | Falls noch nicht geschehen, so sollte nun der vdr installiert werden:
| + | |
− | | + | |
− | emerge vdr
| + | |
− | | + | |
− | Nachdem dieser installiert worden ist, muss beachtet werden, das '''der vdr mit der reel-eHD aktuell nur funktioniert wenn dieser als root läuft und nicht wie unter gentoo eigentlich üblich als vdr'''
| + | |
− | | + | |
− | ==== Anpassung der VDR-Konfiguration ====
| + | |
− | | + | |
− | Folgende Änderungen sollten nach der Installation des vdr durchgeführt werden:
| + | |
− | | + | |
− | * Umstellung des VDR auf den root-User
| + | |
− | | + | |
− | Hierzu öffnet man die Datei /etc/conf.d/vdr und aktiviert den folgenden Eintrag:
| + | |
− | <pre>
| + | |
− | # for people who really know what they do
| + | |
− | # and who want to start vdr as user root
| + | |
− | # allowed values: YES no
| + | |
− | # default: no
| + | |
− | START_VDR_AS_ROOT="YES"
| + | |
− | </pre>
| + | |
− | | + | |
− | * Das Startskript soll auf das reelbox-ehd Skript warten
| + | |
− | | + | |
− | Das reelbox Plugin funktioniert nur, wenn die eHD bereits läuft. Befindet sich die Karte noch im Booten, sieht man anschliessend nur des Reel-eHD Logo und bekommt kein Live-Bild. Also sollte das vdr-Startskript auf die Reel warten, bevor er startet. Möglicherweise wird dies später noch geändert, da hier auch bessere Möglichkeiten zur Überprüfung zu Verfügung stehen. Momentan ist der einfachste Weg aber das init-Skript anzupassen. Hier fügt man im depend Zweig einfach das Reel-eHD Startskript hinzu:
| + | |
− | | + | |
− | <pre>
| + | |
− | depend() {
| + | |
− | need net
| + | |
− | [ "${IR_CTRL}" = "lirc" ] && need lircd
| + | |
− | use lircd coldplug
| + | |
− | after checkroot
| + | |
− | after reelbox-ehd
| + | |
− | }
| + | |
− | </pre>
| + | |
− | | + | |
− | ==== Installation des reelbox Plugins ====
| + | |
− | | + | |
− | Das Reelbox Plugin stellt die eigentliche Verbindung zwischen VDR und Karte her und wird wie jedes andere Plugin auch einfach per emerge installiert:
| + | |
− | | + | |
− | emerge vdr-reelbox
| + | |
− | eselect vdr-plugin enable vdr-reelbox
| + | |
− | | + | |
− | Anschliessend startet man den vdr (neu) und es sollte ein Livebild ausgegeben werden.
| + | |
− | | + | |
− | === Sourcen ===
| + | |
− | | + | |
− | Die oben beschriebenen Pakete befinden sich zur Zeit noch nicht im offiziellen Gentoo Portage und können bis dahin manuell downgeloaded werden. Zu finden sind die Ebuilds und Distfiles [http://quacks.fratzengeballer.org hier]
| + | |
− | | + | |
− | Download aller Dateien mit wget:
| + | |
− | | + | |
− | <pre>
| + | |
− | wget -r -np http://quacks.fratzengeballer.org/portage/ && find -name 'index.html*' -exec rm "{}" \;
| + | |
− | </pre>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | [[Kategorie:Gentoo]]
| + | |