USB-Stick Autostart Daemon mit optischer Anzeige

risaer

Neuer User
Mitglied seit
25 Apr 2005
Beiträge
169
Punkte für Reaktionen
0
Punkte
16
Ich habe mich mal rangesetzt und ein kleines Startscript geschrieben,
was eine Datei vom USB-Stick startet.

Einfach am Anfang der debug.cfg einfügen. Darauf wird solange nach
einem USB-Stick und der darauf enthaltenen Startdatei gesucht, bis
sie gefunden wurde.
Wurde sie gefunden, wird dies für 10 sek. durch Blinken der INFO-LED
angezeigt während die Datei gestartet wird.

Danach wird der Daemon beendet bis zum nächsten Neustart.

Es funktioniert:
- bei eingestecktem Stick beim Booten
- wenn der Stick während des Betriebes eingesteckt wird
- nachdem eine Datei auf den Stick kopiert wurde (z.B. per FTP)

Standardmässig wird alle 10 sec. nach der datei fbfautorun.sh
im Root-Verzeichnis des USB-Sticks gesucht.

Das obligatorische Raten, wie hoch ein sleep wert sein muss,
bevor die Box Zugriff auf den Stick hat, und wie der Stick nun
gerade heißt, fällt also weg.

Aus Sicherheitsgründen empfielt es sich, das FTP-Laufwerk Passwort
zu schützen, den USB-Stick über das Webinterface - oder besser hardwareseitig -
schreibzuschützen, oder zumindest auf eine bestimmte Zeit, z.B. 2 min (LIMIT*WAIT_TIME)
nach dem Start zu begrenzen.

Es muss bedacht werden: Jeder, der Zugriff auf diese Datei hat, bzw.
eine erstellen kann, kann beliebigen Code einfügen. Zugangsdaten
ausspionieren wäre z.B. eine Möglichkeit.

Das gilt natürlich für alle Dateien auf dem USB-Stick, die nachgeladen
werden (können).

Ich finde es aber trotzdem gut :)

Code:
#===================================================================
usb_autostart()
#===================================================================
{

        LIMIT=0              # how many tries? 0 for unlimited
        WAIT_TIME=10    # seconds in between two tries
        HOME_DIR=/        # directory where to find the file on the
                                # stick, must end with /
        FILE_NAME=fbfautorun.sh #the file to look for
        SIGNAL_TIME=10 #Time in s how long the INFO-LED shall blink

        export usb_init=/var/media/ftp/`ls /var/media/ftp`${HOME_DIR}${FILE_NAME}
        i=0;
        echo Looking for autorun: ${HOME_DIR}fbfautorun.sh
        while [ ! -e ${usb_init} ] 2> /dev/null
        do
                #echo $i #for debugging
                export usb_init=/var/media/ftp/`ls /var/media/ftp`${HOME_DIR}${FILE_NAME}
                sleep $WAIT_TIME
                i=$(($i+1))

                if [ $i -gt $LIMIT ]
                then
                   if [ ! $LIMIT -lt 1 ]
                   then
                        break
                   fi
                fi
        done
        if [ -e ${usb_init} ]
        then
          echo 7,3 >/var/led
          echo Autorun found.
          echo ${usb_init}
          echo executing .....
          ${usb_init} &
          sleep $SIGNAL_TIME
          echo 7,1 >/var/led
        fi

}
#===================================================================

usb_autostart &

Das liesse sich jetzt natürlich noch mit einem Stop-Script verbinden, das nach dem
Entfernen z.B. einen bestimmter Dienst wieder beendet (z.B. OpenVPN zum Mitnehmen)

PS: Das funktioniert z.Zt. nur, wenn ein Stick/HDD gemounted wird. Es darf ausserdem nur
eine Partition vorhanden sein. Wer eine Wechselfestplatte mit mehreren
Partitionen oder mehrere Platten über einen Hub (gibts da eigentlich schon jemanden??)
hat, muss das Script anpassen.

Bin gerade dabei, eine neue Version davon zu basteln.

Rückmeldung wär fein :)
 
Zuletzt bearbeitet:
Diesmal muß ich sagen, daß mir die Idee ganz gut gefällt.
Bin auf die nächste Variante gespannt ...
 
Version 2.008

So. Jetzt hat es endlich geklappt:

Version 2:
Code:
####INIT_USB_AUTORUN####
#===================================================================
wait_for_remove()
#===================================================================
{

#   echo ${FTP}${fundstelle}${HOME_DIR}${STOP_FILE} #*#

   if [ -e ${FTP}${fundstelle}${HOME_DIR}${STOP_FILE} ]
   then
	   cp ${FTP}${fundstelle}${HOME_DIR}${STOP_FILE} /var/tmp/${STOP_FILE}
	   chmod +x /var/tmp/${STOP_FILE}

	   while [ 1 = 1 ]
	   do
   	      if [ ! -e ${FTP}${fundstelle}${HOME_DIR}${START_FILE} ]
	      then 
		 echo 7,2 >/var/led
		 sleep $SIGNAL_TIME
		 /var/tmp/${STOP_FILE}
		  echo 7,3 >/var/led
		 continue
	      fi
	      sleep $WAIT_TIME
	   done
	   echo 7,1 >/var/led
   fi
}





#===================================================================
run_init()
#===================================================================
{

        if [ -e "${1}" ]
        then
          echo 7,3 >/var/led
#          echo "** Autorun found **"
#          echo executing Autorun $1 #*#
          $1 &
          sleep $SIGNAL_TIME
          echo 7,1 >/var/led
      	  wait_for_remove
        fi
}



#===================================================================
usb_autostart()
#===================================================================
{

        LIMIT=0              	# how many tries? 0 for unlimited
        HOME_DIR=/      	# directory where to find the file on the
                                # stick, must end with /
        START_FILE=fbfautorun.sh #the file to look for
	FTP=/var/media/ftp/  	#location of the ftp-folder
        WAIT_TIME=10   	        # seconds in between two tries
        SIGNAL_TIME=10   	#Time in s how long the INFO-LED shall blink
        
        STOP_FILE=fbfstop.sh #will be executed when USB-Stick (/start-file
        			     #is removed)

	found_files=0

        i=0;
        #echo "Looking for the first autorun-file (${HOME_DIR}{$START_FILE}) on any USB-Stick partitions"
        #echo "in scripts you can use the right dir of usb-stick e.g. "
        #echo "cat /var/flash/debug.cfg > /var/media/ftp/\`cat /var/tmp/autorun_disk_name\`/debug.backup"
        #echo "(with \`\`)"
        
        rm /var/tmp/autorun_disk_name 2>/dev/null
        while [ $found_files = 0 ]
        do
		#-------------------------------
		for fundstelle in `ls ${FTP} 2>/dev/null`; 
		do 
#		   echo ${FTP}${fundstelle}${HOME_DIR}${START_FILE} #*#
		   if [ -e ${FTP}${fundstelle}${HOME_DIR}${START_FILE} ]; 
		   then
                      if [ ${found_files} = 0 ]
                      then
#		         echo "Autorun file found on: $fundstelle" #*#
                         found_files=$(($found_files+1))
                         touch /var/tmp/autorun_disk_name 
                         echo ${fundstelle}>/var/tmp/autorun_disk_name 
                         #write this dir to file for script
                         
		         run_init ${FTP}${fundstelle}${HOME_DIR}${START_FILE}
		      fi
		      continue
		      
		   fi; 
		done
		#--------------------------------

                sleep $WAIT_TIME
                i=$(($i+1))

                if [ $i -gt $LIMIT ]
                then
                   if [ ! $LIMIT -lt 1 ]
                   then
                        break
                   fi
                fi
        done


}
#===================================================================

#echo "my name:" ${0}
log="/dev/null"
#log="/var/tmp/autorun.log"
#log="/dev/tty"

echo "${log}">/var/tmp/log_file

cat ${0}|grep -v DO_NOT_INSERT_THIS_LINE_INTO_DEBUG_CFG >/var/flash/debug.cfg ##rewrite debug.cfg
usb_autostart > $log & 
####/INIT_USB_AUTORUN#####

Bedienung:
Am Anfang einfügen in die debug.cfg. Das wars.
Sobald sich eine gemountete Partition eines USB-Sticks/einer HDD findet, in der sich eine fbfautostart.sh befindet, wird diese
ausgeführt. Sobald sich diese Datei dort nicht mehr befindet (umbenennen, USB-Stick abziehen oder über Web-interface unmounten), wird das script fbfstop.sh ausgeführt.

Der Name der benutzten Partition findet sich für scripte dann in der Datei
/var/tmp/autorun_disk_name wieder.

Anhang:
Im Anhang findet ihr:

