Die ist die aktuelle Version vom HowTo, die alte ist hier archiviert.
In diesem HowTo installiere ich VDR auf einem ARM Board mit Allwinner Chip A20(A10 sollte auch funktionieren). Ich verwende einen selbst kompilierten Kernel, da Igor Pečovnik bei seinem Armbian auf eine andere Kernel Quelle umgestellt hat, und ein paar Sachen dort nicht mehr vorhanden sind, die ich gerne hätte. Das sind unter anderem:
Der CSC Patch von Rellla mit dem man Farbeinstellungen bei der Videowiedergabe korrigieren kann
und der sunxi-lirc Treiber, denn der mitgelieferte funktioniert mit meinen Fernbedienungen nicht so gut.
Und da ich jetzt sowieso kompiliere, hab ich noch einen Patch gegen das Problem mit dem nicht mehr aufwachen des Bildschirms nach Stromsparmodus mit eingefügt und
meinen CEC-Treiber für libcec, für den ich leider noch nicht viel Feedback habe.
Wer das Vorgenannte nicht benötigt, sollte auch ein aktuelles Legacy Jessie Image von Armbian verwenden können. Ich verwende die gleiche ToolChain wie Igor Pečovnik nur mit den oben genannten Patches.
Hier sind meine Images für BananaPi und Cubietruck:
Armbian_4.83_Bananapi_Debian_jessie_3.4.110.zip
Armbian_4.83_Cubietruck_Debian_jessie_3.4.110.zip
Für alle anderen Boards und Selbstkompilierer habe ich einen eigenen Post verfasst.
Das passende Image herunterladen und auf SD Karte spielen. Unter Windows mit dem mitgelieferten imagewriter.exe.
Nach dem ersten Start erfolgt ein automatischer Neustart. Danach loggen wir uns als root ein (Passwort: 1234) und legen los. Der ssh Port 22 ist schon aktiviert und man kann sich über Netzwerk einloggen.
Als erstes mal das Passwort ändern:
Jetzt mc installieren, da ich den Editor davon verwende. Wer einen anderen Editor verwenden möchte kann dies gerne tun und kann mc dann weglassen.
Jetzt Sprache und Zeitzone einstellen.
Für die Tastatureinstellung muss eine Tastatur angeschlossen sein. Wer keine Tastaur anschließen will kann den Punkt überspringen.
Bei einer Deutschen Tastatur: Generic 105-key (Intl) PC -> German -> The default for the keyboard layout -> No compose key -> No
Jetzt kommen ein paar Einstellungen für die Bildschirmauflösung und Video Arbeitsspeicher
Dabei geht es um diese Zeile.
setenv bootargs "console=tty1 root=/dev/mmcblk0p1 rootwait rootfstype=ext4 sunxi_ve_mem_reserve=190 sunxi_g2d_mem_reserve=16 sunxi_no_mali_mem_reserve sunxi_fb_mem_reserve=32 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p50 panic=10 consoleblank=0 enforcing=0 loglevel=1"
Änderungen werden bei folgenden Einträgen gemacht: sunxi_ve_mem_reserve=190, sunxi_g2d_mem_reserve=16, sunxi_fb_mem_reserve=32 und disp.screen0_output_mode=1920x1080p50
Bei disp.screen0_output_mode=1920x1080p50 natürlich die passende Auflösung eintragen aber am Ende auf p50 achten.
Die Änderungen werden mit F2 gespeichert und mit F10 wird der Editor verlassen.
Jetzt die vorgenommenen Änderungen übersetzen.
Als nächstes kann man eine feste Netzwerkadresse vergeben:
Den Bereich für eth0 folgendermaßen ändern (Adressen natürlich ans eigene Netzwerk anpassen):
auto eth0
iface eth0 inet static
address 192.168.1.243
netmask 255.255.255.0
gateway 192.168.1.254
Und einen Nameserver einstellen:
Zum Beispiel der eigene Router(Wieder ans eigene Netzwerk anpassen):
Jetzt erstmal ein Neustart um die Änderungen zu übernehmen.
Nach dem Neustart aktualisieren wir die Softwarepakete.
Die Frage mit Y beantworten.
Nach der Aktualisierung installieren wir die benötigten Pakete.
apt-get install gettext xserver-xorg-dev xserver-xorg xutils-dev libvdpau-dev psmisc libxcb-screensaver0-dev libxcb-randr0-dev libxcb-dpms0-dev libxcb-icccm4-dev libx11-xcb-dev libxcb-ewmh-dev libasound2-dev libxcb-xv0 libxcb-keysyms1 libxcb-util0 libxcb-shm0 libfreetype6-dev libfontconfig1-dev alsa-base libcap-dev libjpeg62-turbo-dev x11-xserver-utils liblockdev1-dev libudev-dev libxrandr-dev python-dev swig
Den XF86 Treiber installieren.
cd /usr/local/src/
git clone https://github.com/ssvb/xf86-video-fbturbo.git
cd xf86-video-fbturbo
autoreconf -vi
./configure --prefix=/usr
make -j3
make install
cp xorg.conf /etc/X11
Nun die ffmpeg Bibliothek installieren (Der Make Befehl braucht ca. 60 Minuten, Zeit für eine kleine Pause)
cd /usr/local/src/
wget http://ffmpeg.org/releases/ffmpeg-2.8.5.tar.bz2
tar xfvj ffmpeg-2.8.5.tar.bz2
cd ffmpeg-2.8.5
./configure --enable-shared --prefix=/usr
make -j3
make install
Jetzt libcec installieren. (Nur nutzbar mit einem Kernel mit CEC support)
cd /usr/local/src
git clone https://github.com/Pulse-Eight/platform.git
git clone https://github.com/Pulse-Eight/libcec.git
cd platform
mkdir build
cd build
cmake ..
make
make install
cd /usr/local/src/libcec
wget http://sunxi.das-eckchen.de/libcecV2.diff
patch -p1 < libcecV2.diff
mkdir build
cd build
cmake -DHAVE_EXYNOS_API=1 ..
make
make install
Alles anzeigen
libcsptr installieren. (wird für VDPAU benötigt)
cd /usr/local/src/
git clone https://github.com/Snaipe/libcsptr.git
cd libcsptr
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make -j3
make install
Jetzt wird der sunxi-vdpau Treiber installiert.
cd /usr/local/src/
git clone -b staging https://github.com/linux-sunxi/libvdpau-sunxi.git
cd libvdpau-sunxi
make -j3
make install
Nun geht es an den VDR mit Plugins. Ich habe hier das Streamdev und ein paar andere Plugins dabei, für den Fall dass man ihn als Streamdev-Client verwenden will.
cd /usr/local/src
wget ftp://ftp.tvdr.de/vdr/vdr-2.2.0.tar.bz2
wget http://vdr.schmirler.de/svdrpservice/vdr-svdrpservice-1.0.0.tgz
wget http://vdr.schmirler.de/remotetimers/vdr-remotetimers-1.0.2.tgz
wget http://vdr.schmirler.de/epgsync/vdr-epgsync-1.0.1.tgz
wget http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/vdr-femon-2.2.1.tgz
git clone git://projects.vdr-developer.org/vdr-plugin-softhddevice.git
git clone git://projects.vdr-developer.org/vdr-plugin-streamdev.git
tar xfvj vdr-2.2.0.tar.bz2
tar xfvz vdr-femon-2.2.1.tgz
tar xfvz vdr-svdrpservice-1.0.0.tgz
tar xfvz vdr-remotetimers-1.0.2.tgz
tar xfvz vdr-epgsync-1.0.1.tgz
ln -s vdr-2.2.0 VDR
cd VDR/PLUGINS/src/
rm -r dvbhddevice/ dvbsddevice/ hello/ pictures/ rcu/ skincurses/ osddemo/
ln -s ../../../vdr-plugin-streamdev/ streamdev
ln -s ../../../vdr-plugin-softhddevice/ softhddevice
ln -s ../../../svdrpservice-1.0.0/ svdrpservice
ln -s ../../../remotetimers-1.0.2/ remotetimers
ln -s ../../../epgsync-1.0.1/ epgsync
ln -s ../../../femon-2.2.1/ femon
Alles anzeigen
Jetzt noch softhddevice Patchen, damit die CSC Einstellungen auch verwendet werden.
cd /usr/local/src/vdr-plugin-softhddevice/
wget 'http://sunxi.das-eckchen.de/softhddevice_cscV2.diff'
patch -p1 < softhddevice_cscV2.diff
Jetzt kann der VDR kompiliert werden.
Jetzt die Soundausgabe konfigurieren.
Die Zeile card 0 an die eigene Ausgabe anpassen. card 3 ist bei Cubietruck HDMI bei BananaPi sollte es card 2 sein für HDMI (nicht ganz sicher einfach durchprobieren wenn kein ton kommt)
pcm.!default pcm.sunxi_complete
pcm.sunxi_hw {
type hw
card 0
device 0
}
pcm.sunxi_formatted {
type plug
slave {
pcm sunxi_hw
rate 48000 # <- Optional! Hier die gewünschte Rate.
channels 2
}
}
pcm.sunxi_complete {
type softvol
slave.pcm sunxi_formatted
control.name sunxi_volume
control.card 0
}
pcm.sunxi {
type route
slave.pcm "sunxi_complete"
slave.channels 2
ttable.0.0 1 # Front links -> links
ttable.1.1 1 # Front rechts -> rechts
}
Alles anzeigen
Eine remote.conf für Tastatursteuerung anlegen:
XKeySym.Up Up
XKeySym.Down Down
XKeySym.Menu F2
XKeySym.Ok Return
XKeySym.Back f
XKeySym.Left Left
XKeySym.Right Right
XKeySym.Red F5
XKeySym.Green F6
XKeySym.Yellow F7
XKeySym.Blue F8
XKeySym.0 0
XKeySym.1 1
XKeySym.2 2
XKeySym.3 3
XKeySym.4 4
XKeySym.5 5
XKeySym.6 6
XKeySym.7 7
XKeySym.8 8
XKeySym.9 9
XKeySym.Volume+ +
XKeySym.Volume- -
XKeySym.Mute m
XKeySym.Info i
XKeySym.Pause space
XKeySym.FastFwd s
XKeySym.FastRew r
XKeySym.Power v
Alles anzeigen
Eine runvdr anlegen.
#!/bin/sh
export LC_MESSAGES=de_DE.UTF-8
export VDPAU_DEINT=1;
export VDPAU_DRIVER=sunxi
export DISPLAY=:0.0
chmod 0777 /dev/disp;.
chmod 0777 /dev/cedar_dev;.
chmod 0777 /dev/g2d;.
/usr/local/bin/vdr -d -l 2 -P streamdev-client -P"softhddevice -x -p sunxi_hw -a sunxi -c sunxi_volume"
Alles anzeigen
Die runvdr ausführbar machen.
Jetzt kann der VDR für einen Test gestartet werden.