- 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:
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]:
[2]:
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!
Ich habe es endlich geschafft die Firmware des W723v (Typ A) zu kompilieren.
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
- Nun kann es eigentlich schon beginnen:
Code:#erst noch alles bereinigen: make clean #und jetzt den eigentlichen buildvorgang starten: make
- 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.
Ü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
Zuletzt bearbeitet: