Alternative fuer USB-Root auf dem Stick

OK dann werde ich das heute abend erstmal mit dem Alien Image von Freetz probieren und dann hier Bericht erstatten.
 
Hi.
@abraXxl
Dass die serielle Konsole im "entscheidenden Moment" kein Output liefert ist auf den anderen Boxen auch so. Aber ein Boot mit "init=/bin/sh" und dann manuelles ausführen der Befehle aus dem Skript könnte ein Hinweis liefern.

edit: Hast du eigentlich irgendwo beschrieben welche Pakete von deinem Skript gebraucht werden? Mir fällt da brctl und cpmaccfg auf.

MfG Oliver
 
Zuletzt bearbeitet:
So da ich ja ein hartnäckiges Kerlchen bin habe ich eben angefangen die rc.usbroot der aktuellen 0.2er Version aus dem Freetz trunk zu bearbeiten.
Mit Erfolg, mein W900V arbeitet nun wunderbar mit USB-Root.
Angelehnt und ausgeliehen habe ich die entsprechenden Code Teile größtenteils aus dem alten rc.usbroot_w900.

Könnte man doch fest mit aufnehmen in usbroot oder nicht?

Code:
modprobe Piglet piglet_bitfile=$piglet_bitfile $piglet_load_params

       ##### W900V ########
       900yes=`cat /proc/sys/urlader/environment | grep "Fritz_Box_DECT_W900V"`
	if [ "$900yes" != "" ]; then 
	   atm_driver_params=""
	   [ -r /proc/sys/dev/adam2/annex ] && ANNEX=`cat /proc/sys/dev/adam2/annex`
     ANNEX_FIRMWARE=/lib/modules/microvoip-dsl.bin
	   [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/ar0700xx.bin
     [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/ar0700aa.bin
	   [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/ubik/ubik2-dsl.bin
	   [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/dsp_ur8/ur8-${ANNEX}-dsl.bin
	   echo "attempting to load DSL Firmware '${ANNEX_FIRMWARE}'"
	   [ -f ${ANNEX_FIRMWARE} ] || echo "Error: '${ANNEX_FIRMWARE}' not found " 1>&2
	   [ -f ${ANNEX_FIRMWARE} ] && {
	     modprobe tiatm ${atm_driver_params} firmware_load_file=${ANNEX_FIRMWARE} annex=${ANNEX}
	     sleep 2
	     lsmod | grep -q ^tiatm || perror "load tiatm failed" 1>&2
     }

	   isdn_fbox="isdn_fbox_fon4" # W900V
	   isdn_params=""
	   isdn_params="${isdn_params} dect_hw=2" # W900V
	   isdn_params="${isdn_params} dect_on=1" # dect on/off
	   modprobe $isdn_fbox $isdn_params
	   sleep 2
	   capi_codec=`ls -R /lib/modules/ | grep 'lib.*capi_codec'`
	   capi_codec=${capi_codec%:}/capi_codec.ko
	   [ -f ${capi_codec} ] && insmod ${capi_codec}
	   sleep 2
	fi
       ########

        modprobe usbcore
        if modprobe usbahcicore AHCI_BaseAddress=0xbe008000 AHCI_RegisterOffset=0x4000 AHCI_IntLine=1; then
                mount -t usbfs usbfs /proc/bus/usb
        fi

Noch die mount ausgabe:
rootfs on / type rootfs (rw)
/dev/root on /oldroot type squashfs (ro)
/dev/sda2 on / type ext2 (rw,noatime,nodiratime)
dev on /dev type tmpfs (rw,nosuid)
proc on /proc type proc (rw,nodiratime,nosuid,nodev,noexec)
tmpfs on /var type tmpfs (rw)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)
/dev/mtdblock6 on /data type jffs2 (rw,noatime)
usbfs on /proc/bus/usb type usbfs (rw)
 

Anhänge

  • usbroot.jpg
    usbroot.jpg
    110.7 KB · Aufrufe: 136
Zuletzt bearbeitet:
Die gepatched rc.usbroot funktioniert bestens mit der W900V. Alles andere bei mir hat nicht geklappt. Danke an Loomes!
 
Jo danke dir für die Rückmeldung.
Ich nutze das seit damals auch so im Dauerbetrieb.
Leider hat das anscheinend niemanden weiter interessiert :confused:
Aber wir wissen ja das es funktioniert.
 
Ich wollte es so nicht in Freetz übernehmen, weil ich denke, dass viele von deinen Änderungen unnötig sind. Aber ich hab noch nicht die Zeit gefunden das genauer zu untersuchen. Wobei ich auch keine passende Box zum Testen habe. Es könnte daran liegen, dass auf dem W900V der tiatm geladen sein muss, dass USB funktioniert!?

MfG Oliver
 
Meine W900V hat nix serielles, deswegen ist testen sehr schwer. aber tiatm ist ein Anhaltspunkt.

Der Patch so ist wahrscheinlich wirklich zu viel, da da glaub ich auch Sachen für die 7270 mit drinstehen oder so. Die zu laden - bzw. zu versuchen - ist ziemlich unnötig.
 
Tja ich kann da auch nicht viel zu sagen.
Ich habe damals nur die Brocken zusammengesucht aus den ganzen nicht funktionierenden Ansätzen die es hier so gab und habe es soweit modifiziert damit es normal über die vorhandene Gui konfiguriert und aktiviert werden konnte.
Damit war mein Ziel dann erreicht und seitdem habe ich mich damit nicht wieder beschäftigt.

So ich hab das gerade mal angepasst bei mir, und alles nach dem tiatm rausgeschmissen und es funktioniert noch immer. Ihr hattet also wohl recht.
Nun steht nur noch dieses hier zusätzlich in der rc.usbroot:

Code:
	900yes=`cat /proc/sys/urlader/environment | grep "Fritz_Box_DECT_W900V"`
	if [ "$900yes" != "" ]; then 
	   atm_driver_params=""
	   [ -r /proc/sys/dev/adam2/annex ] && ANNEX=`cat /proc/sys/dev/adam2/annex`
     ANNEX_FIRMWARE=/lib/modules/microvoip-dsl.bin
	   [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/ar0700xx.bin
     [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/ar0700aa.bin
	   [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/ubik/ubik2-dsl.bin
	   [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/dsp_ur8/ur8-${ANNEX}-dsl.bin
	   echo "attempting to load DSL Firmware '${ANNEX_FIRMWARE}'"
	   [ -f ${ANNEX_FIRMWARE} ] || echo "Error: '${ANNEX_FIRMWARE}' not found " 1>&2
	   [ -f ${ANNEX_FIRMWARE} ] &&
	   {
	     modprobe tiatm ${atm_driver_params} firmware_load_file=${ANNEX_FIRMWARE} annex=${ANNEX}
	     sleep 2
	     lsmod | grep -q ^tiatm || perror "load tiatm failed" 1>&2
     }
	fi
 
Zuletzt bearbeitet:
Code:
ANNEX_FIRMWARE=/lib/modules/microvoip-dsl.bin
	   [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/ar0700xx.bin
     [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/ar0700aa.bin
	   [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/ubik/ubik2-dsl.bin
	   [ -f ${ANNEX_FIRMWARE} ] || ANNEX_FIRMWARE=/lib/modules/dsp_ur8/ur8-${ANNEX}-dsl.bin
Welche der Dateien ist denn im W900V drin? Dann kann man die anderen rauswerfen? Ich nehme an, dass es sich um die erste handelt?

MfG Oliver
 
Ja die erste ist drinn.
 
Dann müsste es damit auch funktionieren.
Code:
ANNEX=`cat /proc/sys/dev/adam2/annex`
ANNEX_FIRMWARE=/lib/modules/microvoip-dsl.bin
modprobe tiatm firmware_load_file=${ANNEX_FIRMWARE} annex=${ANNEX}
sleep 2
MfG Oliver
 
Das kann schon sein.
ANNEX=`cat /proc/sys/dev/adam2/annex` diese Datei existiert in der aktuellen Version des Images auch nicht mehr.

Irgendwas wird sich der Ersteller des Codes damals aber wohl bei all diesen Abfragen gedacht haben.

Villeicht liest er ja das hier und kann sich dazu äussern?

Ansonsten stören die Abfragen ja nicht weiter und behindern die Funktion auch nicht.
 
Die Abfrage kann man ja ohne größere Schwierigkeiten ändern, wenn der W900V denn mit Annex A läuft!?

MfG Oliver
 
Super

Hallo,
Bei mir läuft aus irgend einem Grund auch usbroot-0.2 nicht, Sobald ich ein Image mit diesem auf die FRtizbox WLAN 3131 schiebe, lässt diese sich nurnoch durch ein Recover wieder animieren. Also habe ich mir deine Methode anegschaut. Ich habe alle Dateien aus dem Ordner
HTML:
freetz-1.0.3/build/modified/filesystem
auf meinen Stick in den Ordner fritzfs kopiert, rom dort angelegt und mit
HTML:
ln -s fritzfs/ rootfs
den Link auf den Ordner freetzfs angelegt. Sobald ich jetzt jedoch den Stick an die laufende Box schließe, kann ich diese nicht mehr ansprechen. Habe ich die falschen Dateien kopiert? Ist der Link falsch?

Ich würde mich über Hilfe freuen und sorry, dass ich son alten Thread ausgrabe,
Blck
 
Uff. Ich kann nur mut maßen da ich diese Methode damals auf einem Speedport entwickelt habe.

Ich vermute ohne es genau zu wissen das dort ähnlich zum 7170/W900V dort der besonders "stabile" ;) AHCI USB-Controller von AVM drin ist.

Das bedeutet USB1.1 und alles ist sehr langsam. Hast du lange genug gewartet? 2-3 Min kann es schon dauern. Welches Dateisystem nutzt du auf dem Stick? Alle Dateisystemtreiber im Freetz Image?
Ein Bootlog von der seriellen Console, waere sehr cool. All diese Hinweise sind natürlich auch Hilfreich für das usbroot von Freetz.
Was für diese Lösung noch interessant ist:
* Autorun.sh an richtiger Stelle? (Du sagst nichst dazu.) Hängt sich die Box generell weg sobald du einen USB-Speicher ansteckst?
* Autorun.sh Feature im Freetz-Image?
* CPMACCFG im Freetz-Image?
* Hast du die Freetz-Busybox konfiguriert, das z.B. brctl einkompiliert ist?

Für mehr reicht die bekannte Glaskugel leider nicht.
n8
 
Zuletzt bearbeitet:
Hallo,
ja das Autorun Feature is im freetz-Image und das Autorun.sh Script liegt im Root des USb-Sticks, also sozusagen ganz oben. Der Stick selber ist auf ext3 formatiert und der entsprechende Treiber ins freetz-Image eingebunden. Bei Busybox habe ich nichts gemacht. Und ja es handelt sich um einen USB 1.1 Host. Was ist CPMACCFG? Und wie boote ich über die serielle Konsole. Ich reiche gerne alles nach und probiere es nochmal mit langem warten. Weiter geht meine Glaskugel leider auch nicht, beschäftige mich noch nicht lange mit freetz. An dieser Stelle jedenfalls erstmal ein großes Lob.
MFG Blck
 
Für serielle Konsole brauchst du einen Adapter. Sprich, man muss die Box öffnen und an 4 definierten Lötstellen ein Kabel anlöten. Es gibt hier im Forum Anleitungen dazu. Und zwar mit Bildern usw. Einfach danach suchen. Idealerweise braucht man einen Pegelwandler, evtl würde es auch ohne gehen. Als Pegelwandler kann man einen COM-Adapter von einem alten Handy benutzen.
Anstatt ext3 würde ich dir für USBRoot-System ext2 empfehlen. Es soll deutlich schneller auf der Box laufen. ext3 macht auf dem Stick wenig Sinn. Wenn du eine Festplatte mit ext3 sowieso hast und sie "mal eben" an die Box anschließt, kann man es noch verstehen, sonst nicht. Dazu gab es hier zahlreiche Diskussionen und Berichte. Du kannst danach suchen, wenn du willst.

MfG
 
Nein CPMACCFG ist nicht mit in freetz, betrifft ja imho nur die LAN Ports und die 3131 hat nur einen. Danke für den Tip mit der seriellem Konsole. Mal schauen, aber ich denke ich werds erst so versuchen. Ext3 also zu langsam, naja Ich werde es wie angekündigt mal mit max 10min Bootzeit versuchen.

MfG Blck
 
so, hab mich nun auch mal ans USB_root_on_demand gewagt (möchte das orginal image sowenig wie möglich ändern) - und gescheitert

fritz.box 7140, geflashed mit automount, autorun, ext3 (brauch ich hier usbroot?)
usbstic 1gb, uStor01 fat16, uStor02 ext3
rootfs link mit LN-s auf mein rootfs am stick verbogen (warum nicht gleich rootfs nennen?!), /rom existiert dort drinnen

hab das gleiche problem wie Blck, sobald das autorun skript losläuft, rebooted die box (endlos)

das iss die einzige Ausgabe, was ich in putty noch sehe :/
Code:
Aug 14 13:44:12 eventadd[642]: EVENT(131): USB-Gert 002, Klasse 'storage', angesteckt
Aug 14 13:44:21 eventadd[731]: EVENT(140): Partition unter uStor01 eingebunden
Aug 14 13:44:24 eventadd[774]: EVENT(140): Partition unter uStor02 eingebunden
**** /var/media/ftp/uStor02/autorun.sh (pid 782) ****

gibts da irgendwie mehr logging?
Kann ich die console in eine datei aufm usb schreiben?
(fehlt beim rootfs builden etwas? oder zuviel? usbroot ja/nein?)
btw: was ist CPMACCFG & brctl - brauch ich das?
 
Sorry, ich benutze das Script schon lange nicht mehr.

Aber das script läuft mit "set -e", d.h. sobald ein fehler auftritt beendet sich das script.

Ihr könntet in den drei abschnitten des Scriptes mal "set -x" in eine Zeile einfügen und das Log dan posten, evtl. kann ich dann mehr sagen.

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