[Info] Software: fitimg AVM fit-image Manipulator

Zum Nachvollziehen:

1. irgend ein Image wurde gebaut (noch kein fit.Image, aber die Restlichen)
2. aus den Ordner Tools wird der Befehl push_firmware ausgeführt und der Flashvorgang geht los.
3. Für den Fall, dass es eine andere IP der FRITZ!Box sein sollte, kommt noch ein -ip <ip> dazu

Ich frag eben deshalb nach, weil es vermutlich noch kaum einer nutzt und dies würde ich gerne dank eurer hervorragender Arbeit den vielen anderen näher bringen wollen.

Funktioniert eigentlich dieser Befehl mit dem PowerShell, wenn man den Skript auch in Windows zur Verfügung hat? So manch einer hat doch entweder gar kein Linux, oder gar keine Kenntnisse von diesem. Sowie ich etwa.

Den mit EVA-FTP-Client.ps1 funktioniert in Win.

edit:gefunden fesc2000
 
Zuletzt bearbeitet:
Erst mal muss es fertig sein @prisrak1 dann poste ich hier details. Gestern ist ja erst mal das fitimg Programm so weit dass es hoffentlich funktionierende Images bauen kann. Jetzt geht es um den Uploader und da ist auch noch nicht zuende geforscht. Lediglich von der 7530ax weiss ich genau wie AVM es macht, also noch etwas gedunden bitte..
 
meine Frage war an die Vorgehensweise der push_firmware für die anderen Boxen gerichtet.
 
Recovery scan Projekt

Um den Plan besser verwirklichen zu können hab ich einen Recovery-Scanner geschrieben der mein Archiv von ca 1200 Recoveries durchsucht.
Dem Scanner kann ich jetzt merkmale mitteilen auf die ich alle Recoveries untersucht haben will. Die ersten 16 Merkmale sind schon eingebaut.


Interessant ist wie viele Recoveries bereits für fit-images vorbereitet sind, fast die ganzen ARM Modelle.
Es kann also jederzeit passieren (und passierte auch schon) dass ein Modell auf FIT umsteigt.
Zur Zeit sind es 9 potentielle FIT-Modelle, 3 davon haben bereits fit-Images in der Firmware.

@prisrak1 : Eine solche Liste zu machen ist Zeiitverschwendung. Lieber investiere ich die Zeit um eine solche Liste überflüssig zu machen.
Die Lösung mit Argumenten ist experimentell. Freetz sollte an der Stelle selbst immer wissen was zu tun ist, weiss es ja auch beim Bauen,
 
  • Like
Reaktionen: prisrak1
Nein. Weder bei der 7590 noch der 7590 AX.
 
fitimg 0.5 Release

boxmatrix.info/wiki/FIT-Image#Download

Wichtigste Neuerungen sind das automatische Padding und ein Hexdump-Befehl.

fitimg paddet nun Zielimages default auf 64kB (abschaltbar bzw wählbar 0-1024 kB). Das erübrigt ein Padding in push_firmware um die AVM Vorgehensweise aus der Recovery nachzubilden.
Der Hexdump-Befehl ist vor allem ein Werkzeug für mich um zu erwartende neue Modelle in fitimg einzupflegen sowie neue Hunktypen.

boxmatrix.info/wiki/FIT-Image#Hexdump

Wenn fitimg 0,5 in Freetz-ng eingecheckt / gebumped ist ist es auf dem Stand "bis hierhin fertig", so dass ich mich jetzt push_firmware zuwenden kann.
Einen freiwilligen Tester habe ich auch schon gefunden. Am Wochenende krieg ich Captures einer 5530 Recovery, wenn alles klappt...
 
Zuletzt bearbeitet:
@hippie2000

Kannst du ungefähr sagen, bis wann du CA. ein erstes Image für die 7530ax rausgeben kannst?
 
Darf er doch gar nicht? :confused:

Möchtest du wissen, ob das Tool von ihm schon zum erstellen von funktionierenden (modifizierten) FIT-Images verwendet werden kann oder ob bspw. Freetz(-NG) (hier wäre dann vielleicht eher @er13 oder @fda89 anzufragen) bereits verwendbare Images erstellen kann?
 
  • Like
Reaktionen: prisrak1
Verwenden und erstellen kann man, aber die bekommt er selbst nicht darauf. Deshalb ist Abwarten angesagt. Bin sicher, keiner macht es für ihn. Gerade wenn etliche Fehler kommen, gibts Gemecker.
 
Da kann ich auch selbst beantworten :)

In Freetz-ng wird fitimg schon von Anfang an fast live eingebaut.
Meiner Ansicht nach sind seit fitimg 0.5 funktionierende Images möglich, gebaut werden können sie schon lange. Man muss wohl den experience level erhöhen.

Worum ich mich noch nicht kümmern konnte ist push_firmware, für die 7530ax hab ich das Verfahren ja bereits dokumentiert. 5530 Recovery Dumps bekomme ich auch noch.

Ich habe nur noch bis Sonnrag Zeit Baunschnitt zu machen, dann kommt Volgelschutz und ich kann mich wieder um Entwicklung kümmern..
Das ist auch kein riesen Akt mehr da ich die ganze Vorarbeit bereits fertig habe.

Bei Freez-org anfragen wäre ziemlicher Unsinn, Da passiert ja im Moment kaum noch etwas progressives. Fitimg ist ja auch nur ein Stück im Puzzle, daher war es notwendig Hand in Hand mit einem aktiven Entwickleer zu arbeiten. So musste z.B. für die 5530 auch Support eingebaut werdem für skurile cpio.gz Ramdisk images. Wenn das mal in einem Fork alles funktioniert und getestet ist kann ja jeder Fork das nach Belieben (und verfügbarer Zeit) übernehmen Ich hab auch Phasen in denen ich keine Zeit habe und IRL gebraucht werde...
 
Zuletzt bearbeitet:
  • Like
Reaktionen: prisrak1
kann man eine Client-F!B per push_firmware im Netz flashen? Meistens hat man eine weitere Box zum Spielen da und die Hauptbox soll nicht angerührt werden.

Da sind 2 Vorgehensweisen wohl möglich:
Entweder nur "make push-firmware" zum Flashen des letzten gebauten images. Parameter sind nicht möglich!
Oder "tools/push_firmware images/DATEI.image -lfs (0|1|9) (evtl. andere Parameter)"

1. passede image wurde gebaut und ist im Ordner "Images" drin
2. feste ip der flashender Box 192.168.178.5 über Lan mit der Master F!B verbunden
3. ich bin im selben Netz über Wlan verbunden
4. über Linux mit Befehl weiter
Code:
$ tools/push_firmware images/6660_07.26.ger_freetz-ng-18298MOA.image -f -ip 192.168.178.5
wird die passende Box im Netz neu gestartet (Stromtrennung), gesucht und nicht gefunden

Spielt den IP - Angabe überhaupt eine Rolle, denn die Box hat doch beim Starten immer die 192.168.178.1. Liegt es am Lan / Wlananschluß meines Laptops. Bei der Masterbox nur Lananschluß. Das kennt man mit dem Befehl "push_firmware".

Wie ist es mit der 2. 3. usw. Boxen in selben Netzwerk mit flashen per "push_firmware"? Den dafür sind doch die Zusatzparameter gerade die IP-Angabe überhaupt erst da.

Wofür wird das Erzwingen der bevorzugten Verwendung des Befehls ftp oder ncftp zum Hochladen benötigt?

Ist es möglich mit diem Befehl "push_firmware" aus Win 10 überhaupt zu flashen? Z.B mit PowerShell, wenn der Ordner "tools" logischerweise auch da ist, wie mit dem Befehl "EVA-FTP-Client.ps1" ? .. hier geht wohl auch nicht drüber :)

Usage: tools/push_firmware [image] [ -m<s|r|d|u|f> ] [ -f ] [ -ip <ip> ] [ -ram <mb> ] [ -lfs <0|1|9> ] [ -cmd <ftp|ncftp> ] [ -hn ]

[image] When no 'image' file is given, images/latest.image will be tried.
-ms Force mode single-boot (classic devices, like 7270 & 7390)
-mr Force mode ram-boot (newer devices, like 7490 & 7590)
-md Force mode dual-boot (classic docsis devices, like 6490 & 6590)
-mu Force mode uimg-boot (newer docsis devices, like 6591 & 6660)
See https://bitbucket.org/fesc2000/ffritz/src/6591/README-6591.md
-mf Force mode fit-boot (latest devices, like 5530 & 7530 AX)
Experimental and not tested with real hardware!
-f Disable safety prompt.
-ip <ip> Bootloader IP address or hostname, default 192.168.178.1
-map <hex> Only ram-boot and fit-boot mode: Start of mapped memory (PHYS_OFFSET).
-ram <mb> Only ram-boot and fit-boot mode: Usable ram size in MB of your device.
Without this parameter, the default of 128 MB (FIT: 384) will be used.
Some devices like Repeater 3000 need 256 MB to flash.
Use '0' to detect and use all available ram.
-lfs <0|1|9> Not single-boot mode: Set linux_fs_start to 0 or 1 and flash into this.
Without this parameter, the inactive linux_fs_start will be used.
Use '9' for the currently active linux_fs_start.
-cmd <ftp|ncftp> Force the prefered usage of ftp or ncftp command for upload.
-hn Only single-boot mode: Flash to an 'Alice/HanseNet' version of 7570.
 
Zuletzt bearbeitet:
Wer eine FRITZ!Box flashen will, die im Bootloader(!) eine Adresse verwenden soll, deren letzte Stelle NICHT .1 ist, dem nutzt keine Einstellung im FRITZ!OS-GUI irgendetwas. Der einzige (mir bekannte) Weg ist es dann, die startende Box über UDP-Port 5035 (Broadcast-Paket, weil die IP-Adresse ohnehin noch nicht gesetzt ist bzw. die falsche wäre) anzuweisen, eine solche Adresse zu setzen. Eine einmal auf diesem Weg gesetzte Adresse wird auch beibehalten, bis sie durch ein weiteres UDP-Paket geändert würde.

Wie weit es funktioniert, diesen Eintrag auch schon VORHER im Environment vorzunehmen (mit Shell-Zugriff auf das Gerät geht das ja auch) und ob der dann von aktuellen EVA-Versionen ebenso berücksichtigt wird, muß man halt probieren. Ich würde es zwar erwarten, habe DAS aber noch nicht getestet, weil ich ohnehin jedesmal die Box zuvor suchen lasse und die mir genehme Adresse dabei dann auch gleich neu setzen lasse - egal, was da zuvor verwendet wurde.

Das AVM-Recovery-Programm hilft hier nicht weiter, weil es immer die .1 setzt und wenn es eine andere aktive Box mit dieser Adresse gibt (und die zu flashende NICHT gesondert verkabelt werden soll), wird das Ganze zum Glücksspiel, wenn von L3-Adressen in L2-Adressen "übersetzt" werden soll. Abhilfe könnte hier u.U. ein vorübergehend statisch gesetzter ARP-Eintrag schaffen, dann kämen die Pakete wenigstens bei der Box an (wie bei den 6490-Geräten, die bei zerstörtem TFFS-Inhalt mit einer falschen MAC-Adresse auf ARP-Suchen reagieren) ... aber die falsche Ziel-IP in den Paketen wird vermutlich trotzdem zum Problem werden. Das AVM-Recovery-Programm schreibt auch immer ein neues TFFS-Image, in dem diese Adresse wieder auf 192.168.178.1 gesetzt wird (beim nächsten Start) - egal, was die Box dort gerade stehen hat.

Daher bleibt UDP 5035 die m.E. die beste Lösung und dafür bietet push_firmware keine Unterstützung an. Das hatte ich mit @cuma auch mal andiskutiert (den gesamten Ablauf beim "Power-On-Reset"), ich weiß aber nicht mehr, wo das war. Es gibt in push_firmware zwar Code, der erst mal nach der IP-Adresse schaut ... und dann zum Power-On-Reset der Box auffordert. Aber der setzt eben gerade keine abweichende IP-Adresse und so findet er die neu startende Box dann eben auch nicht, wenn sie in EVA mit einer anderen Adresse arbeitet.



