7050 zu eng: DS-Mod-Teile manuell auf externe Platte auslagern

olistudent schrieb:
lzma komprimiert sogar besser als bzip2
Leider habe ich unter FriBoli kein lzma gefunden. Eine nachträgliche Installation von lzma hatte ich versucht aber abgebrochen, weil dabei viele Bibliotheken fehlten. Ich wollte mir deswegen mein FriBoli nicht kaputt installieren, da ich mich mit debians Paketverwaltung nicht auskenne. Mag sein, dass es andere Wege möglich sind, als "lzma e"

MfG
Hermann
 
@dsteinkopf: Da er es dort selbst erzählt hat, gebe ich keine privaten Informationen weiter. Rechnen kannst Du ja selbst. P.S.: Ich an seiner Stelle würde danach erst mal Urlaub machen, also fangt nicht gleich zu drängeln an, wenn's soweit ist. Außerdem kommt nach der Arbeit ja irgendwann auch die Prüfung.

@Hermann: Andere Wege? Na ja, der DS-Mod baut ja ein SquashFS, und den hast Du installiert... Davon abgesehen, zerschießt Dir der Paketmanager nicht Dein FriBoLi, keine Angst.
 
kriegaex schrieb:
@dsteinkopf: Da er es dort selbst erzählt hat, gebe ich keine privaten Informationen weiter. Rechnen kannst Du ja selbst. P.S.: Ich an seiner Stelle würde danach erst mal Urlaub machen, also fangt nicht gleich zu drängeln an, wenn's soweit ist. Außerdem kommt nach der Arbeit ja irgendwann auch die Prüfung.
Klar. War auch eher eine rethorische Frage.
Ich habe das selber mal durchgemacht...
(Davon abgesehen wird doch auch in Foren selten gedrängelt oder nachgefragt ;-))

Dirk
 
Zwischenstand.

Zwischenstand meiner Experimente:

NFS habe ich nicht hinbekommen - auch wenn es kriegaex Fritzbox 7170 funktioniert. Weder mit den nfs-Modules direkt im Image noch wenn ich sie per wget nachlade. Da habe ich wirklich viel probiert... Würde mich freuen, wenn sich da noch ein 7050-Besitzer versuchen würde.

Dafür war ich mit cifs erfolgreich. Das passt aber nicht ins Image. Also hole ich es von der debug.cfg per wget und mounte das Filesystem. Dann lade ich von dort alles Weitere: Das sind derzeit v.a. iptables und openvpn.

Das Image enthält nur folgende Pakete im Mod: syslogd, bftpd, dnsmasq, mini_fo. Keine zusätzlichen libs ö.ä. Keine eigenen Manipulationen mehr - außer syslog (-C kein Leerzeichen), mini-fo (modprobe mini_fo), patch fwmod (exclude iptables).

Eigentlich bin ich jetzt damit ganz zufrieden, allerding stüzt mir die Box regelmäßig ab. Siehe hier.

Dirk
 
Hallo dsteinkopf,

ich weis nicht ob ich jetzt was bekanntes und obendrein offtippic schreibe, aber ich habe NFS auf meiner FB7050 mit nem 2.40-Kernel und DS-Mod am laufen, war damal allerdings auch kein Problem das zu bauen. Ich verwende das um die MC-Binaries auszulagern, weil ich unbedingt ne FB7050 mit DNSMASQ, NFS, DROPBEAR und MC haben wollte, läuft seitdem stabiel und deshalb hab ichs seitdem auch nicht mehr angelangt (never change a running Sytem).
Der 2.6er Kernel + Neue AVM-Funktionen und ein neuer DS-Mod mit Minifoo und ipkg würden mich natürlich schon reizen, allerdings nur wenn sichergestellt ist das ich die oben genannten Zusatzprogramme auch wieder mit unterkriege. NFS-Speicherplatz ist bei mir kein Problem, mein NSLU2 läuft jetzt schon 260 Tage ohne reboot.

tschüs

chriwi
 
Ja, stimmt. Mit dem alten 2.4-er Kernel ist das bei mir auch einwandfrei gelaufen. Erst mit der aktuellen Version hat es bei mir mit NFS nicht mehr klappt.

Ich habe das nun durch CIFS (mount.cifs) ersetzt und das geht auch wieder.

Dirk
 
@chriwi. ipkg kommt erst im nächsten Danisahne-Mod, an dem momentan noch gebaut wird. Den Rest findest Du in ds26 (aktuell 14.4).
 
