Mein VDR Update auf Ubuntu Bionic 18.04

  • Hallo Zusammen,


    wie in diesem Thread bereits angesprochen, habe ich jetzt auf Ubuntu 18.04 gewechselt, was insbesondere für meine FF TT6400 aufgrund der veränderten Treiber Situation etwas Aufwand war.

    Aber, gleich voraus, die Vorarbeit insbesondere von S:oren , ist so klasse, dass das kein Hexenwerk mehr ist.

    Ich beschreibe hier meine Vorgehensweise ausführlich, dass andere evtl. in der Lage sind das als Anleitung zu nutzen. Wie immer, das ist die Vorgehensweise, welche bei mir funktioniert hat. Das erhebt keinen Anspruch all-umfassend und -wissend zu sein, sondern fasst nur die Klasse Arbeit anderer zusammen. Daher kann ich auch weder Gewähr, Haftung, etc. übernehmen ;-)

    Wichtig: Besonderheit meines Setups ist, dass ich auf einer Ubuntu 18.04 Desktop Version aufsetze, da ich den Rechner auch als Desktop nutze! Bei anderen "Headless" oder "Nur VDR" Systemen sind andere Distributionen unter Umständen sinnvoller.

    Zweite Besonderheit, ich habe meine komplette Systemplatte als ISO gespeichert, sodass ich jederzeit ein Backup meiner Konfiguration nutzen kann. Ich gehe davon aus, dass jeder ein Backup macht, bevor er/sie so einen Upgrade angeht ;-)

    Dritte Besonderheit: Ich nutze die normale Grafikkarte für den Desktop und die TT6400 FF-Karte für den VDR und schalte den HDMI jeweils am Fernseher um. der WAF dieser Lösung ist sehr hoch.


    So, hier meine Schritte auf Ubuntu 18.04

    1. Installation Ubuntu 18.04 Desktop

    Ich setze immer auf der grünen Wiese auf, da ich das als einfacher empfinde und die Konfigurationsdaten des VDRs einfach aus dem Backup raus nehmen kann.

    Einen Upgrade von alten Ubuntu-Versionen auf 18.04 habe ich nicht getestet.

    2. Aktualisierung auf neuesten Kernel.

    das habe ich nur gemacht, um den Prozess für die Treiber nicht mehrmals machen zu müssen.

    3. Make und Installation der Treiber Module für die FF TT 6400

    Da die Treiber weder in den kernel gekommen sind noch in einem DKMS zur Verfügung stehen, müssen die jeweiligen Module selbst gebaut werden. Soren hat dafür einen aus meiner Sicht echt genialen Weg erdacht, der es schnell und einfach macht.

    die Vorgehensweise erstellt ein Modul für die TT6400, welches dann installiert werden kann.

    Hier die Schritte im Detail:

    a. Stellt sicher, dass Ihr die Umgebung habt um einen kernel bauen zu können.

    https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

    b. Wir brauchen für die Vorgehensweise die Quellen des aktuell installierten Kernels.

    Für die Sourcen bin ich wie von S:oren beschrieben vorgegangen:

    Quote

    1. Schritt: die entsprechenden auskommentierten deb-src Zeilen in /etc/apt/sources.list aktivieren

    (bei meinem Bionic wären das deb-src http://de.archive.ubuntu.com/ubuntu/ bionic main restricted und deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-updates main restricted)

    2. Schritt: die passenden Sourcen zum aktiven Kernel holen (z.B. per sudo apt-get source linux-image-$(uname -r))

    3. Schritt: Build-Umgebung aufbauen: sudo apt-get build-dep linux-image-$(uname -r)

    c. Jetzt kann es los gehen. Kurz zum Verständnis um den Überblick nicht zu verlieren.

    Wir nehmen einen Kopie der installierten Kernel-Quellen.

    Dann wenden wir den Patch aus S:orens Repository auf diese Quellen an.

    Wir bauen die Kernel-Sourcen und wählen dabei nur die SAA716 Module aus.

    Die SAA716x-Module, welche wir erhalten, installieren wir.


    Also, die Schritte im Detail:

    Zuerst installieren wir die aktuellen Sourcen. Die Kernel version mit

    uname -r

    anzeigen. Bei mir war das nach den Aktualisierungen 4.15.0-48-generic:

    sudo apt install linux-source-4.15.0

    Danach müssten die Linux-Sourcen im Verzeichnis /usr/src liegen. Insbesondere liegt dort das File linux-source-4.15.0.tar.bz2 , welches wir später benötigen.

    Ich führe das ganze in einem Verzeichnis im Home-Directory durch. Falls das noch nicht besteht, muss das noch erstellt werden:

    mkdir ~/linux-saa716x

    cd ~/linux-saa716x

    Danach kopiere ich die kernel Sourcen in das Verzeichnis, auf die ich dann später patch anwende:

    tar xjf /usr/src/linux-source-4.15.0.tar.bz2

    Jetzt hole ich das Patchfile, welches ich später auf die Quellen des Kernels anwenden wollen. Das hole ich aus S:orens Repository:

    wget https://github.com/s-moch/linu…v4.15...saa716x-4.15.diff

    Um die Sourcen Patchen zu können wechsel ich in das Verzeichnis der Sourcen-Kopie:

    cd linux-source-4.15.0/

    Dann kopieren wir die aktuelle Kernel-Konfiguration, um sicherzustellen, dass das Modul später auch zur Umgebung passt.

    cp /boot/config-4.15.0-48-generic .config

    Vor dem Make müssen wir den Patch auf die Sourcen anwenden:

    patch -p1 < ../v4.15...saa716x-4.15.diff

    Dann erstellen wir eine Konfiguration für den make, welche nur die SAA716x Treiber auswählt für den Make:

    make KERNELVERSION=4.15.0-48-generic localyesconfig

    Wichtig: (Zitat von S:oren) # alles mit N bestaetigen, ausser SAA716X_SUPPORT y, SAA716X_CORE m, DVB_SAA716X_FF m

    Achtung: Sollte beim Make eine Fehlermeldung kommen, dass SSL-Libaries fehlen, muss das Packet libssl-dev installiert werden. Das hat bei mir die Meldung behoben:

    sudo apt-get install libsssl-dev

    Als nächstes kommt der eigentliche Make um die Module zu erstellen:

    make KERNELVERSION=4.15.0-48-generic -j6 modules

    Nach diesem Befehl liegen die erstellen Module in drivers/media/common. Diese kopieren wir in das korrekte Verzeichnis:

    sudo cp drivers/media/common/saa716x/saa716x_core.ko /lib/modules/4.15.0-48-generic/kernel/drivers/media/pci/

    sudo cp drivers/media/common/saa716x/saa716x_ff.ko /lib/modules/4.15.0-48-generic/kernel/drivers/media/pci/

    Danach binden wir die neuen Module ein

    sudo depmod 4.15.0-48-generic

    Ich habe dann sicherheitshalber einen Reeboot durchgeführt und unter dmesg kontrolliert, dass die TT 6400 Karte sauber erkannt wurde:

    sudo dmesg | grep SAA716

    (Wichtig Firmware nicht vergessen an die richtige Stelle zu kopieren Bei mir ist das /lib/firmware)


    4. Danach habe ich die Installation des VDR gemacht.

    Ich nutze dafür die VDR Packete des yaVDR Teams. Dabei bin ich jedes Mal begeistert, was Ihr in Eurer Freizeit leistet.

    Eine Änderung zu früher: Es gibt jetzt zwei Packetquellen, die man einbinden muss.

    Mir ist des erst aufgefallen, als ich beim Skindesigner Plugin eine unerfüllte Abhängigkeit zu den Skindesigner-Logos hatte.

    sudo add-apt-repository ppa:yavdr/experimental-vdr

    sudo add-apt-repository ppa:yavdr/experimental-main

    sudo apt-get update

    sudo apt-get install vdr vdr-plugin-dvbhddevice vdr-plugin-osdteletext vdr-plugin-skindesigner vdr-plugin-svdrpservice

    (und was Ihr sonst noch so an Plugins braucht)

    Im Prinzip sind momentan die experimental Repositories des yavdr-Teams für Bionic.

    https://launchpad.net/~yavdr


    Ach, noch ein Wort zu Lirc, da das bei mir bei jedem Update ein Problem darstellt.

    So auch dieses Mal ;-)

    Lirc befindet sich gelinde gesagt im Umbau. Insbesondere die 10-er Versionen haben bei mir nicht funktioniert. Mit etwas Research stösst man recht schnell auf den Tipp die alte Version aus den Xenial Packete zu installieren, was bei mir sehr gut funktioniert.

    Siehe hier: https://twosortoftechguys.word…irc-work-in-ubuntu-18-04/

    Zusammenfassung: Lirc deinstallieren, Xenial Packete kurz hinzufügen und Lirc aus Xenial installieren, Xenial Packete wieder rauswerfen und Lirc auf Hold setzen.

    Das ist sicher ein nicht gerade sauberer Workaround, aber bei mir hat es wunderbar funktioniert.

    Zur Info: Komischerweise musste ich trotz gleicher Konfiguration meines serielles IR Empfängers bei meinem Harmony Hub die Befehlswiederholung am kls-1.6 Gerät um einen Punkt erhöhen, dass die Bedienung wieder flüssig lief.


    Soweit mal.


    Günter


    PS: Das darf gerne kopiert, verbessert, etc. werden... ;)

    Ubuntu 18.04; Kernel 4.15.0-54; mit Parallelbetrieb von:
    VDR 2.4.00 über S2-6400 (HDMI1)
    XBMC /Kodi & Kubuntu Desktop über GT520 (HDMI2)
    Beides an Sony KDL-55EX725
    Harmony-Hub zum Umschalten zwischen VDR und XBMC
    MusicPD Steuerung per Android ist perfekt


  • Was für einen IR-Empfänger hast du denn?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich nutze einen uralten Serial Empfänger.

    Im Harmony Hub das KLS 1.6 Profil.

    Ubuntu 18.04; Kernel 4.15.0-54; mit Parallelbetrieb von:
    VDR 2.4.00 über S2-6400 (HDMI1)
    XBMC /Kodi & Kubuntu Desktop über GT520 (HDMI2)
    Beides an Sony KDL-55EX725
    Harmony-Hub zum Umschalten zwischen VDR und XBMC
    MusicPD Steuerung per Android ist perfekt


  • Ich nutze einen Atric V5 in der selben Konstellation.


    Der Treiber für den seriellen Empfänger steckt mittlerweile im Kernel - man muss das Modul serial_ir laden und die Serielle Schnittstelle passend konfigurieren, damit ein rc-core Geräte dafür erzeugt wird, lircd hat damit erst mal nichts mehr zu tun (aber man kann es nutzen, um die Events vom Kernel Input Device auf einen Lirc-Sockel zu bringen, wenn man das nicht mit eventlircd oder inputlirc machen will).

    sudo apt install setserial ir-keytable


    Erst mal dafür sorgen, dass das Modul geladen wird:

    Code: /etc/modprobe.d/serial_ir.conf
    1. serial_ir

    Dann noch das Paket setserial installieren und für die gewünschte Schnittstelle konfigurieren:

    Code: /etc/serial.conf
    1. #COM1 equivalent, /dev/ttyS0
    2. /dev/ttyS0 uart none
    3. #COM2 equivalent, /dev/ttyS1
    4. #/dev/ttyS1 uart none

    Und festlegen, dass die Schnittstelle passend konfiguriert wird, wenn das Modul geladen wird:

    Code: /etc/modules-load.d/serial_ir.conf
    1. #COM1 equivalent, /dev/ttyS0
    2. options serial_ir irq=4 io=0x3f8
    3. install serial_ir setserial /dev/ttyS0 uart none; /sbin/modprobe --ignore-install serial_ir
    4. #COM2 equivalent, /dev/ttyS1
    5. #options serial_ir irq=3 io=0x2f8
    6. #install serial_ir setserial /dev/ttyS1 uart none; /sbin/modprobe --ignore-install serial_ir

    Dann muss man noch sagen, dass ir-keytable die

    Keymap

    für den Empfänger laden soll:

    Code: /etc/rc_maps.cfg
    1. serial_ir rc-rc6-mce /etc/rc_keymaps/kls-1.6

    Außerdem sollte man die lircd-uinput.service deaktivieren, weil sonst Tastendrücke von lircd ins System gestreut werden:

    systemclt mask --now lircd-uinput.service


    Der Empfänger sollte dann nach einem Reboot so sichtbar sein:

    Code
    1. $ sudo ir-keytable
    2. /sys/class/rc/rc0/ gefunden (/dev/input/event3) mit:
    3. Name: Serial IR type home-brew
    4. Treiber: serial_ir, Tabelle: rc-rc6-mce
    5. Lirc Gerät: /dev/lirc0
    6. unterstützte Protokolle: other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
    7. Aktivierte Protokolle: lirc rc-5
    8. bus: 25, Anbieter/Produkt: 0001:0001, Version: 0x0100
    9. Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 m

    Die Lirc-Version aus bionic sollte dann mit der Standard-Konfiguration (devinput Treiber) die Tastendrücke von rc-core Geräten auf den Lirc-Sockel weiterreichen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • beachboy Warum nutzt du nicht den IR-Empfänger der FF HD 6400? Da wäre das IR-Kernel-Modul im ffhd6400 Treiber enthalten und man benötigt nur das remote-plugin, das war schon alles....


    Gruß

    Uwe

  • Hallo Zusammen,


    danke für die Anmerkungen.

    Den Seriellen Empfänger nutze ich schon ewig, da ich den

    auch für andere Programme zum steuern brauche.

    Dementsprechend hat meine lircd.conf zwei "Fernbedienungen",

    eine kls 1.6 für VDR, ein Profil für XBMC.


    Außerdem ist das Kabel über 2 Meter durch eine Wand verlegt,

    solange ich das nicht tauschen muss.... ;-)


    Gruss,


    Günter

    Ubuntu 18.04; Kernel 4.15.0-54; mit Parallelbetrieb von:
    VDR 2.4.00 über S2-6400 (HDMI1)
    XBMC /Kodi & Kubuntu Desktop über GT520 (HDMI2)
    Beides an Sony KDL-55EX725
    Harmony-Hub zum Umschalten zwischen VDR und XBMC
    MusicPD Steuerung per Android ist perfekt