W723V Typ A Image erstellen

linuxkasten

Aktives Mitglied
Mitglied seit
2 Feb 2009
Beiträge
891
Punkte für Reaktionen
0
Punkte
16
Hallo zusammen!
Ich habe es endlich geschafft die Firmware des W723v (Typ A) zu kompilieren. Leider nimmt mein Router die Firmware jedoch bisher noch nicht an... das liegt aber hoffentlich nur daran, dass die erzeugte Firmware eine niedrigere Versionsnummer (1.00.095) trägt als die bereits im Router laufende 1.00.096, aber das weiß ich nicht sicher, da der Router keine genauere Fehlermeldung hergibt.
An der niedrigeren Versionsnummer liegt es nicht, denn soeben konnte ich erfolgreich auf 1.00.095 downgraden, allerdings auf die Telekom-Version, nicht die selbst-kompilierte.
Falls es uns gelingt, ein selbst erzeugtes Image auch noch zu flashen, wäre das natürlich großartig, da so dem Modding prinzipiell nichts mehr im Weg steht :)


Hinweis: Ich übernehme keine Haftung für eventuell entstehende Schäden. Die Befolgung meiner Anweisungen erfolgt auf eigene Gefahr.

Hier sind mal die Schritte, die ich durchführen musste, um ein Image zu erzeugen:

  • Als System verwende ich Debian Linux squeeze x86_64, aber auch andere Konfigurationen sollten funktionieren.
  • Quellcode der Firmware hier runterladen.
  • In diesem Archiv ist keine Toolchain enthalten, diese müssen wir uns extra besorgen. Ich habe sie von hier. Gibts bestimmt auch woanders und ohne zusätzlichen Netgear-Kram (nach "uclibc-crosstools-gcc-4.2.3-3" suchen), aber das war mir egal.
    -Das ganze ist ein verschachteltes Archiv (mehrere Archive innendrin), uns interessiert aber nur das darin enthaltene Archiv uclibc-crosstools-gcc-4.2.3-3_LFS.tar.bz2 (das im gleichnamigen Zip-Archiv enthalten ist). Dieses müsst ihr nach /opt/toolchains/ entpacken. Entpackt ihr es woanders, finden die Makefiles keine Toolchain.
  • Nun entpackt ihr den Firmware-Quellcode in ein beliebiges Verzeichnis, am besten euer home-Verzeichnis. Ich nehme mal als Beispiel /home/user/speed. Im Ordner speed sollte nach dem entpacken der Ordner trunk vorhanden sein.
  • Dann müsst ihr vor dem Kompilieren Folgendes tun, um zwei Fehler zu vermeiden, die bei mir aufgetreten sind (ihr könnt es auch erstmal ohne diese Fixes ausprobieren; eventuell geht es bei euch auch so.):
    1. Fehler [1] (s.u.): /bin/sh entfernen/umbenennen und durch einen Link auf /bin/bash ersetzen (alles als root, daher sudo):
    Code:
    sudo mv /bin/sh /bin/sh.old
    sudo ln -s /bin/bash /bin/sh
    2. Fehler [2] (s.u.): Öffnet die Datei trunk/project/hosttool/bcm96368/fakeroot/configure mit einem Texteditor und ersetzt dort in Zeile 10265 das "sysv" durch "tcp".
  • Nun kann es eigentlich schon beginnen:
    Code:
    #erst noch alles bereinigen:
    make clean
    #und jetzt den eigentlichen buildvorgang starten:
    make
    Wenn ihr dann am Schluss irgendwas mit "succesfully created" oder so kriegt, sollte das Image erfolgreich erzeugt worden sein, Glückwunsch :)
  • Die neu erzeugten Images liegen dann in trunk/project/target/fs/bcm96368/W723v/. In trunk/project/image/release/ befinden sich auch Images, doch die sind schon im Archiv enthalten und wurden bei mir während des Buildvorgangs nicht verändert.

Nochmal der Hinweis: Ich übernehme keine Haftung für eventuell entstehende Schäden. Die Befolgung meiner Anweisungen erfolgt auf eigene Gefahr.
Falls ihr das ganze flashen wollt, am besten auch noch ein bisschen nach oben scrollen und schauen, obs Fehlermeldungen gab, nicht dass ihr danach einen teuren Briefbeschwerer vor euch habt.

