Posts by jodamm

    @jodamm

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

    Grüße


    Mal sehen wann ich Zeit finde einen neuen Kernel zu erstellen. Langfristig hab ich vor, Igor zu überzeugen, dass er meine Patches in Armbian übernimmt. Der IR Treiber ist schon wieder drin, nachdem jemand darum gebeten hat.
    Gruß Joachim

    Wenn ich
    chmod +x /root/sata-install.sh

    ausführe, dann bekomme ich folgende Fehlermeldung:
    chmod cannot access: '/root/sata-install.sh' no such file or directory.

    Die Datei sata-install.sh finde ich ebenfalls im Root Verzeichnis nicht, ich habe noch eine grafische Oberfläche zusätzlich installiert, wo ich das dann nachgesehen habe.
    Was vielleicht auch noch relevant ist, als ich die uEnv.txt bearbeitet habe, war diese komplett leer, obwohl man da ja eigentlich einen Eintrag ändern sollte, wenn man Armbian auf der SSD laufen haben möchte.

    Jemand eine Idee wie ich das lösen kann, oder bleibt mir nur übrig das Image komplett neu aufzuspielen?


    Der Befehl zum installieren auf eine Festplatte heißt bei den neuen Images

    Code
    nand-sata-install

    Man muss die Festplatte aber vorher partitionieren.

    Und die uEnv.txt gibt es bei den neuen Images auch nicht mehr, da hast du wohl eine ältere Anleitung gelesen.

    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

    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 Donkey-Kong

    Quote

    Hi jodamm,

    ich habe einen BananaPi Pro nach deiner neuen Anleitung mit deinem Image installiert. Ich verstehe aber die Anbindung an den VDR nicht ganz. Wo werden denn die Befehle definiert? In der remote.conf sind ja nur die Tastarturbefehle enthalten. Hier die Ausgabe von:

    Um den VDR mit CEC zu steuern benötigt man wohl noch ein Plugin oder einen cec-deamon der die Befehle dann an Lirc weitergibt. Damit habe ich mich aber noch nicht beschäftigt. Ich schalte den Fernseher nur mit dem cec-client um.

    Gruß Joachim

    Hallo spacy,
    ich habe es gerade nochmal bei mir durchgespielt und es funktioniert.
    Bei cmake sollte auf jedenfall Exynos support: yes stehen.
    Vielleicht fehlt bei dir ein benötigtes Paket.
    Hier ist die Liste von der libcec Seite:

    Code
    apt-get install cmake liblockdev1-dev libudev-dev libxrandr-dev python-dev swig


    Nach dem installieren der Pakete am besten die Verzeichnisse /usr/local/src/platform und /usr/local/src/libcec löschen und es nochmal von vorne probieren

    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/Cubietruck_Deb…ezy_3.4.105.zip
    Image für Banana PI http://mirror.igorpecovnik.com/Bananapi_Debia…ezy_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

    Hello! I compile Kernel and libcec with your patches and install it to my Cubietruck. But cec-client not working for me: anytime fail to find TV, not send command (write error), only brodcast show.
    I think libcec error read-write to memory.


    Hi, and thanks for your feedback. What kernel sources did you use? Can you please post the output from:

    Code
    cec-client -t r

    I have done my testing with a Bananapi. I have a Cubietruck too, but i don't have much time atm to do some testing with it. I hope i can give you more support on sunday or monday.

    Update 23.01.2016: Neue Version der CEC Treibers, besseres Handling bei Send/Receive Error
    Update 18.01.2016: Benötigte Pakete und ein ldconfig am Ende der Installation hinzugefügt
    Update 17.01.2016: neuer Patch für libcec, da mit aktuellen Quellen aus git '-DHAVE_EXYNOS_API=1' nicht funktioniert.

    Hallo zusammen,
    ich habe einen Treiber für die Boards mit Allwinner Chipsätzen geschrieben der mit der libcec funktioniert und somit CEC Support für diese Boards bereitstellt.
    Jetzt suche ich ein paar Tester, da ich nur einen Fernseher mit CEC Funktion zur Verfügung habe.
    Zum testen kann ich zwei Wege anbieten:
    1. Für alle die ihren Kernel selbst kompilieren wollen, habe ich eine diff Datei erstellt. Einfach die Datei in euer Linux source Verzeichnis kopieren und mit patch -p1 < sunxi_cecV2.patch anwenden.

    2. Für alle die armbian von Igor Pečovnik benutzen habe ich .deb Pakete erstellt mit denen ganz einfach ein neuer Kernel mit dem CEC Treiber installiert wird.

    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 alles funktioniert hat sollte nun das Gerät /dev/CEC vorhanden sein.
    Für libcec benötigte Pakete installieren:

    Code
    apt-get install cmake liblockdev1-dev libudev-dev libxrandr-dev python-dev swig


    Jetzt noch die libcec installieren:

    Wäre schön wenn es ein paar Leute testen könnten und hier Rückmeldung geben würden.

    Gruß
    Joachim

    Den stage/fixed Branch habe ich gerade ein bißchen ge-rebased und ist wohl der aktuellste und sauberste Stand mit den ganzen fixes aus dev_upstream_fix2.
    Happy Testing!

    Danke Johns!

    Gruß Andreas

    Bei der letzten Änderung haben sich zwei Fehler eingeschlichen:
    In der Datei presentation_queue.c Zeile 488 muss end_presentation = 1; in end_presentation = 0; geändert werden.
    In der Datei vdpau_private.h fehlt in Zeile 32 #define INTERNAL_YCBCR_FORMAT (VdpYCbCrFormat)0xffff

    Gruß Joachim

    Ich glaube, es werden nur 16...255 Bits übertragen (statt 0...255). Das sieht fast aus wie ein Treiber-Problem. Funktioniert bei Euch das Setzen der Helligkeit in Softhddevice? Damit könnten wir das sicher ändern...

    LG
    beta

    Nein, die Einstellung hat keine Auswirkung. Ich habe auch schon versucht im VDPAU direkt andere Werte zu übergeben, auch das hat keine Auswirkung gehabt. Das Problem scheint tiefer zu liegen.

    Bei mir ist es auch etwas dunkler, aber nicht so schlimm dass man es nicht mit der Einstellung am Fernseher oder Monitor ausgleich könnte. Habe auch zwischen verschiedenen Cubietrucks und einem Banana Pi keine Unterschiede festgestellt. Den Fernseher musste ich von 50 auf 65 Helligkeit umstellen und beim Monitor auf das Film Profil.

    Frohe Weihnachten an alle.
    Joachim


    Hallo jodamm,
    erstmal vielen Dank für die sehr schöne Beschreibung zu lirc. :)
    Leider habe ich es einfach nicht geschafft weiter zu kommen, als zur Fehlermeldung: "Something went wrong"....
    Habe gestern folgendes getestet und kann nun den verbauten IR Empfänger mit dem Modul sunxi_ir verwenden.Cubieboard2 und Sunxi_ir
    Ich hatte mit einer lernfähige FB (One for all URC 11-7140) solange nach einen Code gesucht, bis KeyCodes auf allen Tadten kamen.... Leider sind die Tasten nun ohne Repeat, aber erstmal geht es. Es gibt wohl auch ein Modul gpio_lirc, das werde ich mir vielleicht noch anschauen....

    Viele Grüße, Uwe

    Schade, dass es bei dir nicht funktioniert hat. Das Modul gpio_lirc ist für das Senden von IR Befehlen gedacht, nicht zum Empfangen. Für das Senden muss man auch noch eine IR-Diode anschließen.


    Bekommt man den onboard IR Empfänger leicht mit lirc konfiguriert?

    Bei dem Image sind 2 ir Kernel Module dabei, einmal das sunxi_ir (wird Standardmäßig geladen) damit erkennt es nur bestimmte Fernbedienungen und es hat bei mir dann noch auf verschiedene FB reagiert. Und dann gibt es noch das Modul sunxi_lirc das liefert dann RAW Werte und man muss die Fernbedienung anlernen wie mit einem Selbstbau-Empfänger. Ich habe das sunxi_lirc Modul mit einer Sundtek Fernbedienung am Laufen. Das automatische Anlernen hat leider nicht so toll funktioniert, aber nach etwas Feintuning hat es dann geklappt.

    Edit:
    Ich habe das gerade nochmal durchgespielt:
    1. /etc/modules anpassen

    Code
    mcedit /etc/modules


    Die Zeile sunxi-ir auskommentieren oder löschen und sunxi_lirc hinzufügen

    Code
    sunxi_lirc


    Danach am besten neustarten

    Code
    reboot

    Nach dem Neustart den lirc Daemon stoppen und ins config Verzeichnis von lirc wechseln:

    Code
    service lirc stop
    cd /etc/lirc


    jetzt versuchen die FB anzulernen

    Code
    irrecord -d /dev/lirc0 neu.conf


    Jetzt zweimal Return drücken und dann fleißig auf der Fernbedienung drücken, bis es dem Programm reicht. Bei meiner FB gab es als Ausgabe unter anderem diese Zeile "Found gap: 16275", diese Zahl wird unter Umständen später nochmal gebraucht.
    Jetzt wird man aufgefordert einen Tastennamen einzugeben z.B. KEY_1. Nach druck auf Return soll man die Taste auf der FB drücken. Dann kommt bei mir immer der Fehler "Something went wrong." jetzt einfach 10 Sek. warten und dann 2 mal Return drücken. Jetzt soll man schnell hintereinander eine Taste auf der FB drücken danach beendet sich das Programm. Eventuell 10 Sek. keine Taste mehr drücken. Jetzt kann man noch mit dem nächsten Befehl prüfen ob die FB bei gehaltener Taste Wiederholung sendet.

    Code
    mode2 -d /dev/lirc0 -m


    Jetzt eine Taste auf der FB eine Weile gedrückt halten, man sieht dann ob nur einmalig Zahlen erscheinen oder ob es weiterläuft bis man loslässt. Mit Strg + C wird der Test beendet. Bei mir gab es dann folgende Ausgabe bei einer FB mit Wiederholung:


    Wie man sieht kommt die Zahl 16275 öfter vor, sie erscheint immer am Ende von einem FB Befehl. Bei meiner FB mit Wiederholung kommt am Ende mehrfach die Zahlenkomibnation "8959 2197 555 16275" vor, das ist der Wiederholungsbefehl. Davon brauchen wir die ersten beiden Zahlen 8959 und 2197.
    Jetzt öffnen wir die Datei neu.conf

    Code
    mcedit neu.conf


    Meine Datei hat folgenden Inhalt (Text mit <- hab ich als Kommentar hinzugefügt:


    Die Änderungen durchführen und abspeichern.
    Jetzt wird wieder versucht die FB anzulernen:

    Code
    irrecord -d /dev/lirc0 neu.conf


    Jetzt muss man nicht mehr wild auf der FB rumdrücken sondern kann nach drücken von Return mit dem Anlernen der Tasten beginnen. Nach dem Anlernen haben wir eine 2. conf Datei neu.conf.conf, die wird jetzt unsere neue lircd.conf.

    Code
    rm lircd.conf
    cp neu.conf.conf lircd.conf


    Jetzt noch eine neue hardware.conf erstellen und wir sind fertig.

    Code
    rm hardware.conf
    mcedit hardware.conf


    Inhalt der hardware.conf


    Den lirc daemon wieder starten und gleich mal ausprobieren.

    Code
    service lirc start
    irw


    Wenn man jetzt Tasten auf der FB drückt sollte eine entsprechende Ausgabe erfolgen. Den Test beendet man wieder mit Strg + C.
    Dieses Vorgehen wird wohl nicht mit jeder FB funktionieren, aber ich habe es mit 3 verschiedenen FB getestet und hatte nacher jeweils eine funktionierende lirc.conf.