TT S2-6400 - saa716x kompilieren unter 18.04

  • Direkt Deinen Kernel zu nehmen hört sich einfacher an,

    So mach ich es, aber da gibt es andere Herausforderungen, insbesondere die Kernel-config und die Anpassung der Boot-Konfiguration, also Bootloader und evt. initrd. Da sollte man vorsichtig und sorgfaeltig vorgehen, um nicht mit einem nicht mehr bootenden Rechner dazustehen.


    Gut, hier waere erstmal zu entscheiden, ob man das ganze git-Repository clonen oder einfach nur einen Branch (Kernel-Version) herunterladen will. Hat man das ganze Repository geclont, dann checkt man darin ('cd linux-saa716x') den richtigen Branch zur gewuenschten Kernel-Version aus z.B. 'git checkout saa716x-4.20', sonst packt man das heruntergeladene Archiv des Branches aus und wechselt da hinein. (hier bietet sich an, noch den aktuellen stable-Patch zur aktuellen Kernelversion anzuwenden, kann man z.B. bei kernel.org herunterladen)


    Nun braucht man eine vorlaeufige Kernel-Config, die kann man entweder von Ubuntu nehmen (z.B. 'cp /boot/config-4.15.0-43-generic .config', dann waere auch im Beispiel 4.15 als Kernelversion angebracht) oder z.B. mit 'make whatever_defconfig' passend zur eigenen Rechnerarchitektur ("whatever") erzeugen, oder von seinem letzten selbstgebauten Kernel nehmen.

    Nun muss man sich entscheiden, ob man eine initrd verwenden will, oder nicht. Wenn nicht, muss man z.B. mit 'make menuconfig' alle zum Booten notwendigen Treiber fest in den Kernel einkompilieren, Modul reicht dann nicht. (am Anfang einfacher koennte ein 'make localyesconfig' sein, dann hat man eine Minimalconfig zum Booten, gegebenenfalls kann man danach noch zusaetzlich gewuenschte Treiber mit 'make menuconfig' wieder neu auswaehlen). Nun auch gleich den saa716x_ff-Treiber noch mit auswaehlen, hab ich als Modul. Gut waere auch, einen eigenen Namen in localversion einzutragen, damit man auf keinen Fall unpassende Kernel und Module mischt.

    Dann z.B. mit 'make -j4' Kernel und Module bauen, gegebenenfalls auftauchende Fragen zu neu hinzugekommenen Konfig-Optionen mit dem voreingestellten Default-Wert bestaetigen. Dann Kernel-Module installieren 'make modules_install'.

    Nun Das Kernel-Image (arch/whatever/boot/zImage) nach /boot kopieren und in die Bootloaderkonfiguration eintragen. Wie das geht muss man sich passend zum Bootloader (z.B. grub2) heraussuchen.

    Nun wenn erforderlich eine passende initrd erzeugen. Da habe ich momentan auch keine Ahnung, wie man das fuer Ubuntu macht. Nicht vergessen, die initrd auch mit beim Bootloader anzugeben. Ich vermeide initrds bei selbstgebauten Kerneln.

    Wenn erforderlich ein 'update-grub2' (oder whatever) ausfuehren. (ich habe meine VDRs auf ARM-Boards unter Debian laufen, da geht das alles etwas anders...)


    Wenn man alles richtig gemacht hat, dann startet der Rechner beim naechsten Booten mit dem selbstgebauten Kernel. Wenn nicht, hat man in seiner Bootloaderkonfiguration hoffentlich noch den alten Distro-Kernel zur Auswahl, so dass man damit starten und nochmal neu versuchen kann.


    Ich hoffe, ich habe nichts Wichtiges vergessen, ist schon spaet...


    Gruss,

    S:oren

  • Hallo Zusammen


    Ich habe das gleiche Problem wie beachboy.

    Die Unterstützung vom 14.04 läuft ab und ich habe ein neues 18.04 parallel installiert.


    Nach langen versuchen und suchen habe ich eingesehen die alte Methode die Treiber für die TT6400 zu bauen funktioniert nicht mehr.


    Habe mich aber etwas zu früh gefreut als ich den Beitrag fand.

    Ich würde die 2. Variante die S:oren vorgeschlagen hat vorziehen, da ich auch noch eine DD Sine S2 drin habe die, so weit ich es weiß,vom Kernel unterstützt wird.


    Ich verspreche auch danach eine step-by-step Anleitung zu machen,

    beachboy

    Hast du eine Anleitung wie ich aus dem Git Repository

    https://github.com/s-moch/linux-saa716x/tree/saa716x-4.15

    die Treiber für die TT6400 bauen kann gefunden.

    Ooder kannst mir schreiben wie es geht?


    Du hast oben schon etwas geschrieben, aber bei

    2. Mit Hilfe der Inhalte des GIts die kompletten Kernelsourcen patchen


    bleibe ich schon hängen.

    Der Inhalt vom Verzeichnis "linux-saa716x-saa716x-4.15" ?


    Eine step-by-step Anleitung wäre echt gut.


    Gruß und Danke

    Uwe

  • Leider sind die Infos zu den beiden Varianten, den Treiber zu bauen, etwas verstreut hier im Forum.

    Neben diesem und dem oben verlinkten Thread gab es kürzlich hier nochmal ein ganz kurze Anleitung. Aber auch sonst haben verschiedene User schon Anleitungen für verschiedene Linux-Distributionen gepostet.


    Konkrete Fragen beantworte ich gerne, eine allgemeingültige Anleitung für beliebige Distros auf allen denkbaren Rechnerarchitekturen mit verschiedenen Bootloadern habe ich leider auch nicht.


    Gruss,

    S:oren

  • Hallo S:oren


    Danke für die Hilfe.

    Ich hänge bei dem Patch anwenden.

    Der Patch 'v4.15...saa716x-4.15.diff' liegt im gleichen Verzeichnis wie der Ordner 'linux-saa716x-saa716x-4.15'

    Ich wechle in den Ordner 'linux-saa716x-saa716x-4.15' hinein und mache folgendes

    Code
    1. patch -p1< /media/SicherBehalten/uwe/Installation/Kernel/KernelBauen/NEU18.04/NeueS_oren/v4.15...saa716x-4.15.diff

    Dann kommt:

    patching file drivers/media/common/Kconfig Reversed (or previously applied) patch detected! Assume -R? [n]

    Mache ich 'Enter' past es nicht

    Apply anyway? [n] Skipping patch. 1 out of 1 hunk ignored -- saving rejects to file drivers/media/common/Kconfig.rej patching file drivers/media/common/Makefile

    Mache ich '-R' das gleiche

    :/ Was mache ich falsch?


    Danke Uwe

  • Hi,


    drivers/media/common/Kconfig.rej

    schau dir Datei *.rej mal an ...da siehst du wo der Patch hängt.


    Gruss

    Wolfgang

  • Ich wechle in den Ordner 'linux-saa716x-saa716x-4.15' hinein und mache folgendes

    Das sieht so aus, als wenn Du den Kernel-Source von dort https://github.com/s-moch/linux-saa716x/tree/saa716x-4.15 herunter geladen hast.

    Dann ist der Patch bereits enthalten.

    Ich würde ja einen Kernel-Source von Deiner genutzten Distro nehmen und dann den Patch einspielen, sonst musst Du alle Kernelparameter händisch konfigurieren.

    VDR 2.4.1: ASUS M5A97 PRO, FX6100, 16GB, 2TB HD, GT630, Fedora 30 Kernel 5.2 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

  • Das sieht so aus, als wenn Du den Kernel-Source von dort https://github.com/s-moch/linux-saa716x/tree/saa716x-4.15 herunter geladen hast.

    Dann ist der Patch bereits enthalten.

    Genau das habe ich.


    Ich würde ja einen Kernel-Source von Deiner genutzten Distro nehmen und dann den Patch einspielen, sonst musst Du alle Kernelparameter händisch konfigurieren.

    So hatte ich es auch verstanden und erst versucht. Ergebnis:

    cd /usr/src/linux-source-4.15.0/

    patch -p1< /media/SicherBehalten/uwe/Installation/Kernel/KernelBauen/NEU18.04/NeueS_oren/v4.15...saa716x-4.15.diff

    can't find file to patch at input line 5

    Perhaps you used the wrong -p or --strip option?

    The text leading up to this was:

    --------------------------

    |diff --git a/drivers/media/common/Kconfig b/drivers/media/common/Kconfig

    |index 326df0ad75c03..af6bf723cc9a6 100644

    |--- a/drivers/media/common/Kconfig

    |+++ b/drivers/media/common/Kconfig --------------------------

    File to patch:

    Gruß Uwe

  • cd /usr/src/linux-source-4.15.0/

    patch -p1< /media/SicherBehalten/uwe/Installation/Kernel/KernelBauen/NEU18.04/NeueS_oren/v4.15...saa716x-4.15.diff

    can't find file to patch at input line 5

    Hast Du denn in dem Ordner auch die Kernel-Sourcen liegen, das sieht so aus, als wenn da keine vorhanden wären.

    Wie Du bei Deiner Distro zu den Kernel-Sourcen kommst, kann ich Dir leider nicht sagen, ich nutze hier Fedora.

    Wenn die Sourcen dort lägen, wäre zumindest das patch -p1... soweit richtig.

    VDR 2.4.1: ASUS M5A97 PRO, FX6100, 16GB, 2TB HD, GT630, Fedora 30 Kernel 5.2 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

  • Hi,


    hab den Patch mal gegen Kernel-4.15(ubuntu 18.04) angewendet ...kein reject!


    Gruss

    Wolfgang

  • Hast Du denn in dem Ordner auch die Kernel-Sourcen liegen, das sieht so aus, als wenn da keine vorhanden wären.

    Nein, du has recht :rolleyes:. Tut mir leid, ich sah den Ordner der genau so heist, wie das daneben gepackte 'linux-source-4.15.0tar.bz2'

    Hatte deshalb angenommen, dies ist beim installieren schon entpackt worden.

    Nach dem Auspacken sieht es besser aus.

    Also neuer Versuch.

    Danke

    Gruß Uwe

  • hab den Patch mal gegen Kernel-4.15(ubuntu 18.04) angewendet ...kein reject!

    Stimmt ist durch gelaufen.

    Manchmal steht man auf dem Schlauch.


    Mache ich dann mit dem Kernel-Source von dort https://github.com/s-moch/linux-saa716x/tree/saa716x-4.15 weiter


    * Distro-Kernel-config hineinkopieren


    * 'make localyesconfig', 'make menuconfig' und den Treiber als Modul aktivieren


    * 'make -j4 modules'


    * die fertigen .ko-Dateien liegen unter drivers/media/common/saa716x oder .../pci/saa716x, je nach Version


    oder wie?


    Bin mir auch noch nicht sicher ob die zweite Karte DD Sine S2 im Kernel ist oder ob ich die (ngene) auch noch bauen muss


    Danke

    Gruß Uwe

  • Mache ich dann mit dem Kernel-Source von dort https://github.com/s-moch/linux-saa716x/tree/saa716x-4.15 weiter

    Warum fängst Du immer wieder damit an? Aus dem Git brauchst Du nur den Patch.

    Du hast doch jetzt einen gepatchen Distro-Kernel-Source. Da machst Du jetzt weiter mit 'make localyesconfig, da wirst Du auch schon nach den Modulen gefragt.

    make menuconfig ist optional zum überprüfen.

    Die entstehenden *.ko Dateien dann nach /lib/modules in das passende Kernel-Verzeichnis kopieren. Und zum Schluß ein depmod -a.

    Wenn alles passt, werden die Treiber dann geladen, wenn Du den Rechner neu startest.

    Und auch die entsprechenden Firmware-Dateien nicht vergessen.

    Und dann noch beachten, das Du das Ganze nach jedem Kernel-Update neu machen musst.

    VDR 2.4.1: ASUS M5A97 PRO, FX6100, 16GB, 2TB HD, GT630, Fedora 30 Kernel 5.2 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

  • ,

    Hallo

    Bin mir auch noch nicht sicher ob die zweite Karte DD Sine S2 im Kernel ist oder ob ich die (ngene) auch noch bauen muss

    ...ist im Kernel enthalten!Siehst du mit modinfo ddbridge


    Gruss

    Wolfgang

  • Hallo


    Nach dem make localyesconfig muss ich noch make -j4 modulesmachen oder nicht.

    Kamel5 hat es nicht drin in dem Beitrag schon

    I2C Timeouts mit ddbridge


    Wenn ich make -j4 modulesmache kommt ein Fehler:

    C
    1. CC arch/x86/purgatory/sha256.o
    2. HOSTCC scripts/sign-file scripts/sign-file.c:25:10: fatal error: openssl/opensslv.h: Datei oder Verzeichnis nicht gefunden
    3. #include <openssl/opensslv.h>
    4. ^~~~~~~~~~~~~~~~~~~~
    5. compilation terminated.
    6. scripts/Makefile.host:90: recipe for target 'scripts/sign-file' failed
    7. make[1]: *** [scripts/sign-file] Error 1
    8. make[1]: *** Auf noch nicht beendete Prozesse wird gewartet
    9. … AS arch/x86/purgatory/entry64.o

    Gruß Uwe

  • Nach dem make localyesconfig muss ich noch make -j4 modulesmachen oder nicht.

    Ja, musst Du machen.

    Gemäß der Fehlermeldung fehlen Dir aber einige Headerdateien. Wie Du bei Deiner Distro dazu kommst, kann ich Dir leider nicht sagen.

    VDR 2.4.1: ASUS M5A97 PRO, FX6100, 16GB, 2TB HD, GT630, Fedora 30 Kernel 5.2 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

  • Hallo,


    fatal error: openssl/opensslv.h: Datei oder Verzeichnis nicht gefunden

    da fehlt z.B "libssl-dev"

    Guckst du -> https://wiki.ubuntuusers.de/Kernel/Kompilierung/


    Gruss

    Wolfgang

  • Hallo


    Habe die .ko-Dateien nach

    /lib/modules/4.15.0-48-generic/kernel/drivers/media/dvb-frontends/

    kopiert.

    Dann noch

    Code
    1. sudo depmod -a

    Neustart


    Gemacht werden nur 2 adapter unter /dev/dvb/ :( und das sind die ngene von der Cine S2 ( war erst nicht, habe ngene mit gebaut)


    Im Kernel-Protokoll steht das04.05.19 09:58 saa716x_core version magic '4.15.18 SMP mod_unload ' should be '4.15.0-48-generic SMP mod_unload '

    Wo die 4.0.18 her kommt weiß ich nicht ?(


    Gruß Uwe

  • Du hast den Treiber anscheinend mit einem Stable-Kernel 4.15.18 gebaut, und noch den Distro-Kernel 4.15.0-48-generic laufen.


    Ich kann nur immer wieder den Hinweis wiederholen, die 2 verschiedenen Wege zum Bauen und Nutzen des Treibers (Mainline/Stable- oder Distro-Kernel) nicht zu vermischen...


    Gruss,

    S:oren