Tipps zu USB-Root

abraXxl

Mitglied
Mitglied seit
9 Jan 2007
Beiträge
242
Punkte für Reaktionen
0
Punkte
0
Hallo,

Dieser Thread soll ein Themensammlung zu Root auf Externen Medien wie z.B. USB werden.
(MMC und NFS sind derzeit noch nicht näher hier erläutert).
Anmerkungen bitte als Antwort schreiben und diskutieren. Hauptthread wird dann später erweitert, bzw. ggf. ins freetz-wiki ausgelagert.

Zuerst einige Facts:

Es existieren mehrere Möglichkeiten das Root-FS auf externe Medien auszulagern:
  1. USB-Root (Freetz-Packet)
  2. USB-Root on Demand (Freetz, via Automount und Autorun)
  3. NFS-Root (Freetz-Packet)
  4. Root on MMC für FritzFon (link)
Folgende Systeme laufen laut Erfahurngsberichten auf Fritzboxen mit externen Medien als RootFS.
  1. AVM-Original - Hier bei handelt es sich im ein Abbild des Flashs, welches einfach nur vom externen Medium gestartet wird.
  2. Freetz - Ein durchgebautes Freetz auf ein externes Medium gelegt, und als RootFS benutzt.
  3. OpenWrt-Root (mipsel) - Den Kamikaze-SVN Tree von OpenWrt fuer eine Mipsel-Platzform (z.B. AsusWL500gP, WRT54g, ...) als tar.gz gebaut und als RootFs mit etwas Handarbeit eingerichtet.
  4. Debian (mipsel) - Ein Bootstrap fuer mipsel von Debian, als RootFS zum laufen gebracht.
USB-Flashspeicher sollten mit möglichst Flash-schonenden Filesystem und Mountoptionen
einghängt werden:
Wer Unix-Dateirechte braucht sollte ext3 verwenden, mit den Mount-Optionen noatime,nodiratime.
Das AVM-Original, Freetz, und OpenWrt-Root laufen auch nur mit ro-Mounts.

Im Anhang befinden sich Serviervorschläge, bzw. Modifikationen zu /etc/profile und zwei Skripte, welche helfen koennen, mit ro-gemountet Rootfilesystemen umzugehen.

Folgende Schritte helfen um eine Freetz-Rootfs fuer obige Punkte zu erstellen:
  1. Formatiert eine Partition des USB Stick mit ext2 oder ext3
  2. Konfiguriert und kompiliert Freetz mit den gewollten Paketen. Sollte die Meldung kommen das Image sei zu gross, koennt ihr dies ignorieren.
  3. /media/usb sei der Mount-Point des USB-Sticks. Unter /usr/src/freetz sei der Freetz-Tree zu finden.
    Nach erfolgter Kompilierung von Freetz ist /usr/src/freetz/build/modified/filesystem nach /media/usb/rootfs zu kopieren.
    Code:
    cp -a /usr/src/freetz/build/modified/filesystem /media/usb/rootfs
    Anschliessend sind noch die Dateirechte auf dem Stick zu korrigieren:
    Code:
    chown -R 0.0 /media/usb/rootfs
    Dafuer sollte man root sein.
Das Rootdateisystem ist nun präpariert.

Folgend sind einige weitere Schritte notwendig um das Sytem wirklich von diesem Medium als Rootfs zu starten. Diese sind abhängig von der gewählten Methode in allen fällen ist ein bereits geflashtes Freetz von Vorteil, da es mit ext3 formatieten USB-Medien und der unmodifizierten AVM-Firmware nicht funktioniert.
  • USB-Root (Freetz-Package)
    Ihr müsst feststellen unter welchem Devicename das Gerät von der AVM-Firmware erkannt wird, z.B. /dev/sda1.
    Aktivieren könnt ihr dies dann via
    Code:
    /etc/init.d/rc.usbroot store /dev/sda1:/rootfs
    via Telnet auf der Fritzbox.
  • USB-Root on Demand (Freetz, via Automount und Autorun)
    Das Skript aus dem Beitrag in das Root-Verzeichnis des USB-Sticks kopieren.
    Es muss ebenso aktiviert sein das beim Einsteckn von Sticks automatisch gewisse Skripte ausgeführt werden.