* der code von oben (debug.cfg), dass ihr in eure einfügen müsst (wird danach nicht mehr benötigt)

* fbfautostart.sh: einige Beispiele, die nach dem Einschieben des Sticks
- ein backup eurer .cfg's auf dem Stick erstellt
- "vom Hersteller nicht unterstützte ..." entfernt
- ein script zum pingen bestimmter rechner und eins zum testen der internetverbindung ins /var/tmp/legt

* fbfstop.sh: bringt die Box beim Entfernen des Sticks für 10s zum Blinken

Entpackt das Archiv so auf euren Stick, dass die drei Dateien und das unterverzeichnis fbf im Rootverz. eures Sticks sind,
startet danach testweise vom stick die debug.cfg und testet, ob alles klappt.

Wenn ja, fügt den Code ein. Thats it. :)

GANZ wichtig!!:
Testet Die fbfautorun.sh vorher ein paar mal. Es dürfen KEINE AUSGABEN auf der Konsole erscheinen. Erscheinen doch Ausgaben,
wird unsinniger Krams in die Datei /var/tmp/autorun_disk_name geschrieben.

Weiss jemand vielleicht, wieso? gibt es /dev/tty vielleicht während des Startes der debug.cfg noch nicht? Kommandozeilenausgaben
währenddessen können immer wieder seltsame effekte bringen. Vielleicht wird das handle der console auch auf irgendetwas anders gesetzt??

Hat jemand eine Idee, wie ich alle Ausgaben, die durch dieses Script gemacht werden, umlenken kann?



[edit 30.03.07]
Datenverlust bei Nutzen des "sicheren Entfernen" Buttons auf der Webseite
In einigen Fällen wird der Stick bzw. die Festplatte komplett gelöscht, wenn das (gutgemeinte) unmount-Skript
auf der Webseite gestartet wird. In diesem Thread steht, warum das passiert:
http://www.ip-phone-forum.de/showthread.php?t=132176

Das über die Seite gestartete AVM-Skript unmounted und entfernt danach ohne Überprüfung das Verzeichnis in dem der Stick
gemounted war und damit alles darin. Ist das unmounten nicht erfolgreich weil vielleicht noch auf eine Datei zugegriffen wird, so wird auch der komplette Inhalt des Sticks gelöscht.

Ich benutze nur einen kleinen USB-Stick um die Funktionalität meiner Fritzbox zu erweitern. Samba nutze ich nicht.
Backups vom Stick lassen sich schnell und einfach über FTP oder direkt am Rechner machen.

Obwohl rein theoretisch auch ein Datenverlust auftreten kann, wenn der Stick einfach nur herausgezogen wird,
ist die Chance hier ungleich niedriger. Nach einem Schreibvorgang einfach etwas warten, bis die Lampe nicht mehr blinkt und
dann ziehen. Dabei ist mir noch nie etwas abhanden gekommen. Auch keine geschriebenen Logfiles. Das funktioniert erste Sahne.

Aber: Eine 100GB Platte mit wichtigen Daten würde ich nicht so ohne weiteres anschliessen.

[/edit]






Ideen zum Benutzen:
- Startskripte einfacher über ftp bearbeiten und testen
- im Fehlerfall Stick einfach entfernen
- Backups erzeugen
- Box besser fernwarten: z.B. OVPN start oder :
- Netzwerkkonfiguration anpassen. (Daten auf einen Stick kopieren lassen und die Schwester diesen in
die Box stecken zu lassen ist einfacher als hinzufliegen gg)
- Internet, Webinterface, telnet, ssh,... nur während eingestecktem/ausgestecktem Stick verfügbar machen
- ....
- ach ja: und natürlich das Interface-modden. und nach dem Rausziehen ist
alles wie bisher.
 

Anhänge

  • fbfautorun_upload.zip
    3.3 KB · Aufrufe: 204
Zuletzt bearbeitet:
hallo

habe es genauso mal probiert wie du beschrieben hast, ich hatte folgende probleme.

der usb stick wurde erkannt und es wurde auch ein backup gemacht. dann wollte ich den usb mal trennen. also auf der weboberfläche usb stick trennen. dann wurde auch das stop script ausgeführt. danach habe ich den stick wieder dran gesteckt und musste feststellen, dass alle daten drauf weg waren

auch habe ich noch ein problem wenn ich den anrufbeantworter automatisch starten lassen will

es kommt folgendes problem

http://www.ip-phone-forum.de/showpost.php?p=786914&postcount=196
 
ja, das konnte ich leider unfreiwillig auch reproduzieren.

Das unfreiwillige Löschen funktioniert auch mit meinem
Handy ganz gut <grr> Da hätte ich besser meine ganzen
Bilder und Daten vorher mal sichern sollen, bevor ich das
rangesteckt habe :-7

Ich weiss leider im moment auch nicht, woran das liegt.
Eventuell passiert es, wenn der Stick so schnell wieder
reingesteckt wird, dass die Box noch nicht so ganz geschnallt
hat, dass er weg.

Die alte Partition USB-DISK-0-0 ist noch vorhanden
und es erscheint eine neue a la USB-DISK-0-1, und
dabei geht dann etwas schief.

Hab leider grad keine Zeit, mich damit auseinanderzusetzen.
Erst nächsten Monat wieder.

Zu deinem AB:
Während des Startens von Scripten, die von der debug.cfg
aus gestartet werden, sollten KEINE AUSGABEN auf die Konsole
ausgegeben werden. Irgendwie führt das in bestimmten
Fällen zu seltsamem Verhalten oder nichtfunktioinieren
von eigentlich korrekten Skripten. Keine Ahnung, wiso.
 
lord-of-linux schrieb:
Hallo,

ich habe auf deinem Screenshot http://www.ip-phone-forum.de/attachment.php?attachmentid=12902&d=1168661249 vom Menü der Fritzbox gesehen, dass dort etwas von Skype steht. Was bewirkt dies und wie hast du das den in die Fritz bekommen? (Dass du nicht über Skype telen kannst, ist mir klar.

MfG,
Ingmar


ich habe mir mal das komplette html der fb auf den stick kopiert und damit ein wenig rumgespielt.
Ich greife nun direkt auf die Seiten vom Stick zu.

Die Datei, die ich dafür verändert habe, ist html/de/home/home.html.

Anstelle des kompletten kopierens, kannst natürlich auch mit sed einzelne teile verändern und nur die einzelne Datei mounten.

Das einzige, was ich hier mache, ist, den Skypebutton zu integrieren.

das ist die Datei. Der part für Skype steht ganz unten

Code:
<? include ../html/$var:lang/home/home.inc ?>
<? setvariable var:DSLTrainingState "$var:txt009" ?>
<? if eq `<? query sar:status/dsl_carrier_state ?>` `3` `<? setvariable var:DSLTrainingState "$var:txt034" ?>` ?>
<? if eq `<? query sar:status/dsl_carrier_state ?>` `4` `<? setvariable var:DSLTrainingState "$var:txt034" ?>` ?>
<? if eq `<? query sar:status/dsl_carrier_state ?>` `5` `<? setvariable var:DSLTrainingState "$var:txt010" ?>` ?>
<? if eq `<? query box:settings/ata_mode ?>` `1` `<? setvariable var:DSLTrainingState "$var:txt050" ?>` ?>
<div id="content">
	<? if eq $var:OEM arcor '<p style="text-align: right; padding: 5px 0px;"><img src="../html/<? $var:lang ?>/images/arcor40.jpg"></img></p>' ?>
	<div class="backtitel"><div class="rundrt"><div class="rundlt"><div class="ecklb"><div class="eckrb"><div class="foretitel">
		<? echo $var:txt019 ?>
	</div></div></div></div></div></div>
	<div class="backdialog"><div class="ecklm"><div class="eckrm"><div class="ecklb"><div class="eckrb"><div class="foredialog">
		<p class="ac"><? echo $var:txt021 ?><? echo $var:txt020 ?><? query logic:status/nspver ?></p>
	</div></div></div></div></div></div>
	<div class="backtitel"><div class="ecklm"><div class="eckrm"><div class="ecklb"><div class="eckrb"><div class="foretitel">
		<? echo $var:txt000 ?>
	</div></div></div></div></div></div>
	<div class="backdialog"><div class="ecklm"><div class="eckrm"><div class="ecklb"><div class="eckrb"><div class="foredialog">
		<table class="tborder" id="t1">
			<tr>
				<td>
					<table id="tAnsch">
						<tr>
							<td style="width:13px"><script type="text/javascript">document.write(DslStateLed());</script></td>
							<td style="width:110px"><? echo $var:txt001 ?></td>
							<td><script type="text/javascript">document.write(DslStateDisplay());</script></td>
						</tr>
						<tr>
							<td><script type="text/javascript">document.write(WlanStateLed());</script></td>
							<td><? echo $var:txt008 ?></td>
							<td><script type="text/javascript">document.write(WlanStateDisplay());</script></td>
						</tr>
						<tr>
							<td><script type="text/javascript">document.write(UsbHostLed());</script></td>
							<td><? echo $var:txt036 ?></td>
							<td><script type="text/javascript">document.write(uiUsbDisplay());</script></td>
						</tr>
					</table>
				</td>
				<td>
					<table id="tLan">
						<tr>
							<td style="width:13px"><script type="text/javascript">document.write(StateLed("<? query eth0:status/carrier ?>"));</script></td>
							<td style="width:207px"><? echo $var:txt038 ?></td>
						</tr>
						<tr>
							<td><script type="text/javascript">document.write(StateLed("<? query eth1:status/carrier ?>"));</script></td>
							<td><? echo $var:txt039 ?></td>
						</tr>
						<tr>
							<td><script type="text/javascript">document.write(StateLed("<? query eth2:status/carrier ?>"));</script></td>
							<td><? echo $var:txt040 ?></td>
						</tr>
						<tr>
							<td><script type="text/javascript">document.write(StateLed("<? query eth3:status/carrier ?>"));</script></td>
							<td><? echo $var:txt041 ?></td>
						</tr>
					</table>
				</td>
			</tr>
		</table>
<? if neq `<? query box:settings/ata_mode ?>` `1` `
<? if eq `<? query box:status/hint_dsl_no_cable ?>` `1` `<p class="info">$var:txt042 <a href="javascript:jslGoTo('', 'syslog');" id="nsLink">$var:txt054</a></p>` ?>
<? if eq `<? query box:status/hint_dsl_training ?>` `1` `<p class="info">$var:txt043</p>` ?>
` ?>
<!-- volume <? query box:status/hint_volume_budget_reached ?>; time <? query box:status/hint_time_budget_reached ?> -->
<? if eq `<? query box:status/hint_volume_budget_reached ?>` `1` `<p class="info">$var:txt044</p>` ?>
<? if eq `<? query box:status/hint_time_budget_reached ?>` `1` `<p class="info">$var:txt045</p>` ?>
	</div></div></div></div></div></div>
	<div class="backtitel"><div class="ecklm"><div class="eckrm"><div class="ecklb"><div class="eckrb"><div class="foretitel">
		<? echo $var:txt055 ?>
	</div></div></div></div></div></div>
	<div class="backdialog"><div class="ecklm"><div class="eckrm"><div class="ecklb"><div class="eckrb"><div class="foredialog">
		<table id="tPpp" class="tborder" style="margin:auto; width: 100%">
			<tr>
				<td style="width:13px"><script type="text/javascript">document.write(PppLed());</script></td>
				<td style="width:110px"><? echo $var:txt056 ?></td>
				<td colspan=2><script type="text/javascript">document.write(PppDisplay());</script></td>
			</tr>
			<tr id="FonAll" style="display:none">
				<td style="width:13px"><img src="../html/<? echo $var:lang ?>/images/led_gray.gif"></td>
				<td style="width:110px"><? echo $var:txt022 ?></td>
				<td colspan=2><script type="text/javascript">document.write(FonDisplay());</script></td>
			</tr>
<? multiquery sip:settings/sip/list(displayname) `
			<tr id="FonStatus$1" style="display:none">
				<td style="width:13px"><script type="text/javascript">document.write(SipLed("$1"));</script></td>
				<td style="width:110px"><? echo '$var:txt057' ?></td>
				<td>$2</td>
				<td><span id="Status$1">&nbsp;</span></td>
			</tr>
` ?>




<!-- Skype 'My status' button -->
			<tr id="FonStatus$1">
				<td style="width:13px">
					<script type="text/javascript" src="http://download.skype.com/share/skypebuttons/js/skypeCheck.js"></script>
					<img src="http://mystatus.skype.com/smallicon/deinName" style="border: none;" width="16" height="16" alt="My status" />
				</td>
				<td style="width:110px">Skype:</td>
				<td>tabakistalle</td>
				<td>
					<script type="text/javascript" src="http://download.skype.com/share/skypebuttons/js/skypeCheck.js"></script>
					<a href="skype:deinName?call"><img src="http://mystatus.skype.com/bigclassic/deinName" style="border: none;" width="90" height="22" alt="My status" /></a>
				</td>
			</tr>
<!-- ende Skype -->

		</table>
	<br><table class="tborder" id="t1">
			<tr>
				<td style="text-align:center">
				<a href="javascript:jslGoTo('usb','usbdisk');"><img src="<? echo $var:pfeil ?>"> Massenspeicher &nbsp;</a>  &nbsp;
			<a href="javascript:jslGoTo('fon','siplist')"><img src="<? echo $var:pfeil ?>"> Internettelefonie &nbsp;</a> &nbsp;
			<a href="javascript:jslGoTo('internet','portfw')"><img src="<? echo $var:pfeil ?>"> Portfreigabe &nbsp;</a> &nbsp;
			<a href="javascript:jslGoTo('system','syslog')"><img src="<? echo $var:pfeil ?>"> Ereignisse &nbsp;</a>   &nbsp;
	</td></tr></table>
<!-- freecall <? query box:status/hint_voip_freecall ?>; voice <? query box:status/hint_voip_voice_message_waiting ?>, email <? query box:status/hint_voip_email_message_waiting ?>, fon <? query box:status/hint_telefon_message_waiting ?> -->
<? if eq `<? query box:status/hint_voip_freecall ?>` `1` `<p class="info">$var:txt048</p>` ?>
<? if eq `<? query box:status/hint_voip_voice_message_waiting ?>` `1` `<p class="info">$var:txt047</p>` ?>
<? if eq `<? query box:status/hint_voip_email_message_waiting ?>` `1` `<p class="info">$var:txt049</p>` ?>
<? if eq `<? query box:status/hint_telefon_message_waiting ?>` `1` `<p class="info">$var:txt046</p>` ?>

		<p id="uiViewEventlink" class="mt10" style="display:none"><a href="javascript:jslGoTo('', 'syslog');"><? echo $var:txt052 ?></a></p>
	</div></div></div></div></div></div>
	<? include ../html/$var:lang/home/rbb_refresh.html ?>
</div>
 
@riser

wäre schön wenn du dein script noch optimieren könntest, damit nicht dieser total absturz des stick auftritt.

dann werde ich auch dein skript in meiner 7170 wieder einbauen
 
@lolax:
ich habe an zwei fbfs einen Stick ran und nutze es, um openvpn-
konfigurationen oder anzupassen einfach über ftp startskripte. Eine Box betreue ich remotely.

Sollte mal irgendwas schiefgehen an den Skripten, kann man immer den
Stick rausziehen und über nen Rechner korrigieren. Für den Fall der Fälle
mache ich hin und wieder Backups davon.

Soweit ich es sehe, tritt der Datenverlust nur auf, wenn man den Stick zu
schnell wieder reinsteckt, oder wenn man über das Webinterface unmounted, oder?

Normale reboots (auch stecker raus, stecker rein) liefen bei mir immer ohne
probleme.

Um nach den ursachen zu forschen, hab ich im moment leider überhaupt keine zeit. :noidea:

Steht aber auf jeden Fall auf meiner TODO-Liste :)
 
ok, dann schauen wir mal.

ich hatte probleme mit deinem http wechsel. bei mir wurde auf einmal die startseite nicht mehr richtig angezeigt. anscheinend kann es da auch zu problemem kommen
 
lolax schrieb:
ok, dann schauen wir mal.

ich hatte probleme mit deinem http wechsel. bei mir wurde auf einmal die startseite nicht mehr richtig angezeigt. anscheinend kann es da auch zu problemem kommen

Hmm? Was für ein http-wechsel?
 
ich meinte die änderung der startseite, bzw. das löschen der fehlermeldung darauf
 
könntest du mal erklären, wie ich das mit dem web interace redesign orange in dein script mit einbaue. wie muss ich dateien auf den stick kopieren. was einstellen....

wäre nett von dir
 
@riser

hallo , gibt es schon etwas neues?
 
Hallo zusammen,

zu diesem Thema habe ich noch eine Idee:
In den Konfigurationsanleitungen zum AVM-USB-Stick für WLAN wird ja beschrieben, dass man den Stick nur einmal in die 7170 einstecken soll, damit der dann automatisch konfiguriert wird.

Dabei muss ja zwingend so etwas wie eine "Autoexec.bat" ablaufen.

Wenn nun jemand diese Routine finden würde, könnte man doch einen beliebigen USB-Stick (keinen WLAN-Stick) dazu verwenden, um eine eigene Konfiguration (debug.cfg) auf jeder beliebigen 7170 zum Laufen zu bringen, ohne die Box selbst grossartig zu modden.
Frei nach dem Motto: Einstecken und gut is! Rausziehen und weg is!

Wie gesagt, ist blos eine (vielleicht dumme) Idee.... :noidea:

Joe
 
huch. hatt ich hier nicht vor einiger zeit noch mal irgendwo geantwortet ??:confused:

@lolax:
das orange design hab ich auch mal ganz kurz testen wollen.
Hab nur keine Ahnung, wie das ablaufen soll

Obs was neues gibt? im moment nicht. Bei mir ist grad stress und
danach - nennen wir es mal - Lebensumstellung angesagt. Die nächsten
zwei Monate wirds wohl erstmal nix (grossartig) neues geben.

Danach aber auf jeden Fall wieder. das wird sich doch wohl
noch vernünftig lösen lassen.

@joe_57:
habe keine erfahrung mit diesem stick, aber das wird wohl ähnlich (wenn wohl auch etwas durchdachter) ablaufen:
ein script (oder der USB-controller) auf der box wartet auf nen Stick. Besitzt der eingesteckte Stick dann die richtige Hardware-kennung, wird da irgendwas auf dem Stick konfiguriert.

Das wird sich aber alles fest auf der Box befinden und von dort aufgerufen werden. Sowas wie ne "Autoexec" ist auf dem WLAN-Stick aber sicher nicht implementiert.

Davon abgesehen, würde ich die paar zeilen Code in der debug nicht als "grossartiges Modden" bezeichnen :)
 
Hallo,

wird von der FB etc\hotplug\run_mount aufgerufen, wenn ein Datenträger angeschlossen wird?

Dann wäre nämich die dortige Funktion "do_mount()" interesant ;-)
 
hallo,

@risaer:
ich würde gerne die Meldung
"In Ihrer FRITZ!Box wurden vom Hersteller nicht unterstützte Änderungen durchgeführt.
Weitere Informationen."
weg bekommen.

ich glaube die richtigen zwei zeilen in der html/de/home/home.html schon gefunden zu haben.
zeilen:
Code:
<p class="mt10" id="uiNotSigned" style="color: #CC0000; display: none"><? echo $var:txt053 ?><br>
<a href="javascript:jslPopHelp('hilfe_nichtsigniert')" id="nsLink"><? echo $var:txt054 ?></a></p>

ich dachte mir, dass ich einfach mal versuche die home.html zu überschreiben. das klappte wegen fehlender schrebrechte natürlich nicht.

meine Frage: wie hast du das hin bekommen?
 
Man kann Dateien "überschreiben" mit "mount -o bind ...".
Dazu kopiert man erst die Orig-Datei z.B. nach /var/tmp, bearbeitet diese Kopie und ersetzt dann sozusagen das Original durch die Kopie.

Hier Beispiel, um /etc/profile zu bearbeiten:
cp /etc/profile /var/tmp
echo "export PATH=$PATH:/var/tmp/bin" >> /var/tmp/profile
echo "alias dir='ls -l'" >> /var/tmp/profile
echo "alias l='ls -l'" >> /var/tmp/profile
mount -o bind /var/tmp/profile /etc/profile
 
wird die home.html datei nach jedem neustart neu erstellt? also muss ich das bearbeiten der home.html datei in debug.cfg datei schreiben oder reicht es wenn ich es einmal mache?
wenn ich es in die debug.cfg schreiben muss, weis ich nicht wie ich die zwei zeilen aus der home.html datei entfernen kann. ich kenne den befehl nicht.

was bewirken diese zeilen:
Code:
echo "export PATH=$PATH:/var/tmp/bin" >> /var/tmp/profile
echo "alias dir='ls -l'" >> /var/tmp/profile
echo "alias l='ls -l'" >> /var/tmp/profile

ich kanns mir denken, aber als ich es gerade getestet habe, kam nicht das von mir erwartete ergebnis raus.
 
Da deine Änderungen nach reboot weg sind, musst du das in debug.cfg machen.
Das von mir gezeigte war nur ein Beispiel wie man eine Datei bearbeiten könnte und hat nichts mit deinem Problem zu tun.
(alias funktioniert scheinbar auf neuerer FW nicht?)
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,840
Beiträge
2,219,265
Mitglieder
371,543
Neuestes Mitglied
Brainbanger
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.