[Problem] Benutzung von libfuse führt zu einem Builderror bei der 7490_6.50

gismotro

Mitglied
Mitglied seit
5 Sep 2007
Beiträge
525
Punkte für Reaktionen
128
Punkte
43
Hallo Fachleute,

was muß geändert werden damit folgende Fehlermeldung abgefangen wird :

ERROR: Build failed.
make: *** [source/kernel/ref-vr9-3.10.73/linux-3.10.73/vmlinux.eva_pad] Fehler 1
freetz@freetz-linux:~/original/74xx$

Code:
freetz@freetz-linux:~/original/74xx$ make
WARNING: The header file readline/readline.h was not found in /usr/(local/)include.
if [ ! -e source/.echo_item_start ]; then       echo -n "---> "; case "" in BIN)echo -n "package/: " ;; LIB)    echo -n "library/: " ;; TOOL)   echo -n "tool/: " ;; *) echo -n "kernel: " ;; esac; rm -f source/.echo_item_build; touch source/.echo_item_start; fi; echo -n " kernel image... ";
---> kernel:  kernel image... cmd() { PATH="/home/freetz/original/74xx/toolchain/build/mips_gcc-4.8.5_uClibc-0.9.33.2-nptl_kernel-3.10/mips-linux-uclibc/bin:/home/freetz/original/74xx/toolchain/build/mips_gcc-4.8.5/mips-unknown-linux-gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" LD_RUN_PATH="/usr/lib/freetz" make -j2  "$@"  || { printf "\n\\033[33m%s\\033[m\n" "ERROR: Build failed.";  exit 1; } };    if [ -e source/.echo_item_start -a ! -e source/.echo_item_build ]; then echo -n "building... "; touch source/.echo_item_build; fi; cmd -C source/kernel/ref-vr9-3.10.73/linux-3.10.73 CROSS_COMPILE="mips-unknown-linux-gnu-" KERNEL_MAKE_PATH="/home/freetz/original/74xx/toolchain/build/mips_gcc-4.8.5/mips-unknown-linux-gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" ARCH="mips" INSTALL_HDR_PATH=/home/freetz/original/74xx/source/toolchain-mips_gcc-4.8.5_uClibc-0.9.33.2-nptl_kernel-3.10/linux-dev/3.10.73 INSTALL_MOD_PATH="/home/freetz/original/74xx/source/kernel/ref-vr9-3.10.73" V=1 vmlinux.eva_pad
building... make[1]: Verzeichnis »/home/freetz/original/74xx/source/kernel/ref-vr9-3.10.73/linux-3.10.73« wird betreten
make[1]: *** Keine Regel, um »vmlinux.eva_pad« zu erstellen.  Schluss.
make[1]: Verzeichnis »/home/freetz/original/74xx/source/kernel/ref-vr9-3.10.73/linux-3.10.73« wird verlassen

ERROR: Build failed.
make: *** [source/kernel/ref-vr9-3.10.73/linux-3.10.73/vmlinux.eva_pad] Fehler 1
freetz@freetz-linux:~/original/74xx$

Ich konnte meinen Fehler auf das Paket libfuse eingrenzen. ( > Shared libraries > File systems > libfuse (libfuse.so) )

Gebaut wurde ein minimal-Image + libfuse für eine 7490 mit 6.50er Fw

Ich hatte vor einiger Zeit auch das Problem, daß eine ältere Freetz-Konfiguration für Tests nicht arbeiten wollte, weil irgendeine Abhängigkeit (irgendein übrig gebliebenes Kernel-Module, das nicht richtig abgewählt wurde) über die "modules-install"-Abhängigkeit unbedingt den Kernel übersetzen wollte und dabei die Patches und das richtige Make-Target (u.a. wegen fehlender Patches) nicht fand (da ging es noch um den Vanilla-Kernel bzw. die AVM-Quellen waren noch nicht veröffentlicht).

.....

