Ich hatte gedacht, man müßte dafür noch '.' für das aktuelle Verzeichnis angeben.
Ich hatte gedacht, man müßte dafür noch '.' für das aktuelle Verzeichnis angeben.
Die Idee hatte ich für den Downloader auch. Denn auch dort muss man diese Schritte per Hand machen. Bei den Binaries geht es noch. Schwieriger wird es, wenn man es für jede einzelne Lib macht. Das blöde daran ist, man muss es nicht nur jedes mal bei der Versionswechsel vom mod machen, sondern nach jedem "make" zumindest in die Verzeichnisse nachschauen. Wenn man sowas in standard-"make" einbauen könnte, wäre es ganz gut. Vorschlag wäre:Zitat von udosw
"make" schaut vor dem STEP3 im Hauptverzeichnis nach einer bestimmten config-Datei, namens (als Beispiel) rmbinlib.conf. Existiert diese Datei nicht (Normalfall), so läuft make weiter. Andererfalls wird ein skript rmlibbin (ähnlich dem oben vorgeschlagenen) abgearbeitet. Dieser Skript schaut in die Datei rmbinlib.conf rein und arbeitet sie Zeile für Zeile ab. Die conf-Datei kann z.B. folgendermassen aufgebaut werden:
Und wenn Bedarf besteht, kann man die Downloader-CGI so modifizieren, dass sie nicht nur die Sachen ins RAM packt, sondern irgendwas startet. Ich bin da recht offen, jeder kann da was ändern. Die Startreiehnfolge kann man in gewissen Grenzen steuern.Code:verzeichnis_fuer_binaries_libs='...' # Liste der auszulagernden Dateien originaldatei_mit_rel_pfad pfad_neu attribute
Ich selbst bin momentan so busy und komme leider gar nicht dazu.
MfG
Hermann
Mehrere Boxen an diversen Orten mit diversen Firmware/freetz-Versionen (überwiegend 7270 und 7170):
F!B 7270v2: Eigene Box mit einem mehr oder weniger aktuellem Trunk
F!B 7270v3: 2-3 Stück in Betreuung mit einem etwas älteren aber stabil laufenden Trunk
F!B 7170: Eigene Bastelbox mit einem USB-Medium und external sowie 3-5 Boxen in Betreuung, wahlweise mit oder ohne USB/External
Build-Umgebung: Freetz-Linux (ältere Version, selbst weitergepflegt)
Anschluss: 1und1-Komplett DSL mit 16000/1072kbit/s
FREETZ-Kleinigkeiten, an denen ich mitgewirkt hatte: Downloader, FREETZMOUNT, Box-Info, Freetz-Info, mounted.cgi, FAQ-reader, betamax.sh, sendsms.sh, sispmctl, AVM-ftpd
Das ist eine interessante Idee, aber nur recht eingeschränkt nutzbar. Um beliebige Manipulationen an der Stelle zu erlauben, könnte man auch gleich ein Shell Skript aufrufen, in dem der Anwender beliebige Änderungen ausführen kann.Zitat von hermann72pb
Wenn man sich das fwmod-Skript anschaut, sieht man, daß das schon existiert und das Skript fwmod_custom schon aufgerufen wird, sofern es vorhanden ist.
ok, dann sollte man das oben vorgeschlagene Skript zunächst mal in diesem fwmod_custom implementieren, dann etwas veralgemeinern (dass es die conf-Datei benutzt). Und wenn es richtig läuft und gefragt wird, dann kann man es als extra-Skript einbauen, damit man fwmod_custom für andere Experimente frei hält.
MfG
Hermann
Mehrere Boxen an diversen Orten mit diversen Firmware/freetz-Versionen (überwiegend 7270 und 7170):
F!B 7270v2: Eigene Box mit einem mehr oder weniger aktuellem Trunk
F!B 7270v3: 2-3 Stück in Betreuung mit einem etwas älteren aber stabil laufenden Trunk
F!B 7170: Eigene Bastelbox mit einem USB-Medium und external sowie 3-5 Boxen in Betreuung, wahlweise mit oder ohne USB/External
Build-Umgebung: Freetz-Linux (ältere Version, selbst weitergepflegt)
Anschluss: 1und1-Komplett DSL mit 16000/1072kbit/s
FREETZ-Kleinigkeiten, an denen ich mitgewirkt hatte: Downloader, FREETZMOUNT, Box-Info, Freetz-Info, mounted.cgi, FAQ-reader, betamax.sh, sendsms.sh, sispmctl, AVM-ftpd
Das alles ist ja sooo cooolZitat von kriegaex
, was sich in den letzten Monaten noch so getan hat. Ist irgendwie genau das, was ich mit meinem NAS (auf dem auch schon längst nicht mehr die Bufallo-Firmware, sondern Gentoo läuft) machen will, einfach in der Fritzbox ein über NFS gemountetes System betreiben, da kann wirklich viel experimentiert werden...
Router 1:FRITZ!Box Fon WLAN 7390, Firmware-Version 84.05.50 Freetz rev24230
Internet 1: T-Home Call & Surf Comfort/Universal/DSL6000 (leider nur 3456/448 kBit/s geschaltet)
Router 2:FRITZ!Box Fon WLAN 7050, Firmware-Version 14.04.33-freetz-1.0-stable im ATA-Mode
Internet 2: RDS FiberLink http://www.rdslink.ro/fiber/fiber.htm
SIP: http://netphone.smartcall.ro, http://www.sipgate.de, http://www.ekiga.net, http://www.callromania.ro
So, ich habe jetzt (eine für mich brauchbare) automatische Lösung gebaut.Voraussetzungen: Ein Linux-System, auf dem der ds_mod gebaut wird, das System ist entweder gleich dasselbe, wo nachher die FB ihre externe Platte mountet oder hat zugriff auf diesen Mountpunkt.
- Man baut einen kleinen Referenz-ds-mod mit cifsmount (evtl. auch NFS, nicht getestet) der auf die Box passt. Ich habe da sogar noch den AVM-UPNP-Daemon mit drin, passt auf die 7050).
- Nach Testen des Images verschiebt man das build/modified/filesystem-Verzeichnis, z.B. nach KLEIN/modified/filesystem.
- Nun nochmal make menuconfig starten und nach Herzenslust Pakete auswählen ...
- In der fwmod_custom sorgt man dafür, dass bei unter all() folgender Code aufgerufen wird:
5. make aufrufen und freuen ...Code:#!/bin/bash MOD=/usr/src/ds26-15.2/build/modified/filesystem STD=/usr/src/ds26-15.2/KLEIN/modified/filesystem EXT=/fbf cd $MOD for FILE in $(find -type f -not -path '*etc*' -size +1k -printf "%P\n"); do if ! [ -e $STD/$FILE ] then DIR=$(dirname $FILE) sudo mkdir -p $EXT/$DIR sudo cp -f $MOD/$FILE $EXT/$FILE rm -f $MOD/$FILE ln -fs /var$EXT/$FILE $FILE fi done # Softlinks cd $MOD/usr/lib ln -fs /var/fbf/usr/lib/asterisk cd $MOD/etc ln -fs /var/fbf/etc/asterisk cd /usr/src/ds26-15.2
Dabei istDas Script guckt nun einfach bei allen Dateien im MOD, die größer als 1KB sind, nach, ob diese im STD bereits existieren. Wenn das nicht der Fall ist, wird die Datei auf die externe Platte geschoben und ein SymLink gesetzt. (Ja, statt cp und rm kann man auch mv verwenden, da hatte ich nur Probleme mit den Mount-Berechtigungen. Das sudo ist bei ). Dateien unter 'etc' werden aber nicht verschoben.
- MOD: Das fs vom gerade gebauten ds-mod
- STD: Das 'kleine' Standard-FS vom ersten Test
- EXT: Das Verzeichnis auf der externen Platte, wo die ausgelagerten Dateien für die FB hinkommen. Bei mir ist dieses Verzeichnis in der FB selber mit /var/fbf gemountet.
Die beiden Softlinks am Ende sind noch für meinen Asterisk on FBF. In der rc.custom mache ich noch folgendes:
da einige Libraries und der Asterisk im mod-Verzeichnis der Platte liegen.Code:cd /var/mod rmdir bin ln -s /var/fbf/mod/bin rmdir lib ln -s /var/fbf/mod/lib rmdir sbin ln -s /var/fbf/mod/sbin
Diese Lösung funktioniert ohne den von mir vor kurzem beschrieben Patch der rc.cifsmount. Dafür war die Ausnahme beim etc-Verzeichnis nötig.
Cifsmount wird ja ziemlich früh durchgeführt und danach werden alle weiteren Pakete von der Festplatte aus gestartet. Ich konnte hiermit neben dropbear noch dnsmasq, opentpd, syslog und netsmnp einbauen, daran war vorher nicht zu denken.
Udo
IPv4: Kabeldeutschland 32000 / 2000 | IPv6: he.net-Tunnel mit FB 7390
FB 7390: (1&1 HomeServer 50.000) FRITZ!OS meist aktuelle labor + aktueller freetz-trunk+ Asterisk 1.6.2.15 (freetz patch)
FB 7270v2: (KD, 16MB) aktuelle labor + aktueller freetz-trunk per LAN1 an der FB 7390
WLAN: Fritz!WLAN Repeater N/G IP-Phones: Fritz MT-F, MT-D | Snom 300 | Android CSipSimple
VSP: Sipgate, Betamaxe, Kabelphone