Früher gab es noch das ruKernelTool, was auch diesen Mechanismus verwendete ... daher kamen dann die merkwürdigen IP-Adressen 99.88.77.1 in damit behandelten Boxen.

Es gibt in Freetz zwar auch noch ein Perl-Skript recover_eva, aber das ist (sofern ich das richtig sehe) nicht für die Verwendung mit neueren Boxen (mit Start aus dem RAM) geeignet, auch wenn es am Beginn anders aussehen mag (wg. der Option -s) ... zumindest kommt da ein FTP-Dialog bei heraus, wie er von AVM bei diesen Geräten nicht geführt wird.



Daher sind die einzigen (mir bekannten) Angebote, die mit UDP-Paketen arbeiten, tatsächlich eva_discover und EVA-Discovery.ps1, bei bzw. mit denen kann man die FRITZ!Box auf die gewünschte IP-Adresse einstellen und sie daher auch "in voller Verkabelung" flashen, sofern einem nicht die Besonderheit von EVA, daß dabei alle Ethernet-Ports mit "LANx"-Namen in einer Bridge sind, auf die Füße fällt (das Problem läßt sich auch nicht ausschließlich auf/mit der FRITZ!Box lösen).

Wer z.B. eine FRITZ!Box mit ihren Ethernet-Ports an einen VLAN-fähigen Switch klemmt und üblicherweise auf LAN4 ein Gastnetz betreibt (oder die anderen Port als gesonderte Anschlüsse für VPN-Verbindungen betreibt), der kann sich auf diesem Weg schon mal L2-Probleme einhandeln ... dann hilft es u.U. auch nicht mehr, daß man die Box im Bootloader auf eine Adresse gesetzt hat, die nicht auf .1 endet. Aber dann kann es natürlich auch hilfreich sein, wenn man solche Verbindungen auf der anderen Seite (also dem Switch) per Software deaktivieren kann (Port down). Jedoch ist das i.d.R. auch ein anderer "Spezialfall" und wer tatsächlich nur einen IP-Client im LAN flashen will, ohne die Verkabelung zu ändern, kommt mit UDP 5035 gut aus.



Die Fragen, welche IP-Adresse die Box hat und wie man die Firmware auf der Box installiert, sind jedenfalls zwei getrennte ... daher gibt es von mir dafür auch zwei getrennte Skript-Angebote, die der Benutzer nacheinander ausführen muß bzw. soll.

Bei push_firmware startet die Benutzung normalerweise mit einer FRITZ!Box, die noch mit einem kompletten System läuft und über ping erreichbar ist (da kommt dann die Aufforderung, den Stecker zu ziehen), aber durch die fehlende Kontrolle über die verwendete IP-Adresse (die kann man auch nicht ohne weiteres über FTP kontrollieren, wenn die Box (noch) im FRITZ!OS ist) kann es dabei durchaus passieren, daß die Box, wenn sie wieder über die vermutliche IP-Adresse erreichbar ist, schon längst wieder erneut im FRITZ!OS angekommen ist (und den FTP-Server auch noch deutlich später erst startet, obwohl sie schon längst auf ICMP-Pakete geantwortet hat). Und dann hat man die EVA-Phase eben einfach übersprungen ...
 
  • Like
Reaktionen: prisrak1
mit "tar xf 6660.image ./var/firmware-update.uimg" komme ich zu firmware-update.uimg.
So die *.uimg kann entpackt werden, um daraus dann an die 5 Dateien dran zu kommen, die ich benötige.Der Richtige Befel ist z. .B.:

die *.uimg mittels dem uimg tool aus dem freetz-ng entpacken, oder
git clone https://bitbucket.org/fesc2000/uimg-tool
..
weder "make push-firmware", noch "tools/push_firmware images/DATEI.image -lfs (0|1|9) (evtl. andere Parameter)" gehen bei mir nicht. Deshalb versuche ich es per Hand zu flashen.

"./tools/uimg -u -n part ./images/var/firmware-update.uimg "
und manuel flashen. Es ging gut.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: prisrak1
Zuletzt bearbeitet:
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.