Hallo kriegaex,

> ipkg kommt erst im nächsten Danisahne-Mod, an dem momentan noch gebaut wird.

Das war mir bewust, deshalb kann ich mich ja auch noch zurücklehen und in ruhen lesen ohne gleich in blinden Actionismus zu verfallen. ;)
Solange es nichts wirklich neues gibt bin ich mit meinem System eigentlich sehr zufrieden und bisher überwiegt die Gefahr alle kaputt zu machen den bisher möglichen vorteil, oder habe ich etwas wichtiges übersehen.

tschüs

chriwi
 
HowTo: nur Cifsmount lokal, alles andere von Platte

Ich wollte fast schon ein neues Topic anfangen, aber ich glaube hier passt es ganz gut. Ich habe seit Kurzem eine nslu2 mit Debian drauf, auf der 320 GB Festplatte, die da dran ist, ist noch ein kleines Eckchen für die Dateien der FB frei ;).

Hier also meine Vorgehensweise:

1) ds-mod mit allem, was das Herz begehrt bauen. Das Image wird viel zu groß, macht nix!

2) Große Dateien rausschmeißen, diese kommen auf die externe Platte. Dafür habe ich mir ein kleines Script geschrieben, was die Dateien verschiebt, die notwendigen symlinks setzt und den Step 3 aufruft:

Code:
#!/bin/bash
EXT=/pfad/zur/externen_platte
FS=/usr/src/ds26-15.2/build/modified/filesystem

mkdir -p $EXT

# Dateien verschieben
cd $FS/usr/sbin/
mv -f dropbearmulti $EXT
ln -fs /mod/sbin/dropbearmulti

mv -f dnsmasq $EXT
ln -fs /mod/sbin/dnsmasq

mv -f strace $EXT
ln -fs /mod/sbin/strace

cd $FS/usr/bin
mv -f mc.bin $EXT
ln -fs /mod/bin/mc.bin

# Softlinks
cd $FS/usr/lib
ln -fs /var/fbf/usr/lib/asterisk

cd $FS/etc
ln -fs /var/fbf/etc/asterisk

cd /usr/src/ds26-15.2
./fwmod -p -d build dl/fritz.box_fon_wlan_7050.14.04.33.image
Cifsmount wird so konfiguriert, dass es //idefix.local/fbf auf /var/fbf mountet. Idefix ist die nslu2, bzw. deren Samba-Server. (Sicher könnte man es auch per NFS machen, aber ich glaube das CIFS-Paket ist kleiner als die NFS-Module).

Jetzt stellt sich nur noch das Problem, dass CIFS zwar sehr früh ausgeführt wird, aber gleich danach dnsmasq und dropbear, aber die sind bereits ausgelagert. Also muss ich gleich wenn CIFS fertig ist, die Symlinks setzen. Dazu habe ich rc.cifsmount verändert:

Code:
  exitval=$?

  if [ "$exitval" -eq 0 ]; then

    [B]ln -s /var/fbf/mod/lib/*  /mod/lib
    ln -s /var/fbf/mod/bin/*  /mod/bin
    ln -s /var/fbf/mod/sbin/* /mod/sbin[/B]

    echo 'done.'
Statt dieser uneleganten Lösung könnte man aber an dieser Stelle vielleicht ein 'Auslagerungspaket' für den ds_mod reinbauen, wo man genau so was machen kann.

Bevor man jetzt das gebaute Image flasht, müssen die oben entfernten Binaries auf die externe Platte geschoben werden. Ich habe mir dort unter /fbf die mod-Verzeichnisstruktur nachgebaut. Das booten der FB geht nun wesentlich schneller, da ich den downloader nicht mehr brauche.

Auch Asterisk betreibe ich jetzt von der Festplatte, was eine Menge Vorteile bringt.

Udo
 
Das "Auslagerungspaket" heißt Downloader-CGI und ist bereits Teil des DS-Mods. Damit es früh genug gestartet wird, solltest Du noch Folgendes ändern (ist im DS-Mod bereits korrigiert):
Code:
--- make/downloader/downloader.mk	2007/10/19 19:28:17	1231
+++ make/downloader/downloader.mk	2007/10/19 19:37:59	1232
@@ -31,7 +31,7 @@
 
 downloader-list:
 ifeq ($(strip $(DS_PACKAGE_DOWNLOADER)),y)
-	@echo "S30downloader-$(DOWNLOADER_VERSION)" >> .static
+	@echo "S10downloader-$(DOWNLOADER_VERSION)" >> .static
 else
-	@echo "S30downloader-$(DOWNLOADER_VERSION)" >> .dynamic
+	@echo "S10downloader-$(DOWNLOADER_VERSION)" >> .dynamic
 endif

Zuckerl für die Zukunft: Kurz vor meinem Ausscheiden als DS-Mod-Entwickler habe ich, aufbauend auf einem privaten Add-On von olistudent, noch für 15.3 ein Paket eingebaut für NFS-Root, d.h. man kann damit alles von Platte über NFS nachladen, nach dem Umschalten aufs NFS-Root wird keine Datei mehr auf der Box benötigt, nur vorher. Nur der Kernel wird dann noch von der Box benutzt. Man braucht damit dann keine Symlinks oder andere Tricks, sondern löscht einfach, so wie Du das auch machst, die zu großen Dateien, bis das Image klein genug ist und geflasht werden kann. UNIX-Rechte hat man im Vergleich zu Cifsmount auch im gemounteten Dateisystem. Man hat ein beliebig großes, auf "/" (nicht irgendwo nach /var) gemountetes, beschreibbares Dateisystem, d.h. man kann eben mal in den Startskripten was ändern und neu booten, Binaries ändern oder dazu kopieren, die BusyBox ersetzen usw., alles ohne eine neue FW flashen zu müssen. Ich betreibe seit Wochen meine Zweitbox nur noch so, sie läuft sehr stabil. Ich muß nur dran denken, meinen NFS-Server, eine Linux-VM unter XP mit VMware, immer laufen zu lassen. ;-)
 
Hallo Udo,

ich mache das so ähnlich, aber vielleicht weniger elegant: Ich baue mir erst ein Image, das klein genug ist. Und dann nochmal eins "con tutti". Von da kopiere ich dann die Binaries etc in mein cifs-Verzeichnis. Dann habe ich ein Skript, das vom debug.cfg aufgerufen wird, das alles startet, was ich brauche.

Ist bei jedem neuen Release relativ viel Handarbeit. Vielleicht schaue ich mir was von Deinen Ideen ab.

udosw schrieb:
Code:
...
# Dateien verschieben
cd $FS/usr/sbin/
mv -f dropbearmulti $EXT
ln -fs /mod/sbin/dropbearmulti
...
Was macht dieser ln? Was ist /mod?

Wo passiert bei dir der cifsmount? Anscheinend gibt es da inzwischen ein fertiges DS-Mod-Paket, wo ich das konfigureiren kann und es automatisch geht. Stimmt das?

D.h. Du brauchst keine debug.cfg?


Dirk
 
kriegaex schrieb:
Zuckerl für die Zukunft: Kurz vor meinem Ausscheiden als DS-Mod-Entwickler habe ich, aufbauend auf einem privaten Add-On von olistudent, noch für 15.3 ein Paket eingebaut für NFS-Root, d.h. man kann damit alles von Platte über NFS nachladen, ...
Hallo Alexander,

ja DAS klingt toll! So habe ich mir das auch immer vorgestellt.
Gibt es jemand, der den Code hat und zur "Reife" bringt?

P.S. Ich find gut, dass Du wenigstens noch "privat" hier weiter machst.
Deine Entscheidung, dich zurückzuziehen kann ich verstehen. Wenn es so gelaufen ist, wie Du schreibst, ist das nachvollziehbar. Allerdings kann ich "den/die anderen" nicht verstehen: Du warst immer freundlich (genug), immer super hilfsbereit, immer nett, immer sachlich und nur manchmal genervt, wo ich es schon länst gewesen wäre.
 
NFS-Root ist schon drin, fix und fertig. Keine Sorge. :D
 
@kriegaex: Den Downloader hatte ich ja bisher verwendet, aber Auslagern auf Platte ist doch etwas anders: Während der Downloader die Files dann ja in den Speicher der Box holt, bleiben sie bei meinem Verfahren ja auf der Festplatte liegen und werden von dort gestartet. Eigentlich braucht man dafür kein Paket, welches dann auf der Box abläuft, sondern nur eine Option um es beim Bauen des Images im ds_mod einzustellen (im make menuconfig).

Zur Lösung mit NFS-Root: Sehe ich das richtig, dass ich dazu im ds_mod(15.2) nur das entsprechende Kernel-Modul installieren müsste? Aber es gibt doch keine Web-Oberfläche dazu wie bei cifs, oder?


@dsteinkopf: (Mein Beispiel läuft natürlich auf einem Linux-Rechner). Der Befehl ln -s erzeugt einen 'symbolischen Link' zu einer Datei. Im Dateisystem der Box sieht das dan so aus:
Code:
/var/mod/bin $ ls -l
lrwxrwxrwx  1 root  root  23 Oct 27 03:05 mc.bin -> /var/fbf/mod/bin/mc.bin
Man kann diese SymLinks dann benutzen, als lägen die Dateien an dieser Stelle im Dateisystem. /mod ist eigentlich /var/mod, auch da gibt es schon vom ds_mod her einen SymLink.

Cifsmount ist ein normales ds_mod-Paket, was man bei make menuconfig wählen kann.

Die debug.cfg läuft IMHO vor den ganzen ds_mod-Paketen ab, da ist also meine Platte noch nicht gemountet. Die rc.custom erst nach den ds_mod-Sachen, wo dann schon die Programme starten sollten, die jetzt auf meiner Platte liegen. Ich muss also dazwischen rein, um die SymLinks zu setzen.

Die Lösung, das Filessystem ab / komplett auszulagern, gefällt mir nicht so, da bei Ausfall des NFS-Servers die Box tot wäre. Evtl. wäre es besser, einfach nur /var/mod auszulagern. Jedenfalls sollte das optional einstellbar sein.

Udo
 
Für NFS-Root brauchst Du die üblichen drei Kernelmodule (nfs, sunrpc, lockd) und insbesondere das entsprechende Init-Skript (und das ist etwas tricky), außerdem, warum auch immer, Replace Kernel, weil es, je nach Box, entweder Kernel Oops oder Kernel Panic beim NFS-Mount gibt (getestet auf W701V und 7170).

Ich habe übrigens vor, aus einer Rohversion eines weiteren Skripts von Oliver auch ein Paket für ein USB-Root zu machen.

Oliver ist noch einen Schritt weiter, denn er bootet auch schon den Kernel von extern via initramfs (und danach dann NFS- oder USB-Root), so daß die Partitionen auf der Box selbst gar nicht mehr benutzt werden, also auch kein pivot_root usw. Kernel und Dateisystem auf der Box sind dann nur noch Fallbacks, falls z.B. das NFS-Share nicht da oder der USB-Datenträger ausgesteckt ist. Auch dafür könnte man ein Paket basteln, aber das ist dann doch eher was für Entwickler, die nicht nur mal eben schnell am Dateisystem was ändern wollen - dafür reichen NFS/USB-Roots aus - sondern auch einen Kernel tauschen wollen, ohne neu flashen zu müssen.
 
Für nfs-root reicht es nicht, nur das passende Kernel-Modul zu installieren.

Aber das Kernel-Modul, evtl. mit eigenem Kernel, reicht dazu aus, um Deine Lösung mit NFS statt mit CIFS umzusetzen. Das hat den Vorteil, daß auf dem NFS-Dateisystem alle Linux-Eigenschaften wie Zugriffsrechte, Eigentümer und symbolische Links funktionieren.

Die ln-Befehle aus Beitrag #51 funktionieren übrigens so nicht, da ln mindestens zwei Parameter erwartet. Ich vermute mal, daß dort $FS/usr/sbin hingehört. Funktioniert doch.
 
Zuletzt bearbeitet:
udosw schrieb:
Der Befehl ln -s erzeugt einen 'symbolischen Link' zu einer Datei.

Danke :) Was ln prinzipiell macht, weiß ich natürlich. Mich hat nur das ln von "/mod" irritiert, weil das doch auf den Build-System läuft, wo es kein /mod gibt. Aber trotzdem kann man natürlich den Link anlegen, der dann auf der Fritzbox stimmt.

Da saß ich einfach etwas auf der Leitung ;-) Trotzdem danke für die Antwort.


Dirk
 
RalfFriedl schrieb:
Die ln-Befehle aus Beitrag #51 funktionieren übrigens so nicht, da ln mindestens zwei Parameter erwartet.
Doch, wenn ln mit einem Parameter aufgerufen wird, setzt es als Ziel den letzten Teil des Pfads (also den Dateinamen) ein.

ln -fs /mod/sbin/dropbearmulti
entspricht also
ln -fs /mod/sbin/dropbearmulti dropbearmulti

Ich wechsele deshalb vorher in das Verzeichnis, wo der Link sein soll.

Udo
 
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.