Danke fürs Bild
— ich sehe die entscheidende Stelle:
svc_socket.c
.text+0x18): undefined reference to `getrpcbynumber'<br>collect2: error: ld returned 1 exit status<br>make[4]:
* [Makefile:515: mountd] Error 1<br>...<br>make[1]: * [Makefile:39: envira] Terminated<br>
Was bedeutet das?
- Beim Linken von nfs-utils (mountd, exportfs) fehlt die Funktion getrpcbynumber.
- Diese Funktion stammt normalerweise aus libtirpc (Transport-Independent RPC).
- Dein Build versucht wohl mit uClibc + libtirpc zu arbeiten, aber -ltirpc fehlt oder wird nicht korrekt eingebunden.
Typische Ursachen in Freetz(-NG)
- libtirpc nicht gebaut / fehlt → dann fehlt die Symboldefinition.
- ncurses/libtirpc Pfadproblem → Linker findet zwar Header, aber nicht die Library.
- Konfigurationsänderung in nfs-utils → will getrpcbynumber(), aber dein Toolchain/Libc bringt es nicht mit.
Mögliche Lösungen
- libtirpc ins Build erzwingen
In menuconfig nachsehen:
- Libraries → libtirpc aktivieren
- nfs-utils ggf. mit --enable-tirpc bauen lassen
- Sauber neu bauen (falls kaputtes Zwischenergebnis):
make libs/libtirpc/dirclean<br>make libs/libtirpc<br>make package/nfs-utils/dirclean<br>make package/nfs-utils<br>
- Workaround (falls libtirpc nicht gehen will)
Manche Freetz-Versionen patchen nfs-utils, damit sie ohne libtirpc mit glibc laufen – bei uClibc aber fehlt die Funktion → daher der Fehler.
→ In deinem Fall wahrscheinlich: libtirpc fehlt oder wird nicht gelinkt.
Meine Empfehlung:
Schau bitte mit folgendem Befehl, ob libtirpc überhaupt gebaut wurde:
ls -lh source/target-mips_gcc-13.4.0_uClibc-1.0.54-nptl_kernel-4.9/libtirpc-*<br>