Da der Kernel keine wirkliche Rolle spielt (allerdings sollte man dann auch wirklich sicher sein, daß da keine Kernel-Module erzeugt und ins fertige Image kopiert werden bzw. sich hinterher nicht beklagen, wenn es knallt), kann man sich mit einer Änderung des Make-Targets für den Kernel in der Datei "make/linux/kernel.mk" behelfen. Da einfach die Zeile "KERNEL_IMAGE:=vmlinux.eva_pad" in "KERNEL_IMAGE:=vmlinux" ändern und der Kernel-Build kommt zumindest bis an die Stelle, wo die Patches für den Kernel gesucht werden. Da dann eben noch ein passendes leeres Patch-Verzeichnis erzeugt und der Vanilla-Kernel sollte sich auch mit Freetz übersetzen lassen. Das Übersetzen aber eben definitiv nicht mit "verwenden lassen" verwechseln ...

Dieser Tip hat mich auch leider nicht weiter gebracht.
 

Anhänge

  • .config.txt
    58.1 KB · Aufrufe: 2
Zuletzt bearbeitet:
Ich rate mal (ohne da jetzt nachzusehen, nimm es als Schubser in die (hoffentlich richtige) Richtung für die eigene Suche), daß es irgendwo bei der libfuse eine Abhängigkeit zum "fuse.ko"-Kernelmodule geben könnte ... obwohl das gar nicht notwendig ist, weil das bei AVM bereits in den Kernel einkompiliert ist und (m.E. schon eine Weile) nicht mehr gesondert nachgeladen werden muß (und damit natürlich auch nicht erstellt).

Eigentlich dürftest Du bei "FREETZ_REPLACE_MODULE_AVAILABLE=N" überhaupt gar kein fuse-Paket auswählen können (damit auch keine libfuse) ... entweder da stimmen Abhängigkeiten nicht oder Du hast eine alte config verwendet.

Entweder Du kriegst es gebacken, Dir ein make-Target für den Kernel zu erstellen, damit der Build da nicht abbricht oder Du löst die Abhängigkeiten durch geeignete Patch-Vorgänge.

Am Ende wird ohnehin kein fuse.ko benötigt - die AVM-Version von ntfs-3g linkt leider offenbar die libfuse.so statisch, ebenso davfs2.

Vielleicht erbarmt sich ja irgendwann mal AVM und ändert das auf dynamisch ab, wie groß der Effekt beim Sparen von Platz im Image ist (ist ja weniger als 1x Library-Größe) und ob das Auswirkungen auf die Boxen ohne CONFIG_NAS hat, weiß ich nicht.

Was mich tatsächlich irritiert, ist die Frage, wie Du (ohne alte .config) die libfuse.so überhaupt "einschalten" konntest ... da ist dann vielleicht eine "dependency" zuwenig vorhanden.

Nach dem, was ich beim Überfliegen der .config gesehen habe, verstehe ich auch nicht, wofür Du die libfuse.so überhaupt brauchst - ich sehe kein Paket (grep ".*PACKAGE.*=[yY]" .config), was diese Library bräuchte.

Die Einstellung "BUSYBOX_FEATURE_MOUNT_NFS" (sollte sicherlich nicht auswählbar sein, wenn FREETZ_NFS_SUPPORT_NEEDS_REPLACE_KERNEL gesetzt ist und der Kernel gar nicht ersetzt werden kann) brauchst Du auch nicht bzw. sie macht gar keinen richtigen Sinn, solange der NFS-Support ohnehin fehlt.
 
Eigentlich dürftest Du bei "FREETZ_REPLACE_MODULE_AVAILABLE=N" überhaupt gar kein fuse-Paket auswählen können (damit auch keine libfuse) ... entweder da stimmen Abhängigkeiten nicht oder Du hast eine alte config verwendet.
Ja, auch ich benutze eine coustom.in für mein Projekt nach einem Rezept aus dem DEB/Zebradem. Deshalb hatte ich die selben Probs wie der User im anderen Thread. Da ich das IPPF aber kenne (Thema CS) habe ich mir die Mühe gemacht durch try&error herauszufinden welches addon/ Einstellung dieses oben beschriebene Problem verursacht. Nach deinem netten Hinweiß werde ich es einfach aus dem Image lassen denn wie du schreibst braucht man das libfuse wohl bei den aktuellen Imagen nicht mehr.

