Fritz!Box mit Freetz und nfsroot Tutorial

:!::!::!: Warnung! Auf eigene Gefahr! Die Garantie geht flöten und die Hardware könnte beschädigt werden! Auf eigene Gefahr! :!::!::!:

Schritt 1: Freetz compile und flashen

  1. Linux-System booten
  2. als normaler User anmelden (kein root, das man freetz nicht)
  3. freetz von http://freetz.org/wiki/Download herunterladen und in einen Ordner entpacken, in den entpackten Ordner wechseln
  4. make menuconfig eingeben, für IPv6 build toolchain anstatt download auswählen, dann im Hauptmenü ipv6 aktivieren
  5. alles removen, was erstmal zum Booten der Fritz!Box als nutzlos erscheint…
  6. nfsroot in den Paketen aktivieren (und wer mit usbroot rumspielen will dann auch gerne das)
  7. Replace Kernel Option auf jeden Fall aktivieren!
  8. beenden von Menüconfig, speichern der config
  9. make eingeben, falls Fehlermeldungen zum Source der Fritz!Box kommen, direkt von AVM z.B. unter http://download.avm.de/develper/opensrc/ herunterladen und ins dl/ Verzeichnis kopieren, dann sollte make weiter funktionieren
  10. auf das Ende vom Compilen warten, wenn keine Fehlermeldung kommt befindet sich das image unter images/ ; falls das Image zu groß ist wird eine Meldung angezeigt, dann wieder mit make menuconfig rein und weiter deaktivieren und remove wählen bis das Image passt. Notfalls muss die .config Datei gelöscht werden ⇒ auf ein Neues.
  11. Image über die Fritz!Box Weboberfläche Flashen
  12. reboot, Freetz sollte im Webinterface auftauchen (http:<localip>:81) ===== Prüfen der Systemeinstellungen (ADAM2 Settings) ===== Im Bootloader der Fritz!Box ist ein rudimentärer FTP-Server integriert mit dem bei Notfällen die environment-Konfiguration vom urloader angepasst oder per FTP ein Image neu eingespielt werden. Wichtig ist dabei, das man die IP-Adresse der Box beim Booten wissen sollte. Die IP Adresse des urloaders ist nicht die Gleiche, die beim Image-Start gesetzt wird! IP ist normalerweise: 192.168.178.1 oder 192.168.1.1 (wie bei mir). - Default Web-User: admin Web-Passwort: freetz - Einloggen, unter System „telnet“ aktivieren - telnet <ip der fritzbox> mit User: root und Passwort: freetz - nach erfolgreichem Login sollte die Fritz!Box nach einem neuen Kennwort fragen… Also neues Kennwort eintragen! Die Daten des urloaders lassen sich anzeigen: - cat /proc/sys/urlader/environment - um die IP-Adresse des urladers zu bekommen: cat /proc/sys/urlader/environment|grep my_ipaddress - falls IP-Adresse nicht „gefällt“, mit echo „my_ipaddress 192.168.178.1“ > /proc/sys/urlader/environment neu setzen ===== Zugriff auf den ADAM2 / urlader Bootloader per FTP in Notfällen ===== - FTP-Programm klickbereit zur Verbindung, Zieladresse aus my_ipaddress starten - Fritz!Box ausschalten, dann einschalten - innerhalb 5 Sekunden nach Einschalten der Fritz!Box mit dem FTP-Programm verbinden - User: adam2 Passwort: adam2 Beispiel einer ADAM2 Sitzung um die aktuelle my_ipaddress anzuzeigen oder weitere Environment-Variablen zu sehen: <code> ftp 192.168.178.1 (login mit user adam2 und passwort adam2) $ debug $ bin $ help $ quote GETENV my_ipaddress </code> Hier können auch dann Images wieder aufgespielt werden wenn gar nichts mehr geht. Den Rest Doku gibt es genügend im Netz. ===== NFS Boot in der Fritz!Box aktivieren ===== Bitte vorher die /etc/exports vom NFS-Server anpassen und das Verzeichnis freigeben/vorbereiten. Im freetz-ordner unter „build/modified/filesystem“ befindet sich das Dateisystem, das in den NFS-Root wandern sollte. - per Telnet auf die Fritz!Box (falls nicht möglich im Webinterface telnet aktivieren) <code> $ cd /etc/init.d $ ./rc.nfsroot help $ ./rc.nfsroot share <nfs-server-ip>:<nfs-share-path> NFS share name added to bootloader environment $ ./rc.nfsroot $ ./rc.nfsroot status $ ./rc.nfsroot on </code> reboot. ===== freetz compile für nfsroot, diesmal ohne Platzprobleme ===== - jetzt wieder ins freetz source Verzeichnis - make menuconfig - Alles auswählen was man sich so vorstellt und wünscht - Beenden und Speichern - zum Compilen make eingeben, warten… - Fehlermeldungen über die Größe des Images ignorieren, wir brauchen das Image nicht - Inhalt vom build/modified/filesystem zum nfsroot kopieren - Fritz!Box starten oder neu starten, es sollte jetzt vom NFS gebootet werden ===== TroubleShooting ===== - /var/log/messages des NFS-Servers prüfen, ob authentication oder NFS Fehler auftreten - nach Booten per Telnet auf die Fritz!Box und mit mount überprüfen, ob das Root (/) über NFS gelistet wird - das originale Flash-Root sollte unter /oldroot im readonly-Modus zu finden sein - mit touch /test.dat eine Testdatei anlegen - Datei sollte im NFS-Root auftauchen ===== Eigene Programme compilen ===== Quelle: http://freetz.org/wiki/help/howtos/development/compile_own_progs
    Nachdem die Toolchain heruntergeladen oder gebaut wurde, kann sie verwendet werden, um eigene Programme, oder solche, die noch nicht als Paket zur Verfügung stehen, zu übersetzen. Den MIPS-Compiler zum Pfad hinzufügen: <code> export PATH=/pfad/zu/freetz/toolchain/target/bin:$PATH </code> Optionen für ./configure: <code> ./configure –build=i386-linux-gnu –target=mipsel-linux –host=mipsel-linux </code> (i386-linux-gnu ist nicht unbedingt notwendig, nur beschwert sich configure, wenn es nicht angegeben ist. Auf 64-Bit-Plattformen oder Nicht-Intel-Architekturen muß es natürlich anders heißen.) Statisches Linken der Binaries, damit sie keine separaten Libraries benutzen, sondern sie gleich enthalten (funktioniert aber nicht bei jeder Software): <code> LDFLAGS=-static ./configure … </code> Statisch gelinkte Binaries sind einfacher zu installieren, weil sie eben alles enthalten - aber dadurch sind sie größer, und wenn sie mit anderen Programmen gemeinsam genutzte Funktionalität haben, verschwenden sie Speicherplatz. Außerdem müssen sie separat upgedatet werden, wenn z.B. in einer Library eine Sicherheitslücke gepatcht wurde. Es ist also am besten, statische Binaries nur zum Testen, oder wenn es anders nicht geht, zu verwenden. In manchen Fällen ist es ratsam die CC-Variable explizit zu setzen. Auch die Angabe der CFLAGS kann nicht schaden: <code> ./configure … CC=„mipsel-linux-gcc“ CFLAGS=“-Os -pipe -march=4kc -Wa,–trap“ </code> ===== Addon Paket installieren ===== Quelle: http://freetz.org/wiki/help/howtos/development/install_addon
    Pakete, die noch nicht in Freetz integriert sind, können als sogenanntes Addon Paket installiert werden. Dazu das gewünschte Paket vor dem Erstellen des Image herunterladen und nach ./addon entpacken. Folgendes Beispiel geht davon aus, dass man sich im Verzeichnis des entpackten Freetz befindet: <code> tar -C addon -xjvf /pfad/zu/addon-paket-0.1-freetz.tar.bz2 </code> Danach muss das Paket in der Liste ./addon/static.pkg in eine neue Zeile eingetragen werden (im obigen Beispiel: addon-paket-0.1). Addon Pakete werden nach den integrierten Paketen in der Reihenfolge des Auftretens in ./addon/static.pkg gestartet. Falls es sich bei dem Addon Paket um eine andere Version eines bereits integrierten Pakets handelt, so sollte das ursprüngliche Paket in make menuconfig unter Package selection deaktiviert werden, um Versionskonflikte zu vermeiden. ===== Links ===== - Danke an den Thread auf IPPP bzw dem User olistudent, der mit folgendem Kommentar für mich die passende Hilfe bei der Google-Suche hatte: <code> Sowohl mini_fo, wie NFS- als auch USB-Root werden über das rc-Skript konfiguriert. Dafür wäre natürlich eine Weboberfläche nicht schlecht. Ruf mal “/etc/init.d/rc.nfsroot help“ auf. MfG Oliver </code> - Debian debootstrap auf der Fritz!Box - Freetz FAQ - AVM/Freetz Wiki - Freetz Package Listing - Howtos - AVM-Befehle - Startup-Scripte - Bandbreiten-SVG Howto - Adam2 Hilfe - Eigene Pakete erstellen - Factory Defaults über ADAM2 - Freetz USB Root, etwas integrierter zu konfigurieren - Wlan vom Lan trennen - AVM Firewall im Detail erklärt - IPv6 inkl. Subnet für das Lan mit Sixxs - OpenVPN
 
 
         
         
   
(18464 views) fritzbox_freetz_nfsroot.txt · Zuletzt geändert: 2012/01/14 18:36 von terminar