now we have more fun
 

Anhänge

  • root-fs-ro-rw.tar
    6.5 KB · Aufrufe: 178
Zuletzt bearbeitet:
anfang

wo fängt man hier an einen stick für usb-root (nach methode 1,2,...) vorzubereiten? erst danach kann man seine erfahrungen ja hier gut ergänzen

grüsse,
ozett
 
Einfach den Inhalt von build/modified/filesystem auf den Stick kopieren. Muss das als root gemacht werden? Vorher solltest du einmal "make" mit den gewünschten Paketen durchlaufen lassen. Wenn er am Schluß abbricht weil das Image zu groß ist, dann macht das nichts.

MfG Oliver
 
Hallo abraXxl, hallo Forum,

hat das
Root on MMC für FritzFon (link)
irgendwer am laufen? Oder ist das ein HOAX?

Gruß
Bumblebee
 
Hi !

Hallo abraXxl, hallo Forum,
irgendwer am laufen? Oder ist das ein HOAX?
Ein Hoax ist es keines Falls. Ich selber habe die Hardwaremodifikation fuer einen Freund in der FBF bereits vorgenommen und fuer ihn den mmc-Treiber kompiliert.
Das Medium wurde erkannt und es lies sich davon lesen und schreiben.
Dies sind auf jedenfall nötige Bedingungen fuer ein Rootfs auf diesem Medium.

Durch eine geschickte debug.cfg ist ein chroot/pivot-Root bestimmt möglich. Mangels Hardware bin ich aber noch nicht investigativ tätig geworden.

mfg
 
Hi

Kurzanleitung von Ollistudent in den Hauptartikel eingepflegt.

cya
 
danke, supi.

ozett

nachtrag:
etwas vorsicht beim nachmachen. habe mit einer 3170 probleme bekommen (hier)
ein warnhinweis für sowas im webgui wie bei

Einstellungen:
Altes Root-Filesystem (Flashspeicher) unmounten: ja/nein
wäre sinnvoll (wenn der stick nicht funktioniert bleibt bei einem ja die box hängen (Freetz-devel 2402)) und auch ob das mounten eines usb-rootfs nur über telnet geht oder auch übers webgui (ich hatte noch keinen vollen erfolg über webgui).

update:
im Webgui steht:

"Geben Sie hier den vollen Ordnernamen innerhalb der Ordner-Hierarchie des USB-Gerätes an ..."

und damit ist vielleicht nicht die übernahme der hardwareerkennung weiter oben aus dem webgui (wie /dev/sda1) gemeint, sondern nur der relative pfad auf dem stick (wie /rootfs)?

vielleicht gleich sowas wie ne hilfe-faq zur anleitung usb-root anlegen. die 3 wichtigsten abhilfen wenns schiefgeht ....
 
Zuletzt bearbeitet:
kann man eingentlich nun das FileSystem auch updaten, wenn der Stick in der FritzBox eingesteckt ist, und gerade mit USB-Root in Betrieb ist?
 
Theoretisch ja. Das kommt darauf an, ob der Stick read-write eingebunden ist. Da jemand im Forum festgestellt hat, dass es nicht gut ist, wenn er das immer ist haben wir ihn per default nur noch read-only eingebunden.

MfG Oliver
 
was müsste ich machen, damit ich ihn rw einbinde um die Daten aufzuspielen und dann wieder nur read?
muss nämlich eine FritzBox aufsetzen und das updaten wird blöd, da es ca 1000km fahrt in eine Richtung wäre :)
 
ich würde einmal usb-root deaktivieren, dann die Box mit minimal-Firmware aus dem Flash neustarten. Danach die Daten auf den Stick rüberkopieren. Die Partition ist doch als rw unter uStorXX angebunden. Danach wieder usb-root aktivieren und die Box neu starten.

