Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 20 von 53

Thema: Software und Binaries über USB-Stick laden

  1. #1
    Gast

    Software und Binaries über USB-Stick laden

    Edit DM41:
    abgetrennt aus dem HOWTO-Thread.
    ---


    Hallo,
    ich bin seit heute neu in diesem Forum und möchte über meine Softwaremodifikation berichten.
    Die neuen FRITZ!Boxen besitzen eine USB-Anschluss. Nun bietet es sich an, Binaries, Scripte oder Zusatzsoftware nicht von einem Web-Server im lokalen LAN per "wget" zu laden, sonder von einem USB-Stick, der an die FRITZ!Box angesteckt wird. Dazu müssen nicht einmal Software oder Binaries auf die FRITZ!Box kopiert werden, sonder es können auch Links angelegt werden, die von der Fritz!Box auf Dateien auf dem USB-Stick verweisen.
    Dies vermindert das Risiko, dass der Speicherplatz auf der FRITZ!Box zuläuft.
    Die Erweiterungen in der "/var/flash/debug.cfg" können minimiert werden, da die Softwareerweiterungen beim Neustart der FRITZ!Box über einen boot-Script auf dem USB-Stick ausgeführt werden.
    Es können sich damit in der "debug.cfg" weniger Fehler einschleichen.
    Der gesteckte USB-Speicherstick wird bei meiner FRITZ!Box 7170 im folgenden Pfad eingebunden (laut 'mount'):

    /var/media/ftp/XXX-0-1/

    "xxx" ist die Bezeichnung (Name) des USB-Stick, der von der Fritz!Box automatisch beim "Mounten" erkannt wird.
    Je nach Marke oder Hersteller des Stick, ist die Bezeichnung "xxx" im Mountpoint unterschiedlich.

    Funktion meines Mods:
    Über die modifizierte "debug.cfg" wird auf dem USB-Stick im Ordner "fritz!box" das Scritpt "boot" ausgeführt.
    Es wird auf dem USB-Stick nach einer Datei "boot", die sich in einem Ordner "fritz!box" befindet gesucht.
    Ist die Datei "boot" vorhanden, dann wird sie von der "debug.cfg" ausgeführt.
    Wird "boot" nicht gefunden, weil z.B. der USB-Stick abgezogen wurde, funktioniert die Fritz!Box wie vorher, ohne Modifikation, abgesehen von der Änderung der "debug.cfg".
    Die folgenden Zeilen die ich mit dem "nvi" in die "/var/flash/debug.cfg" eingetragen habe, dienen der Ermittlung des Pfades (Mountpoint) des USB-Stick, auf dem sich das boot-Script befindet. Dieses wird dann ausgeführt.

    debug.cfg:
    Code:
    # Info-LED blinken lassen
    echo 7,3>/var/led
    
    # warten bis USB-Stick mountet
    sleep 60
    
    # evtl. vorhandenes Script "boot" 
    # auf evtl. vorhandenen USB-Sticks ausfuehren
    
    for f in /var/media/ftp/*/fritz!box/boot
    do
    	$f
    done
    
    # Info-LED blinken aus
    echo 7,1>/var/led
    Relevante Auszüge aus Datei "boot" im Ordner "fritz!box" auf dem USB-Stick:

    Code:
    #####################################################################################
    ### Dieser Script wird nach dem Starten der Fritz!Box ausgefuehrt.                  #
    ### Voraussetzung ist eine Aenderung des /var/flash/debug.cfg.                      #
    ### Von der debug.cfg aus wird dieser Script                                        #
    ### ueber "/var/media/ftp/..../fritz!box/boot" aufgerufen. (.... je nach USB-Stick) #
    #####################################################################################
    
    # Info-LED blinken, bis Script ausgefuehrt ist
    echo 7,3>/var/led
    
    #####################################################################################
    ### Start des Telnet-Daemon 
    ### Der unsichere telnetd kann dann spaeter auskommentiert werden.
    ### Bei der neueren Fritz!Box Fon kann der telnetd auch ueber
    ### Telefon eingeschaltet werden (#96*7* -> ein, #96*8* -> aus)
    ### Statt dem telnetd sollte besser der sichere sshd laufen.
     
    #/usr/sbin/telnetd -l /sbin/ar7login &
    
    #####################################################################################
    ### Pfad fuer Softwareerweiterung in die Variable $USBSTICK abgelegen 
    
    # Der Pfad des Scriptes hier wird ermittelt, egal von wo aus das Script
    # aufgerufen wird. Wenn das Script über den vollständigen Pfad aufgerufen wird
    # dann wuerde auch genuegen
    # USBSTICK=${0%/*}
    
    USBSTICK=`cd ${0%/*} 2>/dev/null && pwd || echo ${0%/*}`
    
    # Hier kaemen nun je nach Bedarf, die Softwareerweiterung wie ssh, crond, WOL, WOC, 
    # modifizierter Web-Server zum Starten und Stoppen des dsld über cgi
    # usw.
    #...
    
    
    #####################################################################################
    ### USB-Stick sync, damit dieser ggf. abgezogen werden kann.
    ### Der sshd funktioniert dann noch.
    ### Aber alles was verlinkt ist, funktioniert dann nicht mehr.
    
    sync
    sleep 3
    sync
    sleep 3
    
    # Script ist durch, Info-LED ausschalten
    echo 7,1>/var/led
    Noch wichtige Tips !!!

    Eine Modifikation der Firmware kann die FRITZ!Box lahm legen und muss jeder selber verantworten !!!
    Wie es um die Gewährleitungsansprüche steht, kann man sich denken.
    Die Mod funktionierte auf meiner FRITZ!Box 7170 mit Firmware 29.04.03-3452 (beta) und läuft jetzt auch unter der
    aktuellen Firmware-Version 29.04.06.
    Ob die Mod mit anderen Boxen und anderer Firmware läuft, weis ich nicht.
    Ein sicherer Umgang mit dem "vi" bzw. "nvi" und Grundkenntnisse von Linux sind Voraussetzung für die Modifikationen.

    Bitte auf die verschiedenen Hochkommas (' `) in der "debug.cfg" achten.

    Zum Editieren der "debug.cfg" mit dem "nvi" sollte man eine 2. Telnet-Session oder ssh-Session öffnen.
    Die 1. Session benützt die Fritz!Box für die Standardausgabe von Meldungen, diese würden dann beim Editieren stören.
    Zum Thema "telnet" und "ssh" gibt es bereits andere Forenbeiträge.

    Vorsicht beim Editieren der betreffenden Dateien !
    Grunsätzlich habe auch ich die Dateien auf dem USB-Stick mit vi oder nvi bearbeiten. Wegen unterschiedlicher Zeichensätze, habe ich die Dateien auf dem USB-Stick nicht mit einem Windows-Editor bearbeitet. Nur als Hinweis, falls jemand auf die Idee käme, den USB-Stick zu ziehen und an einem Windows-PC anzustecken.

    Sicher kann der aufgeführte Script noch verbessert werden, da ich kein Profi bin, was Shell-Scripte anbelangt.
    Auf weitere Fragen zu meinem Beitrag kann ich leider nicht immer gleich antworten.
    Bitte um Nachsicht und viel Spaß beim Moding !


    Change-Log:
    27.05.2006 Vereinfachung der Shellscripte "boot" und "debug.cfg" aufgrund der Tips von "jojo-schmitz".

    Gruß

    Joe3
    Geändert von Joe3 (27.05.2006 um 18:22 Uhr)

  2. #2
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Die Idee ist schon ziemlich genial! Endlich kein wget mehr, das Generieren von Keys für dropbear fällt flach und Samba macht sowieso nur Sinn mir USB-Disk.

    Die Box lässt übrigens maximal 3 USB-Platten zu, eine 4. wird schlicht nicht mehr gemounted.

    Ich habe debug.cfg mal etwas vereinfacht:
    Code:
    # Info-LED blinken lassen
    echo 7,3>/var/led
    
    # warten bis USB-Sticks mounten (per Log dauert's ca. >40s)
    sleep 60
    
    # evtl. vorhandenes Script "boot" 
    # auf evtl. vorhandenen USB-Sticks ausfuehren
    
    for f in /var/media/ftp/*/fritz!box/boot
    do
            $f
    done
    
    # Info-LED blinken aus
    echo 7,1>/var/led
    Tschö, Jojo
    Geändert von jojo-schmitz (12.05.2006 um 09:37 Uhr)

  3. #3
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Noch 'ne Vereinfachung, von der dann ...fritz!box/boot profitiert, da sie den mountpoint nicht mehr ermitteln muss:

    Code:
    for f in /var/media/ftp/*
    do
        [ -x $f/fritz!box/boot ] && USBDISK=$f $f/fritz!box/boot
    done

    Und damit die Programme in ...fritz!box gefunden werden, in fritz!box/boot:
    Code:
    export PATH=$PATH:${0%/*}
    Alternativ in debug.cfg
    Code:
        [ -x $f/fritz!box/boot ] && USBDISK=$f PATH=$PATH:$f/boot $f/fritz!box/boot
    Geändert von jojo-schmitz (12.05.2006 um 09:35 Uhr)

  4. #4
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Und hier dann mein Script zu automatischen Generierung der WOL Scripte für alle DHCP Clienten in LAN:
    Code:
    # WOL
    ln -s $PWD/busybox /var/tmp/etherwake
    # WOL-Scripte für alle DHCP LAN Clients erzeugen (WLAN macht wohl keinen Sinn)
    if=eth0
    grep '^lease' /var/flash/multid.leases | while read typ mac ip time name mac2
    do
            # " loswerden und in lowercase konvertieren
            name=$(echo $name | tr -d '"' | tr '[A-Z]' '[a-z]')
            cat > /var/tmp/start_${name:=noname} <<-EOF
                  #!/bin/sh
                  echo "Sende WOL an $name ($mac) ..."
                  /var/tmp/etherwake -i $if $mac
                  echo "Warte ob/bis $name ($ip) startet"
    EOF
            chmod +x /var/tmp/start_$name
    done
    Geändert von jojo-schmitz (12.05.2006 um 09:35 Uhr)

  5. #5
    IPPF-Fan
    Registriert seit
    28.10.2004
    Ort
    Valdecruz
    Beiträge
    425
    Zitat Zitat von jojo-schmitz
    Noch 'ne Vereinfachung, von der dann ...fritz!box/boot profitiert, da sie den mountpoint nicht mehr ermitteln muss:
    Toller Tip. Werde meine debug.cfg mal entsprechend umstellen.

    export PATH=$PATH:${0%/*}
    Auch toll. Muß man aber ziemlich lange im Kofler blättern, um die Zeile zu vestehen. Häng doch mal 'ne Erklärung dran für Lernwillige.

    Gruß
    crusader
    Router: Fritz!Box Fon WLAN 7170 (UI) (FW:29.04.06)
    VoIP: 1&1, sipgate
    DSL: 1&1-3DSL (DSL16000)

  6. #6
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Zitat Zitat von crusader
    Code:
    export PATH=$PATH:${0%/*}
    Auch toll. Muß man aber ziemlich lange im Kofler blättern, um die Zeile zu vestehen. Häng doch mal 'ne Erklärung dran für Lernwillige.
    Es hat mich viel Arbeit gekostet, das zu verstehen, da soll es anderen auch nicht besser gehen

    Na gut, will mal nicht so sein...:
    ${var%muster} sucht in var nach dem längsten String bis muster, sucht nach muster sozusagen von rechts nach links. ${var%/*} ermittelt somit den dirname von var
    ${var##muster} sucht in var nach dem kürzesten String ab muster, sucht also von links nach rechts. ${var##*/} ermittelt somit den basename von var.
    Beides ohne einen neuen Prozess (dirname/basename) erzeugen zu müssen, mal abgesehen davon, dass busybox auf der Fritz!Box kein dirname eingebaut hat, nur basename
    ${var%%muster} und ${var#muster} funktioniert entsprechend, d.h. ermittelt kürzesten String bis bzw. längsten String ab muster.

    Ich hoffe mal dass das alles so stimmt...

    ${0%/*} ermittelt nun also das Verzeichnis in dem $0 (das Script selbst) steht und hängt dieses Verzeichnis an PATH an. Funktioniert natürlich nur, wenn $0 mit einem absolutet Pfadnamen (beginnend mit /) aufgerufen wurde, was hier aber gegeben ist.

    Tschö, Jojo
    Geändert von jojo-schmitz (03.06.2006 um 14:36 Uhr)

  7. #7
    IPPF-Fan
    Registriert seit
    13.09.2004
    Beiträge
    117
    Hallo,
    eine Frage an die Spezi`s. Ist es auf diese Art eventuell möglich, eine CallBack-Funktion zu integrieren??

    Schönen Sonntag

  8. #8
    Gast

    Software und Binaries über USB-Stick laden (Änderung)

    Hallo,

    habe nun anhand der Tips von "jojo-schmitz" ein paar Änderungen (Optimierungen) an meinem am 09.04.2006 16:37 hier im Forum eingestellten Fritz!Box-USB-Stick-Mod durchgeführt.
    Dank an "jojo-schmitz" !
    Hier der geänderte Shellscript "debug.cfg" im verzeichnis /var/flash.
    Code:
    # Info-LED blinkt
    echo 7,3>/var/led
    
    # warten bis USB-Stick mountet
    sleep 60
    
    # evtl. vorhandenes Script "boot" 
    # auf evtl. vorhandenen USB-Sticks ausfuehren
    
    for f in /var/media/ftp/*/fritz!box/boot
    do
    	$f
    done
    
    # Info-LED blinken aus
    echo 7,1>/var/led
    Hier dann noch der geänderte Script "boot" auf dem USB-Stick.
    Code:
    #####################################################################################
    ### Dieser Script wird nach dem Starten der Fritz!Box ausgefuehrt.                  #
    ### Voraussetzung ist eine Aenderung des /var/flash/debug.cfg.                      #
    ### Von der debug.cfg aus wird dieser Script ueber                                  #
    ### ueber "/var/media/ftp/..../fritz!box/boot" aufgerufen. (.... je nach USB-Stick) #
    #####################################################################################
    
    # Info-LED blinken, bis Script ausgefuehrt ist
    echo 7,3>/var/led
    
    #####################################################################################
    ### Start des Telnet-Daemon 
    ### Der unsichere telnetd kann dann spaeter auskommentiert werden.
    ### Bei der neueren Fritz!Box Fon kann der telnetd auch ueber
    ### Telefon eingeschaltet werden (#96*7* -> ein, #96*8* -> aus)
    ### Statt dem telnetd sollte der sichere sshd laufen.
     
    #/usr/sbin/telnetd -l /sbin/ar7login &
    
    #####################################################################################
    ### Pfad fuer Softwareerweiterung in die Variable $USBSTICK abgelegen 
    
    currentpath=${0%/*}
    USBSTICK=`cd $currentpath 2>/dev/null && pwd || echo $currentpath`
    
    
    # Hier folgen nun moegliche Softwareerweiterung wie ssh, crond, WOL, WOC, 
    # modifizierter Web-Server zum Starten und Stoppen des dsld über cgi
    # usw. und hier nicht aufgefuehrt.
    # ...
    
    
    #####################################################################################
    ### USB-Stick sync, damit dieser ggf. abgezogen werden kann.
    ### Der sshd funktioniert dann noch.
    ### Aber alles was verlinkt ist funktioniert dann nicht mehr.
    
    sync
    sleep 3
    sync
    sleep 3
    
    # Script ist durch, Info-LED ausschalten
    echo 7,1>/var/led
    Und nochmals die wichtigen Tips !!!

    Eine Modifikation der Firmware kann die FRITZ!Box lahm legen und muss jeder selber verantworten !!!
    Wie es um die Gewährleitungsansprüche steht, kann man sich denken.
    Die Mod läuft auf meiner FRITZ!Box 7170 entzwischen mit Firmware 29.04.05-3711 (beta).
    Ob die Mod mit anderen Boxen und anderer Firmware läuft, weis ich nicht.
    Ein sicherer Umgang mit dem "vi" bzw. "nvi" und Grundkenntnisse von Linux sind Voraussetzung für die Modifikationen.

    Bitte auf die verschiedenen Hochkommas (' `) in der "debug.cfg" achten.

    Zum Editieren der "debug.cfg" mit dem "nvi" sollte man eine 2. Telnet-Session oder ssh-Session öffnen.
    Die 1. Session benützt die Fritz!Box für die Standardausgabe von Meldungen, diese würden dann beim Editieren stören.
    Zum Thema "telnet" und "ssh" gibt es bereits andere Forenbeiträge.

    Vorsicht beim Editieren der betreffenden Dateien !
    Grunsätzlich habe auch ich die Dateien auf dem USB-Stick mit vi oder nvi bearbeiten. Wegen unterschiedlicher Zeichensätze, habe ich die Dateien auf dem USB-Stick nicht mit einem Windows-Editor bearbeitet. Nur als Hinweis, falls jemand auf die Idee käme, den USB-Stick zu ziehen und an einem Windows-PC anzustecken.

    Sicher kann der aufgeführte Script noch verbessert werden, da ich kein Profi bin, was Shell-Scripte anbelangt.
    Auf weitere Fragen zu meinem Beitrag kann ich leider nicht immer gleich antworten.
    Bitte um Nachsicht und viel Spaß beim Moding !

    Gruß

    Joe3

  9. #9
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Zitat Zitat von Joe3
    habe nun anhand der Tips von "jojo-schmitz" ein paar Änderungen (Optimierungen) an meinem am 09.04.2006 16:37 hier im Forum eingestellten Fritz!Box-USB-Stick-Mod durchgeführt.
    Dank an "jojo-schmitz" !
    Gern geschehen

    Zitat Zitat von Joe3
    Hier der geänderte Shellscript "debug.cfg" im verzeichnis /var/flash.
    Code:
    # Info-LED blinkt
    echo 7,3>/var/led
    ...
    # Info-LED blinken aus
    echo 7,1>/var/led
    Wegen der erweiteterten Einstellmöglichkeiten der neuesten Beta, die u.a. ermöglicht, dass die Info LED die Bereitschaft von USB-Zubehör signalisiert, habe ich diese 'echo 7,<code> >/var/led' 'rausgenommen, aus beiden Dateien, der debug.cfg und der /var/media/ftp/*/fritz!box/boot

    Zitat Zitat von Joe3
    Hier dann noch der geänderte Script "boot" auf dem USB-Stick.
    Code:
    ...
    currentpath=${0%/*}
    USBSTICK=`cd $currentpath 2>/dev/null && pwd || echo $currentpath`
    ...
    Interessant... falls 'cd $currentpath' klappt, wird USBSTICK mit der Ausgabe von 'pwd' besetzt (welches wohl currentpath ergeben sollte), falls es fehlschlägt wird's mit currentpath besetzt... versteh ich nicht, erscheint mir redundant (hier als Euphemismus für 'überflüssig' zu verstehen ).

    Zitat Zitat von Joe3
    Code:
    ...
    sync
    sleep 3
    sync
    sleep 3
    ...
    Ich meine, dass diese sync unnötig sind, die USB-Speicher werden eh mit '-o sync' gemounted.
    Zitat Zitat von Joe3
    Die Mod läuft auf meiner FRITZ!Box 7170 entzwischen mit Firmware 29.04.05-3711 (beta).
    Ob die Mod mit anderen Boxen und anderer Firmware läuft, weis ich nicht.
    Sie läuft auch mit der neuesten Firmware (29.04.06-3825)!

    Tschö, Jojo

  10. #10
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Zitat Zitat von Berni
    Ist es auf diese Art eventuell möglich, eine CallBack-Funktion zu integrieren??
    Wüsste nichts, was dagegen spräche...

    Tschö, Jojo

  11. #11
    IPPF-Fan
    Registriert seit
    03.01.2005
    Beiträge
    196

    Lächeln

    Hi,
    wie kann ich den jetzt eigendlich Programme wie open vpn ausführen?
    Ich mach das indem ich auf den USB Stick springe und dann das Programm starte:
    cd /var/media/ftp/USBDRIVE-Partition-0-1/
    ./openvpn --config ./server.ovpn

    Wie verwende ich den die Variable Variable $USBSTICK ???

    bringt mich die in diesem Fall weiter?


    # Hier folgen nun moegliche Softwareerweiterung wie ssh, crond, WOL, WOC,
    # modifizierter Web-Server zum Starten und Stoppen des dsld über cgi
    # usw. und hier nicht aufgefuehrt.
    # ...

    könntet ihr mal Posten wie ihr den die Programme startet.

    Danke

    gruß Robert
    Fritz Box Phone WLAN 7170 V1.0 + TK Anlage
    Call & Surf Comfort ISDN (DSL Light) + Sipgate
    PC P4 Dual Core 3,0 GHz 2 GB RAM 19\" TFT

  12. #12
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Zitat Zitat von Dino75195
    wie kann ich den jetzt eigendlich Programme wie open vpn ausführen?
    Ich mach das indem ich auf den USB Stick springe und dann das Programm starte:
    cd /var/media/ftp/USBDRIVE-Partition-0-1/
    ./openvpn --config ./server.ovpn
    So in der Art. Kommt auf das jeweilige Programm an. OpenVPN habe ich selber noch nicht ans fliegen bekommen, siehe unten.

    Zitat Zitat von Dino75195
    Wie verwende ich den die Variable Variable $USBSTICK ???
    Ich verwende sie garnicht... (siehe unten)

    Zitat Zitat von Dino75195
    könntet ihr mal Posten wie ihr den die Programme startet.
    Wird gemacht:
    Code:
    #!/bin/sh
    
    # statt "cd $(dirname $0)"
    cd ${0%/*}
    
    # Samba
    export PATH=$PATH:
    hostname Fritz!Box
    [ -x nmbd ] && [ -f smb.conf ] && nmbd -D -l $PWD -s smb.conf
    [ -x smbd ] && [ -f smb.conf ] && smbd -D -l $PWD -s smb.conf
    
    # dropbear (sshd)
    # Verschluesseltes Passwort des Root Users (Wichtig für SSH)
    # zum Erzeugen siehe http://www.univativ.net/php/tools/crypt.html
    # oder http://www.flash.net/cgi-bin/pw.pl
    PASSWD='xxxxxxxxxx'
    cp -p /var/tmp/shadow /var/tmp/shadow.old && \
    	sed -e "/root:/s#^root:[^:]*:#root:$PASSWD:#" /var/tmp/shadow.old \
    		> /var/tmp/shadow
    # TODO: root's home auf /var/tmp ändern, um .ssh/ erzeugen zu können
    # und dann mit Schlüsseln statt Passwortern einloggen zu können
    
    # um auch vom WAN aus erreichbar zu sein, muss in /var/flash/ar7.cfg eine
    # entsprechende Regel eingebaut werden:
    # " tcp 0.0.0.0:22 0.0.0.0:22 0 # ssh - Fritz!Box"
    # alternativ ein Pseudo Interface erzeugen und im WebInterface freigeben.
    # "netmask 255.255.255.0" und "broadcast 192.168.178.255" sind der Default
    # 192.168.178.254 auf eth0:0 bzw. lan:0 ist die Notfall-IP, in ar7.cfg
    # entweder eth0:1 hier oder in debugcfg or lan:1 in ar7.cfg
    # http://www.ip-phone-forum.de/showpost.php?p=593481&postcount=136
    ifconfig eth0:1 192.168.178.253 up
    #ifconfig lan:1 192.168.178.253 up
    
    # scp ermöglichen, und mehr... (ssh == dbclient)
    # symlinks funktionieren leider nicht auf USB-Stick, wg. FAT(32) Format
    for cmd in dropbearkey scp ssh dbclient dropbearconvert
    do
    	ln -s $PWD/dropbear /var/tmp/$cmd
    done
    
    export PATH=$PATH:/var/tmp
    # nötigenfalls Keys erzeugen
    if [ ! -f dropbear_rsa_hostkey ]
    then
    	dropbearkey -t rsa -f dropbear_rsa_hostkey >/dev/null 2>&1
    fi
    if [ ! -f dropbear_dss_hostkey ]
    then
    	dropbearkey -t dss -f dropbear_dss_hostkey >/dev/null 2>&1
    fi
    # -p 22 ist der Default und den will ich...
    dropbear -r $PWD/dropbear_rsa_hostkey -d $PWD/dropbear_dss_hostkey
    
    
    # für ftp Zugriff ab / eigenen User/Password anlegen
    echo 'jojo:yyyyyyyyyyyy:0:0:root:/:null' >> /var/tmp/passwd
    # alternativ root account modifizieren?
    
    # WOL
    ln -s $PWD/busybox /var/tmp/etherwake
    #ln -s $PWD/busybox /var/tmp/ether_wake
    # WOL-Scripte für alle DHCP LAN Clients erzeugen (WLAN macht wohl keinen Sinn, oder?)
    grep '^lease' /var/flash/multid.leases | while read typ mac ip time name mac2
    do
    	# " loswerden und alles in lowercase konvertieren
    	name=$(echo $name | tr -d '"' | tr '[A-Z]' '[a-z]')
    	cat > /var/tmp/start_${name:=noname} <<-EOF
    #!/bin/sh
    ping -c 1 $ip >/dev/null 2>&1
    if [ \$? = 0 ]
    then
    	echo "$name ($ip) läuft schon"
    else
    	echo "Sende WOL an $name ($mac) ..."
    	# -i eth0 ist Default und hier das Richtige
    	$PWD/busybox etherwake $mac
    	#$PWD/busybox ether_wake $mac
    	echo "Warte ob/bis $name ($ip) startet"
    fi
    EOF
    	chmod +x /var/tmp/start_$name
    done
    
    # TODO: VPN einrichten
    # VPN braucht in /var/flash/ar7.cfg:
    # "udp 0.0.0.0:1194 0.0.0.0:1194", # vpn"
    # oder selber Trick mit Pseudo Interface wie oben bei SSH
    
    ln -s $PWD/secret.key /var/tmp/secret.key
    #openvpn --cd /var/tmp --config $PWD/server.ovpn

    Tschö, Jojo
    Geändert von jojo-schmitz (03.06.2006 um 14:35 Uhr)

  13. #13
    IPPF-Fan
    Registriert seit
    03.01.2005
    Beiträge
    196
    Ich würde gerne die Variable benutzen? weil der Pfad ändert sich ja jeh nach USB Stick!
    Hat da jemand ne Info?

    gruß dino
    Fritz Box Phone WLAN 7170 V1.0 + TK Anlage
    Call & Surf Comfort ISDN (DSL Light) + Sipgate
    PC P4 Dual Core 3,0 GHz 2 GB RAM 19\" TFT

  14. #14
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Zitat Zitat von Dino75195
    Ich würde gerne die Variable benutzen? weil der Pfad ändert sich ja jeh nach USB Stick!
    Hat da jemand ne Info?
    Das erschlägt bei meiner Variante folgendes:
    Code:
    cd ${0%/*}
    Damit befinde ich mich in dem Verzeichnis, wo das Script liegt, das von /var/flash/debug.cfg aufgerufen wurde. Anschliessend steht das aktuelle Verzeichnis in der Environment Variablen PWD zur Verfügung und wird entsprechend in meinen Script verwurstet, z.B.
    Code:
    # scp ermöglichen, und mehr... (ssh == dbclient)
    # symlinks funktionieren leider nicht auf USB-Stick, wg. FAT(32) Format
    for cmd in dropbearkey scp ssh dbclient dropbearconvert
    do
    	ln -s $PWD/dropbear /var/tmp/$cmd
    done
    Natürlich hätte man statt dessen auch schreiben können:
    Code:
    cd $USBSTICK
    ...
    for cmd in dropbearkey scp ssh dbclient dropbearconvert
    do
    	ln -s $USBSTICK/dropbear /var/tmp/$cmd
    done
    Ich finde meine Methode schöner, die funktioniert auch wenn die debug.cfg diese Variable nicht setzt.

    Meine debug.cfg macht dementsprechend auch nur kurz und knackig:
    Code:
    # warten bis USB-Speicher mounted
    sleep 60
    # falls vorhanden entsprechende Scripte starten
    for f in /var/media/ftp/*/boot
    do
    	$f
    done
    Tschö, Jojo
    Geändert von jojo-schmitz (03.06.2006 um 14:34 Uhr)

  15. #15
    IPPF-Fan
    Registriert seit
    13.09.2004
    Beiträge
    117
    Zitat Zitat von jojo-schmitz
    Wüsste nichts, was dagegen spräche...
    Tschö, Jojo
    OK, die Fragestellung war nicht korrekt. Also dann andersherum: Wer ist in der Lage eine solche Lösung anzubieten(auch gegen ein "geringes Endgeld")???

    Guten Tag

  16. #16
    Gast

    Software und Binaries über USB-Stick laden

    Zitat Zitat von Dino75195
    Ich würde gerne die Variable benutzen? weil der Pfad ändert sich ja jeh nach USB Stick!
    Hat da jemand ne Info?

    gruß dino
    Folgendes ist auch möglich:

    USBSTICK=`cd ${0%/*} 2>/dev/null && pwd || echo ${0%/*}`

    Der Pfad des Scriptes hier wird richtig ermittelt, egal von wo aus der Script aufgerufen wird. Wenn der Script über den vollständigen Pfad aufgerufen wird dann würde auch genügen

    USBSTICK=${0%/*}

    MfG
    joe3

  17. #17
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Zitat Zitat von Joe3
    USBSTICK=`cd ${0%/*} 2>/dev/null && pwd || echo ${0%/*}`
    Geht nicht. Wenn cd fehlschlägt, wird weder das pwd noch das echo ausgeführt. Schuld ist die shortcut evaluation (wenn a schon falsch ist, braucht bei UND Verküpfung b erst garnicht geprüft zu werden, zu c kommte es dann erst Recht nicht) und die falsche (bzw. fehlende) Klammerung.

    So ginge es:
    Code:
    USBSTICK=$((cd ${0%/*} 2>/dev/null && pwd) || echo ${0%/*})
    Ich bevorzuge übrigens $(cmd) gegenüber `cmd`, sieht viel eleganter und übersichtlicher aus und läßt sich ggf. auch schachteln.

    Zitat Zitat von Joe3
    Der Pfad des Scriptes hier wird richtig ermittelt, egal von wo aus das Script aufgerufen wird. Wenn das Script über den vollständigen Pfad aufgerufen wird, dann würde auch genügen

    USBSTICK=${0%/*}
    Stimmt, aber: USBSTICK hat dann das Versichnis zum Inhalt, in dem sich das Script befindet, das kann durchaus ein Unterverzeichnis auf dem Stick sein, es ist nicht notwendigerweise dessen Wurzelverzeichnis.

    Tschö, Jojo
    Geändert von jojo-schmitz (03.06.2006 um 14:33 Uhr)

  18. #18
    Gast

    Software und Binaries über USB-Stick laden

    Zitat Zitat von jojo-schmitz
    Geht nicht. Wenn cd fehlschlägt wird weder das pwd noch das echo ausgeführt. Schuld ist die shortcut evaluation (wenn a schon falsch ist, braucht bei UND Verküpfung b erst garnicht geprüft zu werden, zu c kommte es dann erst Recht nicht) bzw. die falsche (bzw. fehlende) Klammerung.

    So ginge es:
    Code:
    USBSTICK=$((cd ${0%/*} 2>/dev/null && pwd) || echo ${0%/*})
    Ich bevorzuge übrigens $(cmd) gegenüber `cmd, sieht viel eleganter und übersichtlicher aus und läßt sich ggf. auch schachteln.


    Stimmt, aber: USBSTICK hat dann das Versichnis zum Inhalt in dem sich das Script befindet, das kann durchaus ein Unterverzeichnis auf dem Stick sein, es ist nicht notwendigerweise dessen Wurzelverzeichnis.

    Tschö, Jojo
    Danke nochmals für die Tips!
    Sicherlich geht es noch einfacher, aber ich lasse es bei mir erst mal so, da es getestet und auch mit der aktuellen 7170 Firmware 29.04.06 funktioniert.
    Nach dem Sinnspruch "Viele Wege führen nach Rom".
    Ein paar Bytes hin oder her.

    Ich werde bei Gelegenheit in meinem ersten Beitrag einen Change-Log hinzufügen mit den aktuellen Dateien boot und debug.cfg.

    MfG
    joe3

  19. #19
    IPPF-Erfahrener Avatar von webogdal
    Registriert seit
    12.06.2005
    Beiträge
    99
    Sorry, wie kann ich Befehle oder Scripte in die debug.cfg schreiben damit die dauerhaft drin gespeichert bleiben? Wie kann ich auf die debug.cfg überhaupt zugreifen? Bin noch ein Noob im diesem Gebiet...
    Gruß
    Bogie

    Router: FRITZ!Box Fon WLAN 7390
    Firmware-Version 84.05.22 (original)
    mit SATA Samsung 500 GB 2,5 Zoll Festplatte (FAT32) ohne externe Stromversorgung
    Fritz!Load (immer die neueste Version)
    Anbindung: Arcor 6144/640 kbit/s DSL/(kein VoIP) ---> echtes ISDN mit Deutschland und Europa Flatrate + 4 SIM Karten mit Flatrate
    Telefon: Siemens Gigaset 4115 Comfort + Siemens Gigaset SL785

  20. #20
    IPPF-Zweitausend-VIP
    Registriert seit
    06.05.2006
    Ort
    Düsseldorf
    Beiträge
    2.378
    Zitat Zitat von webogdal
    Sorry, wie kann ich Befehle oder Scripte in die debug.cfg schreiben damit die dauerhaft drin gespeichert bleiben? Wie kann ich auf die debug.cfg überhaupt zugreifen? Bin noch ein Noob im diesem Gebiet...
    Alles in debug.cfg bleibt erhalten, das ist ja gerade der Witz.
    Zum Beschreiben kann man nvi verwenden, lässt sich bedienen wie vi.
    Alternativ irgend eine Datei mit
    Code:
     cat somefile >/var/flash/debug.cfg
    in die debug.cfg schreiben. Diese Datei kann dann durchaus auch vom USB-Speicher kommen und dort mit dem PC erstellt worden sein, darf allerdings keine LF/CR (wie unter Dos/Windows üblich) sondern nur LF als Zeilenende enthalten.

    Tschö, Jojo
    Geändert von jojo-schmitz (17.07.2006 um 18:23 Uhr)

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. daten nach einem Reboot vom USB stick laden
    Von Matze-2310 im Forum FRITZ!Box Fon: Modifikationen
    Antworten: 7
    Letzter Beitrag: 09.12.2008, 21:29
  2. Asterisk auf USB-Stick laden und installieren
    Von Dino75195 im Forum FRITZ!Box Fon: Modifikationen
    Antworten: 4
    Letzter Beitrag: 03.10.2006, 15:16
  3. fremdes linux über usb platte laden?
    Von dschi im Forum Freetz
    Antworten: 3
    Letzter Beitrag: 17.08.2006, 21:06

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •