Hier mal mein jetziger Stand:
- Mein IAD hat eine beschnittenen Bootlader, mit dem man keine Dateien auslesen kann, an der Stelle geht also schonmal nichts
- Bleibt also nur ein "Eingriff" über die serielle Schnittstelle, damit habe ich dann weitergemacht:
- telnetd ist enthalten, aber mit einem mir unbekannten PW (keine Ahnung, ob das am Vorbesitzer lag oder schon drin war)
Code:
# PW "löschen"
sed -i 's/:x:/::/' /var/tmp/passwd
telnetd
Dann zunächst mal als Sicherheit das komplette Flash gesichert, damit kommt man wieder zurück oder kann im Emulator arbeiten. Da das im FTP nicht geht, das RAM aber zu klein ist, schiebe ich das gleich per nc auf den PC:
Code:
dd if=/dev/mem bs=1m skip=256 count=8 | nc -l -p 1234
und auf einem Linux-PC das ganze empfangen:
Code:
nc <Box-IP> 1234 > flash.dump
Die ersten 64k davon sind der Bootlader, den ich dann verändert habe, um auf eine sonst übliche Flashaufteilung zu kommen:
Code:
dd if=flash.dump of=bootlader.bin bs=1k count=64
(Alternativ kann man natürlich auch /dev/mtdblock3 der Box auslesen und per tftp übertragen, die 64k sind ja kein Problem)
Den Bootlader habe ich mit einem Hexeditor so bearbeitet, dass die "Flashpartition" für das Image den maximal möglichen Platz einnimmt. Ein Blick
hier zeigt die AUfteilung der Werte an:
Ab einem Offset von 0x580 beginnen die Werte der Box, für uns sind zunächst nur die mtd-Größen von Interesse. Die originale Aufteilung war
Code:
mtd0 0x90000000,0x90000000
mtd1 0x903E0000,0x907B0000
mtd2 0x90000000,0x90010000
mtd3 0x907C0000,0x907E0000
mtd4 0x907E0000,0x90800000
mtd5 0x90010000,0x903E0000
mein Ziel ist
Code:
mtd0 0x90000000,0x90000000
mtd1 0x90010000,0x907C0000
mtd2 0x90000000,0x90010000
mtd3 0x907C0000,0x907E0000
mtd4 0x907E0000,0x90800000
Wenn man sich erstmal dran gewöhnt hat, dass da jeweils (wegen "Little Endian") die Werte von rechts nach links zu lesen sind, kommt man mit einem Hex-Editor ganz gut klar.
Den geänderten Bootlader habe ich dann auf der Box wieder nach /dev/mtdblock3 zurückkopiert. Im Bootlader musste man dann "die Reste" von noch mtd5 per
unsetenv mtd5 komplett löschen.
Meine ersten Tesimages waren auf Basis der 7170, wobei ich die Dateien unter /lib/modules ("microvoip-dsl.bin" und "microvoip_isdn_top.bit") mit denen aus der 5130-er FW ersetzt hatte. Dann noch in /etc/init.d die rc.conf und rc.S angepasst:
Diff der /etc/rc.conf (7170 zu 5130)
Code:
--- rc.conf_7170 2009-05-02 14:57:01.000000000 +0200
+++ rc.conf 2009-05-02 16:13:59.000000000 +0200
@@ -5,7 +5,7 @@
##########################################################################################
## Defaults setzen
##########################################################################################
-HWRevision_ATA=0
+HWRevision_ATA=1
HWRevision_BitFileCount=
HWRevision_Reserved1=0
##########################################################################################
@@ -92,26 +92,26 @@
##########################################################################################
export CONFIG_FONBOOK2="y"
export CONFIG_T38="y"
-export CONFIG_WLAN_TXPOWER="y"
+export CONFIG_WLAN_TXPOWER="n"
export CONFIG_WEBSRV="y"
export CONFIG_BASIS="y"
export CONFIG_NTFS="n"
export CONFIG_FTP="n"
export CONFIG_USB="n"
-export CONFIG_AB_COUNT="3"
+export CONFIG_AB_COUNT="2"
export CONFIG_MEDIASRV="n"
-export CONFIG_PRODUKT_NAME="FRITZ!Box Fon WLAN 7170"
+export CONFIG_PRODUKT_NAME="FRITZ!Box Fon 5130"
export CONFIG_WLAN_GREEN="n"
export CONFIG_AUDIO="y"
export CONFIG_CODECS_IN_PCMROUTER="n"
export CONFIG_TR064="y"
-export CONFIG_CAPI_POTS="y"
-export CONFIG_CAPI_TE="y"
+export CONFIG_CAPI_POTS="n"
+export CONFIG_CAPI_TE="n"
export CONFIG_USB_INTERNAL_HUB="n"
export CONFIG_LOGD="n"
export CONFIG_SQLITE_VIDEO="n"
-export CONFIG_PRODUKT="Fritz_Box_7170"
-export CONFIG_MEDIACLI="y"
+export CONFIG_PRODUKT="Fritz_Box_5130"
+export CONFIG_MEDIACLI="n"
export CONFIG_CAPI_MIPS="n"
export CONFIG_FAXSUPPORT="y"
export CONFIG_SAMBA="n"
@@ -133,7 +133,7 @@
export CONFIG_NQOS="y"
export CONFIG_ECO="y"
export CONFIG_XILINX="y"
-export CONFIG_USB_STORAGE="y"
+export CONFIG_USB_STORAGE="n"
export CONFIG_IPTV_4THOME="y"
export CONFIG_MAILD="n"
export CONFIG_VPN_CERTSRV="n"
@@ -155,7 +155,7 @@
export CONFIG_VERSION_MAJOR="10"
export CONFIG_KIDS="y"
export CONFIG_USB_GSM="n"
-export CONFIG_USB_PRINT_SERV="y"
+export CONFIG_USB_PRINT_SERV="n"
export CONFIG_SQLITE="n"
export CONFIG_SWAP="n"
export CONFIG_VLYNQ0="3"
@@ -163,7 +163,7 @@
export CONFIG_TR069="n"
export CONFIG_WLAN_OPENWIFI="n"
export CONFIG_ATA_FULL="n"
-export CONFIG_WLAN_WDS="y"
+export CONFIG_WLAN_WDS="n"
export CONFIG_BLUETOOTH="n"
export CONFIG_VOL_COUNTER="y"
export CONFIG_VLYNQ_PARAMS="vlynq_reset_bit_0"
@@ -195,7 +195,7 @@
export CONFIG_USB_HOST_TI="n"
export CONFIG_TELEKOM_KOFFER="n"
export CONFIG_WLAN_WMM="y"
-export CONFIG_USB_WLAN_AUTH="y"
+export CONFIG_USB_WLAN_AUTH="n"
export CONFIG_CAPI_NT="y"
export CONFIG_LFS="y"
export CONFIG_STOREUSRCFG="y"
@@ -228,12 +228,12 @@
## Box spezifische Konfiguration (aus Produkt.init)
##########################################################################################
export CONFIG_ANNEX="B"
-export CONFIG_INSTALL_TYPE="ar7_8MB_xilinx_4eth_3ab_isdn_nt_te_pots_wlan_usb_host_25762"
+export CONFIG_INSTALL_TYPE="ar7_4MB_xilinx_4eth_2ab_isdn_nt_04317"
export CONFIG_VERSION="04.70"
export CONFIG_SUBVERSION="freetz-devel-3282M"
export CONFIG_VERSION_MAJOR="29"
export CONFIG_ROMSIZE="8"
-export CONFIG_RAMSIZE="32"
+export CONFIG_RAMSIZE="16"
export CONFIG_RELEASE="1"
##########################################################################################
## OEM Ermitteln
Code:
--- rc.S_ori 2009-03-06 09:36:13.000000000 +0100
+++ rc.S 2009-05-02 15:25:15.000000000 +0200
@@ -1271,22 +1292,22 @@
#########################
#### USB-Host Config ####
#########################
-if [ -x /bin/usbcfgctl ] ; then
-if /usr/bin/checkempty /var/flash/usb.cfg ; then
-/bin/usbcfgctl -c
-fi
-fi
+#if [ -x /bin/usbcfgctl ] ; then
+#if /usr/bin/checkempty /var/flash/usb.cfg ; then
+#/bin/usbcfgctl -c
+#fi
+#fi
## Taken from usb.pandu script:
## Store 'clean' environment for later use (skipping IFS)
set | grep -v "IFS="|grep "^[A-Z]"|sed "s/\(.*\)/export \1/" > /var/env.cache
usb_mount() {
mount -t usbfs usbfs /proc/bus/usb
}
-/etc/hotplug/aura start
-if modprobe usbcore; then
-usb_mount
-/etc/init.d/rc.usbhost start
-fi
+#/etc/hotplug/aura start
+#if modprobe usbcore; then
+#usb_mount
+#/etc/init.d/rc.usbhost start
+#fi
###########################
#### USB-Client Config ####
###########################
Damit lief zwar prinzipiell eine 7170-er FW (WLAN und Aura per Freetz rausgepatched), aber sehr unzuverlässig mit vielen Reboots, teils wegen Speichermangel, teils wegen Watchdog, weil die Box so wirkliche seeeeehr zäh war. Das WebIF war z.B. einer der Punkte, der ganz extrem langsam war, deshalb auch viele Watchdogs auf Grund des ctlmgr.
Letztlich habe ich mir jetzt eine eigene 5130-FW auf Basis der 5140 gebaut, die scheinbar die beste Grundlage ist...
Jörg