Zum permanenten RW-Zugriff. Das haben schon mehrere versucht. Leider kann das EXT2-Dateisystem auf dem Stick nicht sauber unmounted werden, wenn die Box spontan rebootet oder ausgeschaltet wird (Stromausfall). Beim Hochfahren wird dann das "unsaubere" System nicht mehr gemountet, was zu mächtigen Problemen führt. Einige berichteten hier darüber, dass sie die Sticks nachher extern neu formatieren müssten.

MfG
 
Hi !

Wenn USBROOT an und aktiv ist ist der USB-Stick ja als / gemounted.

Zum RW machen sollte
Code:
mount -o remount -w /
reichen.

Zum RO machen
Code:
mount -o remount -r /
genügen.

cya
 
Funktioniert super.

Danke,
Oliver
 
Hallo,

wenn ich es richtig verstehe, kann ich usbroot verwenden, wenn auf meiner Fritzbox nicht mehr genug Speicher zur Verfügung steht. In diesem Fall packe ich Pakete auf eine USB-Platte (die ist ohnehin angeschlossen) und gut ist.

Aber ich verstehe nicht, wie ich Freetz beibringe, welche Pakete aufs USB-Root sollen und welche direkt in die Firmware sollen.
So soll ja z.B. der VOIP Teil unbedingt in die Firmware, aber MC oder Samba können ruhig auf die Platte.
Wie kann ich dies auswählen? Oder geht das nur manuell?
Wenn ich freetz aktuell kompiliere, dann erhalte ich am Ende die Nachricht, dass das Image 65kB zu groß ist. Wenn ich USBRoot verwende, dann wird dies doch weiterhin so sein, oder?

Gruß,
Hendrik
 
Da hilft ein wenig lesen. Es gibt keinen (direkten) Automatiscmus dafür. Downloader, Outsourcer und noch ein Tool sind aber irgendwo hier im Board erklärt, verlinkt und vorhanden, somit Auffindbar und benutzbar.

Und wie USB-Root funktioniert, ist auch hier in dem Thread schon erklärt ;)
 
Du kannst mit USB-Root keine Firmware aufteilen. Bei USB-Root muss die gesamte Firmware auf die Platte.

MfG Oliver
 
Hi !
Hallo,
wenn ich es richtig verstehe, kann ich usbroot verwenden, wenn auf meiner Fritzbox nicht mehr genug Speicher zur Verfügung steht. In diesem Fall packe ich Pakete auf eine USB-Platte (die ist ohnehin angeschlossen) und gut ist.
fast richtig. USB-Root kannst du verwenden, wenn dein selbsterzeugtes Freetz nicht mehr in das Flash passt. Dann sagst du im per USB-Root, dass der Stick/die Festplatte jetzt alle Programme enthält welche sonst im Flash sind.
Du lagerst also alle Packete auf ein externes Medium aus, auch die AVM Software.

cya
 
Hallo,

ok, das hatte ich falsch verstanden.
Dann bleiben mir noch zwei Fragen:
1) Benötige ich die USB-Platte dann nur während des Booten der FritzBox, oder permanent (konkret hätte ich gerne, dass die Platte sich schön häufig schlafen legt).
2) Wie erstelle ich das Image, das ich flashe? Funktioniert es so:
i)Image erstellen, das nur Usb_root als Zusatzpaket installiert hat
ii) flashen des Image
iii) Anwählen aller gewünschter Pakete
iv) Mit dem ersten Beitrag aus diesem Thread fortfahren

Oder habe ich wieder etwas falsch verstanden?

Gruß,
Hendrik
 
Die Platte wird bei USB-Root wohl häufigeren Zugriffen unterliegen. Ich weiß nicht, ob die dazu kommt sich abzuschalten.

Den Rest hast du richtig verstanden.

MfG Oliver
 
Hallo,

so ein Ärger. Das heißt, dass usbroot für mich nichts ist.
Dann schon eher ein "lokales downloader-cgi". Geht das? Das hätte den Vorteil, dass nur ein Zugriff nötig und dann ruhe auf der Platte ist.

D.h. das ganz normale downloader-cgi, aber der download findet von der angeschlossenen USB Platte statt?

Gruß,
Hendrik
 
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.