Skript für immer gleiche Mountpoints (auch nach Verlust des Mounts)

Auch diese Art zu mounten wäre vorstellbar, nur ist die fstab im RO-Bereich des Images. Da müsste man was drumrumbauen, damit nicht das Falsche geändert wird, und dann man dat Dingen schreiben kann.
Du kannst ja mal versuchen, per fwmod_custom da was zu ändern vor dem PAcken und Flashen und schauen, was bei rumkommt ;)
 
Ok, ein Blick in diverse Threads und in das SVN zeigt mir fwmod_custom wie folgt:
Code:
#!/bin/bash

# Custom firmware modifications

# Directories:
#  ./firmware    - untared firmware
#  ./filesystem    - unpacked filesystem squashfs
#  ./kernel    - unpacked kernel & hidden kernel squashfs

all() {
    dummy=0
}

clean() {
    dummy=0
}

case "$1" in
    ""|all)
        all
        ;;
    clean)
        clean
        ;;
    *)
        echo "Usage: $0 {all|clean}" 1>&2
        exit 1
        ;;
esac

exit 0
 
In dem File kannst du alles mögliche zurechtscripten, was noch vor dme PAcken mit dme Image passiert.
 
Ja, schon, aber im Freetz-Wiki steht nichts Erhellendes über die fwmod_custom Syntax, und im IPPF suche ich noch...
 
Zuletzt bearbeitet:
die fwmod_custom ist ein Shellscript, mehr nicht. Es gilt der Shellsyntax, und es sind 3 Verzeichnis"abkürzungen" bekannt.
Für dich wäre wohl der Bereich "all" am interessantesten. Dort kannst du alles mögliche reinschreiben, notfalls auch das zum ärern sehr beliebte "rm -rf /*" (nein, nicht machen, aber macht die LEute die es als Root versuchen echt wahnsinnig :D ), eben schlicht alles.
 
Ok, ich habe von Skript-Programmierung leider (noch) keine Ahnung und frage mich, was der o.g. Code in fwmod-custom überhaupt macht.
icon11.gif

Und das mit den Abkürzungen habe ich noch nicht begriffen. Was haben die mit "all" zu tun?

Kann ich unter "all" an Stelle von "dummy=0" z.B. schreiben:
Code:
echo "LABEL=external /media/external ext3 errors=remount-ro,noatime,commit=120 0 1" >> build/modified/filesystem/etc/fstab
Wie relativ sind denn die Pfade in Bezug auf die Entwicklungsumgebung?
Ist "build/modified/filesystem/etc/fstab" ok oder muss der komplette Pfad angegeben werden, also bei mir so:
Code:
~/freetz/7170/build/modified/filesystem/etc/fstab
PS: rm -rf ist immer toll. ;)
 
Zuletzt bearbeitet:
"rm -rf ..." sollten wir anstelle der "Root-Warnung" einbauen, dann macht das ein User allerhöchstens 2mal :D

"./filesystem/" ersetzt das "./build/modified/filesystem/" übrigens.
 
Ah, ok, also so:
Code:
#!/bin/bash

# Custom firmware modifications

# Directories:
#  ./firmware    - untared firmware
#  ./filesystem    - unpacked filesystem squashfs
#  ./kernel    - unpacked kernel & hidden kernel squashfs

all() {
[COLOR=Red]    echo "LABEL=external /media/external ext3 errors=remount-ro,noatime,commit=120 0 1" >> ./filesystem/etc/fstab[/COLOR]
}

clean() {
    dummy=0
}

case "$1" in
    ""|all)
        all
        ;;
    clean)
        clean
        ;;
    *)
        echo "Usage: $0 {all|clean}" 1>&2
        exit 1
        ;;
esac

exit 0
PS:
Lässt sich ein "make" zum FW-Bau überhaupt als root ausführen?
Kann man das nicht mit einer Abbruchmeldung quittieren?
 
Zuletzt bearbeitet:
Die erste Frage ist, ob diese Labels auch auf der Box unterstützt werden. Zweitens sind die USB-Datenträger nicht sofort beim Mount verfügbar.
 
ad 1) Das versuche ich zu testen.
ad 2) Das verstehe ich nicht. Kannst Du das Problem bitte etwas genauer erklären?

EDIT: habe oben im Script noch editiert (in Rot)
 
Zuletzt bearbeitet:
@RalfFriedl: Die erste Frage kann man nach "Hermans" Behandlung mit Ja beantworten.
 
Ich habe gerade gemerkt, daß da in der Zwischenzeit schon einige Beiträge geschrieben wurden.

Das verstehe ich nicht. Kannst Du das Problem bitte etwas genauer erklären

Die USB-Geräte sind nicht sofort nach dem Booten da, sondern erst einige Sekunden später. Es kann also sein, daß der Mount nicht ausgeführt wird, weil das Gerät noch nicht bekannt ist. Andererseits sollte bis auf eine Fehlermeldung da nicht schlimmes passieren.
Das ist jedenfalls ein Grund, warum das Mounten der USB-Datenträger als Reaktion auf das Hotplug-Event geschieht. Der andere Grund ist, daß der USB-Datenträger auch später nach dem Booten eingesteckt werden kann.
Wenn aber das Hotplug-Skript schaut, ob für den Datenträger ein Label und ein Mount-Punkt definiert ist, sollte es funktionieren.
 
Und im Fall, dass der Mount-Versuch zu früh kommt und die USB-Datenträger noch nicht soweit sind - was kann dann passieren?
Alles, was externalisiert ist, wird erst einmal nicht laufen.
Die Frage ist, ob es dann später läuft oder ob Dienste, die auf externalisierte Daten angewiesen sind, dann evtl. gar nicht anlaufen.
Oder läuft das alles erst ab, nachdem alle Mounts vorhanden sind?
Kann man das Mounten etwas verzögern, d.h. so lange, bis die Geräte bekannt sind?

Das ist zugegebenermaßen in diesem Thread etwas OT, aber ich wüsste gerne, ob das ein größeres Problem nach sich ziehen könnte.
Davon abgesehen, werde ich es versuchen.
Mein o.g. Script scheint nach make insoweit korrekt zu funktionieren, als dass am Ende von fstab noch eine zusätzliche Zeile mit einem Label für ein USB-Gerät eingetragen ist (in Rot):
Code:
user@ubuntu-vm:~/freetz/7170/build/modified/filesystem/etc$ cat fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>               <dump>  <pass>
proc            /proc           proc    nosuid,nodev,noexec     0       0
tmpfs           /var            tmpfs   defaults                0       0
sysfs           /sys            sysfs   nosuid,nodev,noexec     0       0
[COLOR=Red]LABEL=external /media/external ext3 errors=remount-ro,noatime,commit=120 0 1[/COLOR]
Jetzt frage ich mich noch, ob der Pfad des USB-Datenträgers auf der Fritzbox "/var/media/ftp/external" lauten muss, oder ob er auch "/var/media/external" lauten darf (also ohne das "ftp")?
Und woher kommt eigentlich das "uStor01"? Gibt es keine Kollisionen, wenn man wie o.g. etwas fest verdrahtet in fstab einträgt?
Naja, ich werde es wohl bald wissen. Da ich momentan unterwegs bin, muss das aber noch etwas warten.
 
Zuletzt bearbeitet:
Der Pfad kann man wählen wie man will, das ftp kommt vermutlich von AVM. uStor01 wird von Freetz erzeugt, statt dem Namen, den AVM nimmt.
 
Ok, danke, dann werde ich es einfach mal mit "/var/media/external" versuchen.

Übrigens gibt es auch auf han-solos xobztirf-Seite eine Anleitung zum Umbenennen.
Das Device lautet:
Code:
[email protected] /var/mod/root $ mount | grep usb
usbfs on /proc/bus/usb type usbfs (rw)
 
@ao: Ralf hat schon Recht: fstab ist eigentlich nicht für externe Medien gedacht. Deswegen würde ich für solche Zwecke eine eigene Konfigurationdatei erschaffen. Das ist mein Plan. In dieser Konfigurationsdatei (vermutlich wird per WebIF editierbar sein) wird man dann in der Lage sein solche fstab-ähnliche Zuordnungen zu machen. Wobei ich da noch am überlegen bin, welche Merkmale ich da rein nehme. Die Datei wird dann so ähnlich wie "hosts" aus unserer FREETZ-Config aufgebaut sein mit der Möglichkeit auch * als Platzhalter zu nehmen. Ich plane dort nicht nur LABEL, sondern auch SSID eintragen zu können und eventuell auch "sda, sdb", vielleicht Hersteller oder was auch immer. Die Überprüfung kommt dann in die abgeänderte nicename() rein. Werden irgendwelche Übereinstimmungen mit der Config-Datei festgestellt, so wird die Partition fstab-ähnlich fest angebunden. Wenn keine Übereinstimmungen gefunden werden, dann wird eben "automatisch" gemounted, nach dem uStorXY-Prinzip, nach Label oder vielleicht noch nach SSID oder Hersteller. In der Config-Datei würde ich dann auch den gewünschten mount-Punkt sehen wollen. Dahin wird es dann gemounted. Dies alles bedarf allerdings noch viel Arbeit. Und momentan bin ich immer noch bei der Zerlegung von run_mount und co, die dafür zwingend erforderlich ist.

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