Wenn ihr irgendwo Probleme habt, gebt die Fehlermeldung in Google ein und versucht sie zu lösen. Ansonsten werde ich auch gerne versuchen hier Hilfestellung zu leisten.


Falls das zurückweisen, wie oben erwähnt, wirklich nur an der veränderten Versionsnummer liegt, könnte man das ja umgehen indem man der selbstgemachten FW eben eine höhere Nummer verpasst. Ich habe aber noch nicht rausgefunden ob es daran liegt und wie man die Nummer ändert (sollte aber eigentlich kein großer Act sein).

Über Mithelfer und Tester würde ich mich freuen :)

Oben, bei den Fixes, bezog ich mich auf folgende Fehler, beide hängen wahrscheinlich mit der im Archiv verwendeten fakeroot-Version zusammen (habe grade die genauen Fehlermeldungen nicht parat, hier aber Ausschnitte):

[1]:
Code:
eval: libtool_args+=: not found
Diese Fehlermeldung tauchte massenhaft und eventuell auch in abgewandelter Form auf.

[2]:
Code:
undefined reference to `msg_get'
selbes für msg_snd und einige andere


EDIT (18.03.2014)
Ich habe damals herausgefunden, was man tun muss, damit der Router das selbst-erzeugte Image annimmt. Man musste am Ende noch eine Checksum einfügen. Jedoch hat das resultierende Image meinen Router zerstört (Es leuchtete nur noch die Power-LED, sonst nichts). Es ist also höchste Vorsicht geboten beim Experimentieren. Eine serielle Schnittstelle ist zu empfehlen. Ich übernehme keine Verantwortung für eventuell entstehende Schäden!


Ich habe das Textdokument gefunden, wo ich aufgeschrieben habe, was noch zu tun ist. Da alles schon etwas her ist, kann es aber sein, dass manche Schritte nicht zu 100% stimmen. Fragen werde ich natürlich gerne versuchen zu beantworten. Dann mal los:

1.
apt-get install fakeroot
rm -rf trunk/project/hosttool/bcm96368/fakeroot*
delete all fakeroot references from:
trunk/project/hosttool/bcm96368/Makefile
delete the fakeroot path and, instead, leave only "fakeroot" in:
trunk/project/target/make/bcm96368/bcm96368.mak

(Ich weiß nicht mehr genau, warum das unter 1. nötig war, aber ich vermute, dass dadurch Kompilierfehler der Host-Tools umgangen wurden.)


2.
add a 'break;' after line 1247 in:
trunk/project/hosttool/bcm96368/squashfs/unsquashfs.c
make hosttools

Damit konnten die mitgelieferten hosttools dazu überredet werden, Firmware-Images zu entpacken. Das brauchen wir später, um fehlende Dateien aus der Original-FW in die neue FW zu kopieren.


3.
use brfwmod and trunk/project/hosttool/bcm96368/squashfs/unsquashfs to unpack the corresponding stock firmware rootfs image
Die Syntax weiß ich gerade nicht mehr, sollte aber von der Hilfe der beiden Tools leicht abzulesen sein.
Die älteren Original-FWs bekommt man von http://hilfe.telekom.de/dlp/eki/dow... A/Firmware_Speedport_W723V_TypA_1.00.095.bin bzw. http://hilfe.telekom.de/dlp/eki/dow... A/Firmware_Speedport_W723V_TypA_1.00.096.bin
Ich glaube mich zu erinnern, dass die selbsterzeugte Firmware die Versionsnummer 1.00.095 trug, also ist am Besten auch die entsprechende Original-FW zu verwenden.

4.
Durch Vergleich der Verzeichnisstruktur der entpackten Original-FW und der selbst erzeugten FW wurde ich auf einige fehlende Dateien letzterer aufmerksam. Diese Dateien werden durch folgende Schritte mit ins selbsterzeugte Image mit aufgenommen.
copy -av squashfs-root/etc/adsl/*.bin to trunk/driver/bcm96368/adsl
add a line in trunk/project/target/fs/bcm96368/W723v/buildFS to copy -av all files from additional_files to $ROOTFS and remove the space after MOD_DIR
copy following files into trunk/project/target/fs/bcm96368/W723v/additional_files
squashfs-root/: etc/: certaa certab certac certad cwmpcert.pem cwmpkey.pem cwmproot.pem root.pem servercert.pem ../lib/dectimage.bin ../etc/html/engineer/*

5.
Danach kann das FW-Image erzeugt werden.

6.
Jetzt fehlt noch die oben erwähnte Checksumme über die gesamte Firmware. Dazu habe ich das im Anhang befindliche Programm crc32sum geschrieben. Das meiste ist jedoch aus dem FW-Quellcode zusammenkopiert. Das Programm muss kompiliert werden (gcc -o crc32sum rsasgdimg-crc.c), dann muss das benötigte Firmware-Image in das selbe Verzeichnis kopiert werden... gemeint ist die Datei, die mit ".bin.rsa.signed" endet (nach dem make-Vorgang irgendwo in der Verzeichnisstruktur zu finden). Dann crc32sum ohne Argumente aufrufen und danach sollte die eben erwähnte Datei um ein paar Bytes gewachsen sein und der Router sollte sie auch akzeptieren.

Man kann die beiden Images noch mit brfwmod und unsquashfs vergleichen. Sicherheitshalber.
Bitte erst flashen, wenn man sich sicher ist, dass alles passt!

ALLES AUF EIGENE VERANTWORTUNG! ICH ÜBERNEHME KEINERLEI HAFTUNG FÜR EVENTUELL ENTSTEHENDE SCHÄDEN!

Nur her mit den Fragen! Auch falls etwas nicht hinhaut! :) Ich hoffe, dass es jemand schafft! Weit sind wir nicht mehr entfernt, denke ich!
 

Anhänge

  • brfwmod1.5.tar
    182.5 KB · Aufrufe: 10
  • crc32sum.tar
    14 KB · Aufrufe: 10
Zuletzt bearbeitet:
Hallo,

ich habe ebenfalls unter Debian-6-amd64-minimal-installation das Image erfolgreich erstellen können. Der zweite Fehler trat bei mir nicht auf. Da ich die minimale Installation verwendet habe, waren noch folgende Pakete erforderlich:

- build-essential
- zlib1g-dev
- libc6-dev-i386
- lib32bz2-dev
- lib32z1-dev
- g++-multilib
- libtool
- bison

Jedoch kann ich das Image ebenfalls nicht im Router einspielen. Soweit ich das mitbekommen habe, wird eine falsche Signatur (project/hosttool/common/bin/sign_rsa) an das Firmware-Image gehängt. Vielleicht hat ja jemand eine Idee oder Lösung?
 
Hallo Arnold, ich habe mich kurz nach meinem Posting noch intensiver mit der Firmware beschäftigt. Unter anderem habe ich die Original-FW mit diversen Tools entpackt und wieder eingepackt und geschaut wo der Unterschied liegt. Der Punkt war, dass bei der Original-FW nochmal Checksummen über das gesamte FW-Paket ans Ende des Images gefügt wurden. Ich konnte dann aus dem gegebenen Quellcode ein Programm zusammenkopieren, dass am Ende eine solche Checksumme einfügt. Nachdem ich dann mehrmals mein selbst erstelltes Image mit fehlenden Dateien aus der Original-FW ergänzt habe und auch der Größenunterschied nur noch minimal war. Habe ich die selbstgebaute FW schließlich ERFOLGREICH flashen können.
Nun, das Flashen war erfolgreich, aber die FW selbst schien dem Speedport absolut nicht zu gefallen: Bricked. Tot. Es leuchtete nur noch die Power-LED, ansonsten konnte man mit dem Ding nichts mehr machen. Ich weiß aber bis heute nicht, was an meiner Firmware falsch ist.

Da das ganze mittlerweile schon etwas her ist, werde ich mal, sobald ich wieder Zugang zu meinem Rechner habe, die nötigen Tools und Anleitungen suchen und gegebenenfalls hier posten (sofern ich nicht aus Wut alles gelöscht habe). Ich rate aber zu extremer Vorsicht und empfehle niemandem die eigens gebaute FW zu flashen. Eine serielle Konsole ist Mindestvoraussetzung.

EDIT: Ich habe den ersten Post entsprechend editiert!
 
Zuletzt bearbeitet:
So, habe nun im ersten Post ergänzt, was noch zu tun ist, um ein flash-, jedoch vorerst leider noch nicht bootbares Image zu erhalten. Ich denke aber, dass wir nicht mehr weit vom Ziel entfernt sind!
 

Statistik des Forums

Themen
246,155
Beiträge
2,247,014
Mitglieder
373,673
Neuestes Mitglied
Dudadudadey
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.