[HOWTO] Installation VDR-Client auf ARM Boards mit Allwinner Chip z.B. Cubieboard2, Cubietruck, BananaPI

  • Hallo Andreas,


    mit dem von mir momentan verwendeten dev_fix läuft zwar softhddevice, aber mpv zeigt falsche Farben an. Mit allen anderen von mir getesteten Versionen (head, dev) sind die Farben mit mpv richtig, aber die von softhddevice nicht. Ich würde aber gerne beides verwenden ;) , v.a. das mpv-plugin.


    Da du ja fleißig weiterentwickelst, hast du das Problem nicht ? Woran könnte das liegen, hättest du ne Idee ?


    VG Chris

  • Hallo,
    dev_fix ist bei mir schon irgendwo im Nirwana ...
    Da ich ziemlich ohne Rücksicht auf Verluste die Branches merge und rebase, ist das mit den dev_ und WIP/... ein bißchen durcheinander und auch nicht unbedingt für die Öffentlichkeit gedacht ;)
    Ich weiß also gar nicht mehr, was im dev_fix so drin war ;) Das "Gute" sollte aber in den dev gewandert sein. Den möchte ich auch nach Möglichkeit so halten und nicht mehr rebasen, bis was in Mainline ist. Der sollte funktionieren.


    Empfehlen würde ich dir allerdings den aktuellen Stand. Das ist gerade WIP/rebased ;) Wie der Name schon sagt, tut sich da evtl. aber auch immer mal wieder was.
    Ziel ist es, den in upstream zu mergen. Vorher müssten aber noch ein paar Sachen korrigiert werden...


    Die Farben sollten bei beiden stimmen, vorausgesetzt, du hast den CSC Kernelpatch angewandt...


    Gruß Andreas

  • Naja, dieses Howto nutzt die Version von Zille. Da funktioniert CSC nicht bzw. nicht richtig.
    Für den o.g. Branch ist seit diesem Commit CSC eingebaut. Wenn man will, dass Helligkeit, Kontrast etc. korrekt funktioniert, benötigt man einen Kernel ohne diesen Bug.
    Außerdem halt den letzten Stand inkl. diesem Commit, weil da noch ein paar Sachen korrigiert wurden.


    Gruß Andreas

  • Da hatte ich den Kernelpatch echt übersehen :O ,
    gut dass es jetzt hier einen Hinweis drauf gibt.


    Damit klappt nun auch alles richtig, sehr schön, Danke für das fleißige Entwickeln!


    VG

  • :edit (8.8.2015)
    gelöscht image lief nicht


    neues ist gebaut und startet schon mal


    Debian jessie mit kernel 3.4.108 mit den patchen von rell die nun in danand's kernel mit drin sind
    siehe:
    github


    lade es grade mal hoch

    Edited 2 times, last by Moorviper ().

  • Dies ist das alte HowTo vom 16.12.2014, das aktuelle befindet sich im ersten Post.


    Hier ist eine Installationsanleitung für einen VDR-Client auf einem Cubieboard2, Cubietruck oder Banana PI.
    Ich benutze dazu die Images von Igor Pečovnik .


    Als erstes das passende Image für das Board herunterladen und auf eine SD-Karte spielen.


    Image für Cubieboard2/Cubietruck http://mirror.igorpecovnik.com…an_2.9_wheezy_3.4.105.zip
    Image für Banana PI http://mirror.igorpecovnik.com…an_1.7_wheezy_3.4.105.zip


    Wenn man später HDMI benutzen will sollte man beim ersten Start am HDMI Ausgang einen Monitor anschließen. Die Installationsroutine erkennt den Monitor und stellt dann alles dafür ein.
    Nachdem das System automatisch neu gestartet hat kann man sich als root einloggen (Passwort: 1234) und muss ein neues Passwort vergeben. Es ist auch gleich schon möglich sich über ssh (Port 22) einzuloggen.


    Einrichten des Systems:
    hiermit wird die Sprache, Tastatur Layout und Zeitzone eingestellt

    Code
    apt-get install mc console-data console-tools console-common debconf
    dpkg-reconfigure locales
    echo UTC > /etc/timezone
    dpkg-reconfigure tzdata


    Noch eine Paketquelle hinzufügen:
    Ich nutze als Editor mcedit, es kann aber jeder seinen Lieblingseditor verwenden.

    Code
    mcedit /etc/apt/sources.list


    Folgende Zeile hinten anfügen.

    Code
    deb http://www.deb-multimedia.org wheezy main non-free


    Die Änderungen werden mit F2 gespeichert und mit F10 wird der Editor verlassen.


    Den Mali Treiber bei den Modulen hinzufügen:

    Code
    mcedit /etc/modules


    Folgende Zeile hinten anfügen.

    Code
    mali


    Jetzt die Kommandozeile des Kernels anpassen.
    Hier gibt es verschiedenen Dateien für jedes System:
    Cubieboard 2

    Code
    mcedit /boot/uEnv.cb2


    Cubietruck

    Code
    mcedit /boot/uEnv.ct


    Banana PI

    Code
    mcedit /boot/uEnv.txt


    Die 3. Zeile sollte dann folgendermaßen aussehen (Auflösung vom Monitor ggf. anpassen, wichtig aber am Ende p50 zu wählen)

    Code
    extraargs=rootfstype=ext4 sunxi_ve_mem_reserve=190 sunxi_g2d_mem_reserve=16 sunxi_fb_mem_reserve=32 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p50 panic=10 consoleblank=0


    Als nächstes kann man eine feste Netzwerkadresse vergeben:

    Code
    mcedit /etc/network/interfaces


    Den Bereich für eth0 folgendermaßen ändern (Adressen natürlich ans eigene Netzwerk anpassen):

    Code
    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:

    Code
    mcedit /etc/resolv.conf


    Zum Beispiel der eigene Router(Wieder ans eigene Netzwerk anpassen):

    Code
    nameserver 192.168.1.254


    Noch eine kleine Änderung in der .bin Datei, wieder für jedes System eine andere Datei.
    Cubieboard 2

    Code
    cd /boot
    bin2fex cubieboard2.bin cubieboard2.fex
    mcedit cubieboard2.fex


    Cubietruck

    Code
    cd /boot
    bin2fex cubietruck.bin cubietruck.fex
    mcedit cubietruck.fex


    Banana PI

    Code
    cd /boot
    bin2fex bananapi.bin bananapi.fex
    mcedit bananapi.fex


    Jetzt in der fex Datei den Bereich [disp_init] suchen und folgende Zeilen ändern:

    Code
    fb0_framebuffer_num = 4
    fb0_scaler_mode_enable = 0


    Editor schliessen und aus der fex Datei wieder eine bin Datei machen, wieder für jedes System unterschiedlich.
    Cubieboard 2

    Code
    fex2bin cubieboard2.fex cubieboard2.bin


    Cubietruck

    Code
    fex2bin cubietruck.fex cubietruck.bin


    Banana PI

    Code
    fex2bin bananapi.fex bananapi.bin


    System neu starten:

    Code
    reboot


    Nach dem Neustart die Paketquellen aktualisieren:

    Code
    apt-get update
    apt-get install deb-multimedia-keyring
    apt-get update


    Bei apt-get install deb-multimedia-keyring die Frage mit y beantworten.


    Jetzt die benötigten Pakete nachinstallieren:

    Code
    apt-get install git build-essential autoconf libtool gettext automake xutils-dev pkg-config xserver-xorg-dev libdrm-dev x11proto-xf86dri-dev xserver-xorg debhelper dh-autoreconf x11proto-xext-dev libxext-dev libxfixes-dev libvdpau-dev libfreetype6-dev libfontconfig1-dev libjpeg8-dev libcap-dev libxcb-screensaver0-dev libxcb-randr0-dev libxcb-dpms0-dev libxcb-icccm4-dev libx11-xcb-dev libxcb-ewmh-dev alsa-base alsa-utils libasound2-dev libudev-dev libglib2.0-dev libxcb-xv0 libxcb-shm0 libxcb-dpms0 libxcb-util0 libxcb-screensaver0 libxcb-keysyms1 libxcb-icccm4 libxcb-glx0 libxcb-randr0 psmisc


    Den XF86 Treiber installieren.

    Code
    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. 40 Minuten, Zeit für eine kleine Pause)

    Code
    cd /usr/local/src/
    wget http://ffmpeg.org/releases/ffmpeg-2.4.4.tar.bz2 
    tar xfvj ffmpeg-2.4.4.tar.bz2
    cd ffmpeg-2.4.4
    ./configure --enable-shared --prefix=/usr
    make -j3
    make install


    Jetzt wird der sunxi-vdpau Treiber installiert:

    Code
    cd /usr/local/src/
    git clone -b deint https://github.com/zillevdr/libvdpau-sunxi/
    cd libvdpau-sunxi
    make -j3
    make install


    Nun geht es an den VDR mit Plugins. Ich habe hier das Streamdev und femon Plugin dabei, für den Fall dass man ihn als Streamdev-Client verwenden will.


    Jetzt muss noch eine Kleinigkeit beim softhddevice Plugin angepasst werden:

    Code
    mcedit /usr/local/src/vdr-plugin-softhddevice/Makefile


    Bei der Zeile mit "#CONFIG += -DUSE_BITMAP # VDPAU, use bitmap surface for OSD" auskommentierung entfernen:

    Code
    CONFIG += -DUSE_BITMAP   	# VDPAU, use bitmap surface for OSD


    Zeile mit "### Make it standard" suchen und -fsigned-char in den folgenden Zeilen anhängen:

    Code
    override CXXFLAGS += $(_CFLAGS) $(DEFINES) $(INCLUDES) \
    	-g -W -Wall -Wextra -Winit-self -Werror=overloaded-virtual -fsigned-char
    override CFLAGS>  += $(_CFLAGS) $(DEFINES) $(INCLUDES) \
    	-g -W -Wall -Wextra -Winit-self -Wdeclaration-after-statement -fsigned-char


    Die Datei schliessen und wir können den VDR kompilieren:

    Code
    cd /usr/local/src/VDR
    make clean
    make -j3
    make install


    Nun eine config Datei für den Sound anlegen:

    Code
    mcedit /etc/asound.conf


    Die Zeile pcm "hw:0,0" ist für Analog Ausgabe, für HDMI in pcm "hw:3,0" ändern.


    Eine remote.conf für Tastatursteuerung anlegen:

    Code
    mcedit /var/lib/vdr/remote.conf



    Eine runvdr Datei anlegen:

    Code
    mcedit /usr/local/bin/runvdr


    Hier ein Beispielcode für die runvdr:


    runvdr ausführbar machen:

    Code
    chmod +x /usr/local/bin/runvdr


    und VDR für einen ersten Test starten

    Code
    runvdr
  • So hier der versprochene Post über die Patches von meinem Kernel.


    Als erstes die verschiedenen Patches:
    Für die Farbeinstellung relllas CSC Patch.
    Der Patchgegen das nicht mehr aufwachen nach Stromsparmodus.
    Der alternative IR Treiber.
    Der CEC Treiber.


    Wer die Toolchain von Igor Pečovnik benutzt, kann die Patches einfach in das entsprechende Verzeichnis für Userpatches legen. Beim Cubietruck oder BananaPi ist es ausgehend vom Verzeichnis mit der compile.sh Datei "userpatches/kernel/sun7i-default"
    Beim nächsten kompilieren des Kernels werden die Patches dann automatisch angewendet.


    Wer seinen Kernel anders kompiliert kann die Patches auch manuell anwenden. Einfach die Patches in das Linux Source Verzeichnis legen und z.B. mit patch -p1 < sunxi_cecV2.patch anwenden.


    Für Boards mit A20 CPU und Armbian kann man auch den fertig kompilierten Kernel von mir verwenden:

    Code
    cd /tmp
    wget http://sunxi.das-eckchen.de/linux-headers-sun7i_4.83_armhf.deb
    wget http://sunxi.das-eckchen.de/linux-image-sun7i_4.83_armhf.deb
    wget http://sunxi.das-eckchen.de/linux-firmware-image-sun7i_4.83_armhf.deb
    dpkg -i *.deb
    reboot


    Wenn jemand ein Kernel für A10 braucht oder ein komplettes Image für ein anderes Board haben möchte dann bitte hier melden, ich kann das dann kompilieren und zum Download anbieten. Ich kann es aber nicht testen, da ich dafür keine Hardware habe.

  • Hallo zusammen,


    erstmal vielen Dank für die ausführliche Anleitung an jodamm!


    Ich habe noch keine Erfahrungen mit dem VDR, ich habe ihn jetzt nach dieser (neuen Version der) Anleitung erstmalig auf meinem Cubietruck installiert. Das klappte soweit ganz gut. Nur leider bekomme ich zwar Ton und auch die Oberfläche des VDR wird angezeigt, aber leider bekomme ich kein Bild. Derzeit habe ich einen Pinnacle DVB-T Stick als DVB Quelle angeschlossen. Dieser wird sauber erkannt laut DMESG und auch die Sendersuche funktionierte problemlos. VDR kann die Sender auch finden, daher ja auch der Ton. Angeschlossen ist ein Monitor über HDMI. Die Einstellungen habe ich alle entsprechend dem HowTo vorgenommen. Als Image verwende ich das armbian jessie von Igor. Syslog und User.log zeigen keine verdächtigen Fehler.


    Mir fehlt im Moment noch eine Idee, wie ich den Fehler systematisch suchen kann. Ich bin noch zu unerfahren im Umgang mit sunxi, vdpau, X etc. Dafür aber umso wissbegieriger... :D
    Hab mal versucht mit vdpauinfo zu starten, kenne aber die nötigen Parameter nicht...


    Grüße
    Matthias

  • Hallo Matthias,
    ich habe gerade mal mit meiner Installation rumgespielt. Wenn ich in meiner setup.conf alles von softhddevice lösche habe ich auch kein Bild und nur Ton. Aber nachdem ich im Menü unter Einstellungen -> Plugins -> softhddevice einfach nur OK gedrückt habe kam sofort ein Bild.
    Vielleicht löst es ja das Problem bei dir auch.
    Gruß
    Joachim

  • Hallo Joachim,
    was macht dein softhddevice_csc.diff, bzw. was funktioniert ohne den nicht?
    Danke und Gruß
    Andreas

  • Hi jodamm,


    das werde ich ausprobieren. Kann aber erst am Montag Abend wieder am Cubie arbeiten.


    Hat noch jemand Ideen wie ich den Fehler systematisch suchen kann? Wo fange ich an?


    Grüße
    Matthias


  • Hat noch jemand Ideen wie ich den Fehler systematisch suchen kann? Wo fange ich an?


    Zuerst vielleicht doch das log - auch wenn nicht verdächtig - zur Verfügung stellen?
    Gruß Andreas

  • Hallo Joachim,
    was macht dein softhddevice_csc.diff, bzw. was funktioniert ohne den nicht?
    Danke und Gruß
    Andreas


    Hallo Andreas,
    softhddevice nimmt beim Starten nicht die Werte die ich unter Helligkeit, Kontrast, Sättigung und Farbton eingestellt habe. Erst wenn man einmal in den Einstellungen für das Plugin OK drückt werden sie verwendet. Das behebt mein Patch. Es gibt jetzt eine V2 vom Patch, die das Probleme mit dem schwarzen Bildschirm bei mir löst.
    Gruß
    Joachim

  • OK, aber sind die letzten 4 hunks bzw. die static variablen wirklich notwendig? Statische variablen scheinen mir generell nicht die schönste Lösung zu sein ... Ohne mir jetzt einen schnellen Gegenvorschlag zu überlegen :)
    Vielleicht kann da Johns mal drüber schauen. Wenn das einen bug fixt, sollte das eh ins git ...
    Gruß Andreas

  • Hi Jodamm,


    dein Tipp hat Erfolg gehabt. Ich hab einfach (ohne vorheriges Löschen der config) auf das plugin geklickt (bzw. Enter gedrückt) und das Bild startete wie aus dem Nichts. Danke!


    Grüße
    Matthias

  • Hallo Jodamm!


    Erstmal danke für die detailierte Beschreibung. Bin gerade dabei... mir ist aufgefallen, dass ein apt-get upgrade von deinem 4.83er Kernel auf einen 5.00er wechselt. Das wird wohl ein neuer offizieller sein... Bringst du auch einen neuen raus, oder muss das Upgrade rückgängig machen und den bestehenden am besten pinnen?


    Lg
    Holger

    Gruß
    Holger


    HTPC: yaVDR 0.5, M3N78-VM, Athlon II X2 240, 2GB, 2x TT S2-1600, Antec Fusion Remote, Harmony 650, LG 50PK550

  • 4.83er Kernel? 5.00er Kernel?
    Wow, du bist schon weit, aber irgendwas bringst du da wohl durcheinander ... ;)
    Gruß Andreas


    EDIT: 4.81 und 5.* ist die Version des Armbian Image, wie ich das erkennen kann... Der legacy Kernel 3.4.110 hat sich seit v4.6 nicht geändert.

  • :D neee, ich meinte die Paketversion, sorry... Hab's jetzt rückgängig gemacht und den Kernel von Jodamm gepinnt. Jetzt ist Ruhe! Trotzdem danke für's zuhören :D

    Gruß
    Holger


    HTPC: yaVDR 0.5, M3N78-VM, Athlon II X2 240, 2GB, 2x TT S2-1600, Antec Fusion Remote, Harmony 650, LG 50PK550

  • @jodamm


    Könntest Du evtl. diesen Patch http://pastebin.com/KuHF9uxz in Deinen kompilierten Kernel mit aufnehmen?


    Grüße

    NFS+DVB_Server: Ubuntu 12.04 Server LTS // Intel dn2800mt mit 1xWD Red (2TB), 1xWD Green (2TB), 5xSundtek SkyTV DVB-S/S2
    VDR: Gen2VDRV4 (VDR-2.1.6) // Asus C8HM70-I/HDMI , 64GB Sandisk SSD (System), 4GB Ram (Dualchannel), Zotac GT630, 4TB über NFS (Video0+Mediadaten), 5xSundtek SkyTV DVB-S/S2 über Lan, PS3 FB // softhddevice_GIT, NV-Treiber_340.58, FFMPEG_1.2.6, Kernel_3.16.5, Alsa_1.0.28 // KODI_15.0_ALPHA
    CLIENT: (Debian) Banana Pi (VDR-2.1.7) // streamdevclient // softhddevice // PS3 FB
    TEST: Grundig GSS 400 mit Vtunerc // Satip-Plugin // TVheadend


    Je mehr man gelernt hat, desto mehr weiß man, wie wenig man weiß.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!