QTS 4.4.1.1086 / Kernel 4.14.24-qnap - Problem bei Kernel Module Kompilierung für Playstation Eye

  • Guten Morgen Community :)


    ich versuche seit ein paar Tagen eine Playstation Eye Kamera an meinem Qnap TS-253BE zum laufen zu bekommen um diese unter Octoprint (3D-Druck-Server) nutzen zu können.

    Das dafür zuständige Kernel Modul gspca_ov534.ko scheint in QTS 4.4.1.1086 jedoch zu fehlen.


    Nach langen Bemühungen habe ich nun versucht anhand der Anleitung hier im Forum das Modul selbst zu kompilieren.

    Als Build Umgebung nutze ich ein Ubuntu 15.4, da dieses von der Toolchain her zu der von Qnap genutzen passt.


    Die Kompilierung lief soweit erfolgreich durch, allerdings bekomme ich folgende Fehlermeldung beim laden des Modules auf dem Qnap:

    Code
    insmod: can't insert 'gspca_ov534.ko': invalid module format


    Der Grund dafür ist ziemlich eindeutig wie dmesg zeigt:

    Code
    gspca_ov534: version magic '4.14.24 SMP mod_unload modversions ' should be '4.14.24-qnap SMP mod_unload '


    Hier noch der Auszug aus /proc/version vom NAS:

    Code
    Linux version 4.14.24-qnap (root@U16BuildServer49) (gcc version 4.9.2 (toolchain config: [gcc-4.9.2 binutils-2.25 glibc-2.21])) #1 SMP Thu Oct 10 01:06:18 CST 2019



    Ich habe das Modul für Kernel 4.14.24 kompiliert, erwartet wird aber 4.14.24-qnap. Ich habe zum kompilieren natürlich die config aus den Qnap Sources genommen (komischerweise war dort das Module welches ich benötige auch schon aktiviert...)


    Nun meine Frage:

    Kann ich den Suffix "qnap" beim kompilieren einfach irgendwie irgendwo anhängen oder wie muss ich vorgehen, damit das Modul geladen werden kann?


    Danke und Gruß

    David



    EDIT: Wie meistens offenbart sich einem die Antwort nachdem man im Forum gepostet hat... In meinem Fall gibt es wohl zwei Lösungen.

    1. Die schnellste Lösung wäre ein insmod -f bzw. modprobe -f um die version magic zu ignorieren. Leider unter QTS nicht möglich, da es für beide Tools kein Force gibt...

    2. Kernel neu kompilieren und vorher den Ordner entsprechend umbenennen --> in Progress. Ich melde mich in 10 Stunden wieder obs geklappt hat...



    EDIT2: Die Ordner Umbenennung war natürlich quatsch. Ich habe den Suffix nun über den Tag "EXTRAVERSION" im Makefile hinzugefügt, leider ist das Ergebnis immer noch das Gleiche, nur das ich jetzt nicht mehr weiß was der eigentliche Fehler ist, da der Kernel nun gleich ist:


    Code
    gspca_ov534: version magic '4.14.24-qnap SMP mod_unload modversions ' should be '4.14.24-qnap SMP mod_unload '

    2 Mal editiert, zuletzt von DazDavid ()

  • Nach langem grübeln habe ich dann eher durch Zufall die Lösung meines Problem gefunden...


    Ich habe die Config aus dem QTS Kernel in config und nicht .config umbenannt. Somit wurde beim kompilieren immer die Standard-Config des Kernels verwendet.


    Mit der richtigen Config konnte ich alles kompilieren und endlich auch die Module laden und die PS Eye Cam läuft.

  • config aus den Qnap Sources genommen

    Aus welchen Sources denn genau? Ich bin auch auf der Suche nach der Möglichkeit für die aktuelle Verison des Qnap Kernels Module zu kompilieren (konkret: Wireguard). Aber auf der QNAP GPL Seite finde ich nur veraltete Versionen. Könntest du die konkreten Schritte zur Einrichtung deiner Buildumgebung noch mal auflisten?

    EDIT: habe gerade gesehen, dass du genau das ja in dem verlinkten Thread getan hast. Dafür schon mal ein dickes "Dankeschön" meinerseits!


    Jagnix so oft werden bei Qnap die Kernel nicht gewechselt, ich denke mal man hat locker 12 Monate Ruhe, wenn man das Modul einmal gebaut hat...