Ich danke Dir jedenfalls für diese kurze Überprüfung und möchte mich an dieser Stelle auch wieder einmal bei Dir und dem ganzen Freetz-Team für ihre Mühe bedanken.

Was mich tatsächlich irritiert, ist die Frage, wie Du (ohne alte .config) die libfuse.so überhaupt "einschalten" konntest ... da ist dann vielleicht eine "dependency" zuwenig vorhanden.

Zum Thema wie konnte ich libfuse aktivieren : Ich habe einfach einen neuen Ordner in der VM ausgescheckt und den Unterpunk libfuse aktiviert. War auch so ohne weiteres Möglich. Ich habe auch nix an der aktuellen Version geänder. Original Trunk ohne eigene Patche, skripte oder der gleichen.
Sollte das aktivieren so eigentlich nicht möglich sein, dann fehlt wohl wirklich eine Abhängigkeit im aktuellen Trunk.
 
Das sind zwei Paar Schuhe ... einmal das Kernelmodule fuse.ko, das von AVM in den Kernel einkompiliert wird (und dann eben nicht als Module irgendwo unter lib/modules nachgeladen wird) und einmal die libfuse.so, die von diversen anderen Paketen als Interface zu den FUSE-Funktionen im Kernel dann benötigt wird. Bei AVM sind das zumindest mal die Pakete "ntfs-3g" für die NTFS-Unterstützung bei Speichervolumes und "davfs2" für das Einbinden von WebDAV-Präsenzen in das Dateisystem der lokalen Box ("Online-Speicher") - die aber offenbar statisch gegen die libfuse gelinkt sind.

Wenn Du andere Pakete hast, die ihrerseits FUSE verwenden wollen, brauchen die schon noch eine libfuse.so, wenn sie dynamisch gegen die libfuse gelinkt werden oder auch eine libfuse.a / libfuse.la (oder sogar einzelne Object-Files) für statisches Linken auf dem Build-Host, wie AVM es offenbar macht. Meine Aussage (kein Paket zu sehen) bezog sich also nur auf die in der .config sichtbare Paketauswahl mit dem angegebenen "grep"-Kommando.

EDIT:
Ich halte auch Fragen von Leuten, die ihre "Rezepte" von anderen Sites beziehen, nicht per se für unangebracht. Was mich an der letzten Stelle (ich nehme mal an, daß Du diese meintest) aufgeregt hatte, war die (ob absichtlich oder nicht, will ich gar nicht beurteilen) falsche Darstellung dessen, was da gemacht wurde.

Jeder, der dann seinerseits die Arbeit auf sich nimmt und das nachzustellen versucht, macht das praktisch umsonst (bzw. für die Feststellung: "bei mir geht's", was ihn selbst u.U. gar nicht interessiert) und das ist es, was mich daran aufgeregt hat. Ich weiß auch, daß man keinesfalls verpflichtet ist, solche Fehler zu suchen und daß hier alles freiwillig erfolgt - aber wenn dann solche "Mißachtung" der Arbeit anderer deutlich wird (noch mal, das muß keine Absicht gewesen sein, aber nach meinem Rant überlegt sich ein anderer vielleicht ja doch zuerst, ob es nicht eher an seinen eigenen Modifikationen liegen könnte), dann muß man das auch mal deutlich machen dürfen - und ich war an dem Abend wirklich "empört", weil ich Zeit in irgendwelche Luftnummern investiert hatte.
 
Zuletzt bearbeitet:
Jupp, sehe ich auch so.

Leider ist das manchmal so, aber das sollte Dich, Euch, Uns nicht den Spaß an Freetz verderben. Es gibt ja auch User die sie hin und wieder auch mal bedanken für die Arbeit die man sich mit dem Freetz-Projekt macht.
 

Neueste Beiträge

Statistik des Forums

Themen
244,858
Beiträge
2,219,647
Mitglieder
371,572
Neuestes Mitglied
#Kuddel#
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.