- Mitglied seit
- 10 Mai 2006
- Beiträge
- 15,275
- Punkte für Reaktionen
- 1,751
- Punkte
- 113
Changes:
02.07.15 04:08
Die Aussage zum "losetup" stimmt nicht ... die originale Firmware enthält /sbin/losetup, mit dem das demonstrierte Mounten mit Offset möglich ist.
Original starts here ...
Ich mache hier mal ein Thema zur o.a. Version auf, da die Änderungen "unter der Haube" die meisten sicherlich eher nicht interessieren. Daher will ich hier die festgestellten Unterschiede der neuen Version (das GUI ignoriere ich, das gehört ja eher zur "Lackierung" als "unter die Haube") zusammenfassen, soweit sie für die Modifikation wichtig sein könnten ... daher sind hier auch Punkte aus dem Firmware-Thread noch einmal aufgeführt.
1. Die Datei "filesystem.image" ist - trotz passender Signatur in den ersten vier Byte - kein SquashFS-Image. Es handelt sich um ein ext2-Image mit einem zusätzlichen Dummy-Header von 256 Byte Länge, der eigentlich nur die SquashFS-Signatur simuliert. Um an die Daten zu kommen, ist also dieses Image mit einer Verschiebung von 256 Byte zu mounten (z.B. mit der offset-Option beim losetup, wenn man die "unaligned"-Warnung ignoriert), AVM kopiert das Image mit "dd" und einer Blocksize von 256 unter Auslassen des ersten Blocks, das braucht aber eben - zumindest temporär - praktisch den doppelten Platz. Will man nur an den Inhalt des ext2-FS gelangen und hateine Busybox mit "losetup" ein Image mit "losetup", funktioniert z.B. dieses:
Der Inhalt des Wrappers ist dann folgender:
Das ist - bis auf die fünf "orphaned links" - auch nichts Überraschendes, mit
haben wir jetzt das Wurzeldateisystems für den Wirkbetrieb nach /var/tmp/filesystem_core.squashfs kopiert, auch ohne mit "dd" zu jonglieren.
Leider packt AVM selbst "losetup" nicht in die Busybox und so klappt das eben nur mit einer eigenen Busybox. Es ist eine Version von losetup unter dem Pfad /sbin/losetup auch in einem originalen AVM-Image vorhanden, sogar schon mindestens seit 06.20 - man sollte eben öfter mal in ein "pures AVM-Image" schauen. Zu meiner Entschuldigung kann ich nur anführen, daß AVM das util-linux-ng-Paket, aus dem das "losetup" stammt, eher etwas verschämt in einem File mit schon recht alten Busybox-Quellen (Name ist GPL-busybox.tar.gz, wo ich nun nicht auf Anhieb danach suchen würde) versteckt und die Busybox selbst ja eine eigene Version von "losetup" enthält. Diese kennt dann übrigens die oben verwendete Option "-v" gar nicht.
Wer im tmpfs noch ~22 MB für das Umkopieren des ext2-Images erübrigen kann, nimmt dann eben wie AVM "dd". Der Umweg über den NAND-Flash ist natürlich entsprechend lahm.
2. In der Datei "filesystem_core.squashfs" befindet sich jetzt kein SquashFS3-Image mehr ... wie bei der 6490 hat AVM auch hier den Übergang auf das SquashFS4-Format vollzogen, dabei jedoch eine eigene Spielart dieses Formats kreiert. Eigentlich gibt es bei SquashFS4 nur noch das LE-Format, AVM erfindet aber ein BE-Format neu. Mit dem bereits früher fertiggestellten Patch für SquashFS4 (Freetz-Ticket 2691) kann man das aber wenigstens untersuchen und auch entpacken:
Die bitgenaue Übereinstimmung habe ich noch nicht geprüft, da ich das noch nicht installiert habe ... aber daß es sich ohne Fehlermeldung auspacken ließ (bei LZMA-Kompression), ist für mich schon mal ein gutes Zeichen.
3. Kernel-Version ist jetzt die3.10.173.10.73 (so ein Unsinn, das kommt davon, wenn man auf mehreren Hochzeiten tanzt beim Schreiben) - das dürfte an einigen Stellen zusätzliche Möglichkeiten eröffnen (endlich), aber auch - zumindest am Anfang - einiges an Problemen bereiten, gerade für Freetz-"Kunden".
4. Es gibt einen neuen Symlink /lib32, der aber auf /lib verweist. Ob das jetzt die Schlußfolgerung zuläßt, daß es demnächst bei AVM auch Boxen mit 64-Bit-Architektur geben wird (und lib32 dann für Kompatibilitätslayer benötigt wird) ... da will ich mich noch nicht einmal im Rahmen einer Spekulation festlegen.
5. Die zwei Programme, die bisher die libudev benutzt haben (der udevd selbst und udevadm), sind gegen diese jetzt entweder statisch gelinkt (da die "stripped" sind, sieht man das nicht richtig) oder sie benötigen die libudev nicht mehr. Daher hat AVM diese konsequenterweise auch nicht ins Image aufgenommen, aber die (abstrakten) Links unter /lib existieren weiterhin und zeigen nur ins Leere. Wenn man also zusätzliche Software installieren will, die die libudev.so benötigt, muß man selbst für deren Anwesenheit sorgen.
Das war's erst einmal, ich ergänze das hier Stück für Stück, wenn ich etwas feststelle. Sollte jemand anderes etwas beitragen wollen ... tut Euch bitte keinen Zwang an.
EDIT: 15.07.2015
6. Der SquashFS-Treiber im Kernel kann mit älteren Images nichts mehr anfangen, das Mounten von anderen Formaten (SQFS3 mit GZIP oder auch SQFS3 mit LZMA - was die 7490 auch lesen konnte, selbst wenn sie ihrerseits "nur" GZIP verwendete bei AVM) ist - zumindest nach meinen bisherigen Tests - nicht möglich. Was ich noch nicht probiert habe, ist das Mounten von LE-Images auf der Box.
02.07.15 04:08
Die Aussage zum "losetup" stimmt nicht ... die originale Firmware enthält /sbin/losetup, mit dem das demonstrierte Mounten mit Offset möglich ist.
Original starts here ...
Ich mache hier mal ein Thema zur o.a. Version auf, da die Änderungen "unter der Haube" die meisten sicherlich eher nicht interessieren. Daher will ich hier die festgestellten Unterschiede der neuen Version (das GUI ignoriere ich, das gehört ja eher zur "Lackierung" als "unter die Haube") zusammenfassen, soweit sie für die Modifikation wichtig sein könnten ... daher sind hier auch Punkte aus dem Firmware-Thread noch einmal aufgeführt.
1. Die Datei "filesystem.image" ist - trotz passender Signatur in den ersten vier Byte - kein SquashFS-Image. Es handelt sich um ein ext2-Image mit einem zusätzlichen Dummy-Header von 256 Byte Länge, der eigentlich nur die SquashFS-Signatur simuliert. Um an die Daten zu kommen, ist also dieses Image mit einer Verschiebung von 256 Byte zu mounten (z.B. mit der offset-Option beim losetup, wenn man die "unaligned"-Warnung ignoriert), AVM kopiert das Image mit "dd" und einer Blocksize von 256 unter Auslassen des ersten Blocks, das braucht aber eben - zumindest temporär - praktisch den doppelten Platz. Will man nur an den Inhalt des ext2-FS gelangen und hat
Code:
root@FB7490:/var/media/ftp/images $ losetup -o 256 -r -v /dev/loop1 filesystem.image
losetup: filesystem.image: warning: file does not fit into a 512-byte sector the end of the file will be ignored.
root@FB7490:/var/media/ftp/images $ mount /dev/loop1 /var/0635
root@FB7490:/var/media/ftp/images $ mount | grep loop
/dev/loop0 on / type squashfs (ro,relatime)
/dev/loop1 on /var/0635 type ext2 (ro,relatime)
root@FB7490:/var/media/ftp/images $ ls -l /var/0635/
drwx------ 2 root root 1024 Jul 1 14:13 bin
drwx------ 2 root root 1024 Jul 1 14:13 core
drwx------ 3 root root 2048 Jul 1 14:13 dev
drwx------ 2 root root 1024 Jul 1 14:13 etc
-rw------- 1 root root 19771392 Jul 1 14:13 filesystem_core.squashfs
drwx------ 2 root root 1024 Jul 1 14:13 lib
drwx------ 2 root root 1024 Jul 1 14:13 proc
drwx------ 2 root root 1024 Jul 1 14:13 sbin
drwx------ 2 root root 1024 Jul 1 14:13 tmp
drwx------ 2 root root 1024 Jul 1 14:13 var
Code:
root@FB7490:/var/0635 $ cd /var/0635
root@FB7490:/var/0635 $ find -exec ls -ld '{}' \;
drwxr-xr-x 11 root root 1024 Jul 1 14:13 .
drwx------ 2 root root 1024 Jul 1 14:13 ./var
drwx------ 2 root root 1024 Jul 1 14:13 ./lib
-rwx------ 1 root root 701296 Jul 1 14:12 ./lib/libuClibc-0.9.33.2.so
-rwx------ 1 root root 31680 Jul 1 14:12 ./lib/ld-uClibc-0.9.33.2.so
lrwxrwxrwx 1 root root 21 Jul 1 14:12 ./lib/libc.so.0 -> libuClibc-0.9.33.2.so
lrwxrwxrwx 1 root root 21 Jul 1 14:12 ./lib/ld-uClibc.so.0 -> ld-uClibc-0.9.33.2.so
drwx------ 2 root root 1024 Jul 1 14:13 ./etc
-rw------- 1 root root 412 Jul 1 14:13 ./etc/inittab
lrwxrwxrwx 1 root root 9 Jul 1 14:13 ./etc/mtab -> /tmp/mtab
drwx------ 2 root root 1024 Jul 1 14:13 ./core
-rw------- 1 root root 19771392 Jul 1 14:13 ./filesystem_core.squashfs
drwx------ 3 root root 2048 Jul 1 14:13 ./dev
drwx------ 2 root root 1024 Jul 1 14:13 ./dev/pts
crw-rw-rw- 1 root root 136, 3 Jul 1 14:13 ./dev/pts/3
crw-rw-rw- 1 root root 136, 5 Jul 1 14:13 ./dev/pts/5
crw-rw-rw- 1 root root 136, 4 Jul 1 14:13 ./dev/pts/4
crw-rw-rw- 1 root root 136, 7 Jul 1 14:13 ./dev/pts/7
crw-rw-rw- 1 root root 136, 1 Jul 1 14:13 ./dev/pts/1
crw-rw-rw- 1 root root 136, 6 Jul 1 14:13 ./dev/pts/6
crw-rw-rw- 1 root root 136, 0 Jul 1 14:13 ./dev/pts/0
crw-rw-rw- 1 root root 136, 2 Jul 1 14:13 ./dev/pts/2
lrwxrwxrwx 1 root root 19 Jul 1 14:12 ./dev/kdsld_misc -> /var/dev/kdsld_misc
lrwxrwxrwx 1 root root 9 Jul 1 14:12 ./dev/new_led -> /dev/null
lrwxrwxrwx 1 root root 10 Jul 1 14:12 ./dev/log -> ../tmp/log
crw-rw-rw- 1 root root 90, 26 Jul 1 14:13 ./dev/mtd13
crw-rw-rw- 1 root root 90, 18 Jul 1 14:13 ./dev/mtd9
crw-rw-rw- 1 root root 1, 11 Jul 1 14:13 ./dev/kmsg
crw-rw-rw- 1 root root 90, 8 Jul 1 14:13 ./dev/mtd4
crw-rw-rw- 1 root root 1, 2 Jul 1 14:13 ./dev/kmem
crw-rw-rw- 1 root root 255, 163 Jul 1 14:13 ./dev/avm_net_trace163
crw-rw-rw- 1 root root 90, 16 Jul 1 14:13 ./dev/mtd8
crw-rw-rw- 1 root root 90, 12 Jul 1 14:13 ./dev/mtd6
crw-rw-rw- 1 root root 255, 141 Jul 1 14:13 ./dev/avm_net_trace141
crw-rw-rw- 1 root root 255, 140 Jul 1 14:13 ./dev/avm_net_trace140
crw-rw-rw- 1 root root 1, 3 Jul 1 14:13 ./dev/null
crw-rw-rw- 1 root root 90, 20 Jul 1 14:13 ./dev/mtd10
crw-rw-rw- 1 root root 3, 2 Jul 1 14:13 ./dev/ttyp2
crw-rw-rw- 1 root root 1, 1 Jul 1 14:13 ./dev/mem
crw-rw-rw- 1 root root 90, 30 Jul 1 14:13 ./dev/mtd15
crw-rw-rw- 1 root root 1, 8 Jul 1 14:13 ./dev/random
crw-rw-rw- 1 root root 255, 161 Jul 1 14:13 ./dev/avm_net_trace161
crw-rw-rw- 1 root root 90, 10 Jul 1 14:13 ./dev/mtd5
crw-rw-rw- 1 root root 255, 142 Jul 1 14:13 ./dev/avm_net_trace142
crw-rw-rw- 1 root root 4, 64 Jul 1 14:13 ./dev/ttyS0
crw-rw-rw- 1 root root 255, 132 Jul 1 14:13 ./dev/avm_net_trace132
crw-rw-rw- 1 root root 3, 0 Jul 1 14:13 ./dev/ttyp0
crw-rw-rw- 1 root root 255, 162 Jul 1 14:13 ./dev/avm_net_trace162
crw-rw-rw- 1 root root 255, 160 Jul 1 14:13 ./dev/avm_net_trace160
crw-rw-rw- 1 root root 255, 139 Jul 1 14:13 ./dev/avm_net_trace139
crw-rw-rw- 1 root root 90, 6 Jul 1 14:13 ./dev/mtd3
crw-rw-rw- 1 root root 90, 24 Jul 1 14:13 ./dev/mtd12
crw-rw-rw- 1 root root 90, 14 Jul 1 14:13 ./dev/mtd7
crw-rw-rw- 1 root root 255, 131 Jul 1 14:13 ./dev/avm_net_trace131
crw-rw-rw- 1 root root 5, 0 Jul 1 14:13 ./dev/tty
crw-rw-rw- 1 root root 5, 1 Jul 1 14:13 ./dev/console
crw-rw-rw- 1 root root 5, 2 Jul 1 14:13 ./dev/ptmx
crw-rw-rw- 1 root root 255, 0 Jul 1 14:13 ./dev/avm_net_trace0
crw-rw-rw- 1 root root 90, 4 Jul 1 14:13 ./dev/mtd2
crw-rw-rw- 1 root root 247, 0 Jul 1 14:13 ./dev/led
crw-rw-rw- 1 root root 255, 129 Jul 1 14:13 ./dev/avm_net_trace129
crw-rw-rw- 1 root root 1, 5 Jul 1 14:13 ./dev/zero
crw-rw-rw- 1 root root 255, 130 Jul 1 14:13 ./dev/avm_net_trace130
crw-rw-rw- 1 root root 90, 0 Jul 1 14:13 ./dev/mtd0
crw-rw-rw- 1 root root 255, 134 Jul 1 14:13 ./dev/avm_net_trace134
cr--r--r-- 1 root root 230, 0 Jul 1 14:13 ./dev/tiatm
crw-rw-rw- 1 root root 1, 9 Jul 1 14:13 ./dev/urandom
crw-rw-rw- 1 root root 255, 137 Jul 1 14:13 ./dev/avm_net_trace137
crw-rw-rw- 1 root root 255, 128 Jul 1 14:13 ./dev/avm_net_trace128
crw-rw-rw- 1 root root 3, 1 Jul 1 14:13 ./dev/ttyp1
crw-rw-rw- 1 root root 255, 135 Jul 1 14:13 ./dev/avm_net_trace135
crw-rw-rw- 1 root root 90, 28 Jul 1 14:13 ./dev/mtd14
crw-rw-rw- 1 root root 255, 136 Jul 1 14:13 ./dev/avm_net_trace136
crw-rw-rw- 1 root root 255, 143 Jul 1 14:13 ./dev/avm_net_trace143
crw-rw-rw- 1 root root 90, 2 Jul 1 14:13 ./dev/mtd1
crw-rw-rw- 1 root root 255, 138 Jul 1 14:13 ./dev/avm_net_trace138
crw-rw-rw- 1 root root 255, 133 Jul 1 14:13 ./dev/avm_net_trace133
crw-rw-rw- 1 root root 4, 0 Jul 1 14:13 ./dev/tty0
crw-rw-rw- 1 root root 90, 22 Jul 1 14:13 ./dev/mtd11
crw-rw-rw- 1 root root 4, 65 Jul 1 14:13 ./dev/ttyS1
brw-rw-rw- 1 root root 31, 14 Jul 1 14:13 ./dev/mtdblock14
brw-rw-rw- 1 root root 7, 6 Jul 1 14:13 ./dev/loop6
brw-rw-rw- 1 root root 31, 5 Jul 1 14:13 ./dev/mtdblock5
brw-rw-rw- 1 root root 31, 2 Jul 1 14:13 ./dev/mtdblock2
brw-rw-rw- 1 root root 31, 7 Jul 1 14:13 ./dev/mtdblock7
brw-rw-rw- 1 root root 7, 2 Jul 1 14:13 ./dev/loop2
brw-rw-rw- 1 root root 31, 15 Jul 1 14:13 ./dev/mtdblock15
brw-rw-rw- 1 root root 31, 8 Jul 1 14:13 ./dev/mtdblock8
brw-rw-rw- 1 root root 7, 7 Jul 1 14:13 ./dev/loop7
brw-rw-rw- 1 root root 7, 5 Jul 1 14:13 ./dev/loop5
brw-rw-rw- 1 root root 31, 13 Jul 1 14:13 ./dev/mtdblock13
brw-rw-rw- 1 root root 31, 4 Jul 1 14:13 ./dev/mtdblock4
brw-rw-rw- 1 root root 7, 0 Jul 1 14:13 ./dev/loop0
brw-rw-rw- 1 root root 31, 9 Jul 1 14:13 ./dev/mtdblock9
brw-rw-rw- 1 root root 31, 10 Jul 1 14:13 ./dev/mtdblock10
brw-rw-rw- 1 root root 31, 0 Jul 1 14:13 ./dev/mtdblock0
brw-rw-rw- 1 root root 7, 4 Jul 1 14:13 ./dev/loop4
brw-rw-rw- 1 root root 31, 6 Jul 1 14:13 ./dev/mtdblock6
brw-rw-rw- 1 root root 31, 3 Jul 1 14:13 ./dev/mtdblock3
brw-rw-rw- 1 root root 31, 11 Jul 1 14:13 ./dev/mtdblock11
brw-rw-rw- 1 root root 7, 3 Jul 1 14:13 ./dev/loop3
brw-rw-rw- 1 root root 31, 12 Jul 1 14:13 ./dev/mtdblock12
brw-rw-rw- 1 root root 31, 1 Jul 1 14:13 ./dev/mtdblock1
brw-rw-rw- 1 root root 7, 1 Jul 1 14:13 ./dev/loop1
drwx------ 2 root root 1024 Jul 1 14:13 ./proc
drwx------ 2 root root 1024 Jul 1 14:13 ./sbin
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/ip -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/swapoff -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/pivot_root -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/modprobe -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/init -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/localize -> /sbin/eventadd
lrwxrwxrwx 1 root root 8 Jul 1 14:13 ./sbin/ar7login_frominternet -> ar7login
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/iptunnel -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/switch_root -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/route -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/setconsole -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/ifconfig -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/swapon -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/insmod -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/iplink -> ../bin/busybox
lrwxrwxrwx 1 root root 17 Jul 1 14:13 ./sbin/blkid -> ../usr/sbin/blkid
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/arp -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/rmmod -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/sysctl -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/vconfig -> ../bin/busybox
lrwxrwxrwx 1 root root 4 Jul 1 14:13 ./sbin/dsltest -> dsld
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/ipaddr -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/halt -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/ifdown -> ../bin/busybox
-r-x------ 1 root root 6703 Jul 1 14:13 ./sbin/flash_update
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/iprule -> ../bin/busybox
lrwxrwxrwx 1 root root 18 Jul 1 14:13 ./sbin/showaddrs -> /./sbin/showroutes
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/mkswap -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/lsmod -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/poweroff -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/ifup -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/reboot -> ../bin/busybox
lrwxrwxrwx 1 root root 14 Jul 1 14:13 ./sbin/iproute -> ../bin/busybox
drwx------ 2 root root 1024 Jul 1 14:13 ./bin
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/false -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/ping6 -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/mv -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/ping -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/iostat -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/dd -> busybox
lrwxrwxrwx 1 root root 9 Jul 1 14:13 ./bin/usermand -> usermand2
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/hostname -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/true -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/netstat -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/uname -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/nice -> busybox
-rwx------ 1 root root 452396 Jul 1 14:13 ./bin/busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/echo -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/sleep -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/mknod -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/mkdir -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/chown -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/printenv -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/mpstat -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/tar -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/mount -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/chgrp -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/pidof -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/gunzip -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/stty -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/zcat -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/egrep -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/umount -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/stat -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/login -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/getopt -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/ps -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/cat -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/dnsdomainname -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/cp -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/sed -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/date -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/pwd -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/touch -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/ash -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/sync -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/vi -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/chmod -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/setserial -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/df -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/gzip -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/ls -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/rmdir -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/rm -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/sh -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/kill -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/more -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/ln -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/grep -> busybox
lrwxrwxrwx 1 root root 7 Jul 1 14:13 ./bin/fgrep -> busybox
drwx------ 2 root root 1024 Jul 1 14:13 ./tmp
-rw------- 1 root root 0 Jul 1 14:13 ./tmp/mtab
Code:
root@FB7490:/var/0635 $ cp /var/0635/filesystem_core.squashfs /var/tmp/
root@FB7490:/var/0635 $ ls -l /var/tmp/filesystem_core.squashfs
-rw------- 1 root root 19771392 Jul 1 19:46 /var/tmp/filesystem_core.squashfs
root@FB7490:/var/0635 $ cd /var/media/ftp/images
root@FB7490:/var/media/ftp/images $ umount /var/0635
root@FB7490:/var/media/ftp/images $ losetup -a
/dev/loop0: [7939]:513 (/filesystem_core.squashfs)
Wer im tmpfs noch ~22 MB für das Umkopieren des ext2-Images erübrigen kann, nimmt dann eben wie AVM "dd". Der Umweg über den NAND-Flash ist natürlich entsprechend lahm.
2. In der Datei "filesystem_core.squashfs" befindet sich jetzt kein SquashFS3-Image mehr ... wie bei der 6490 hat AVM auch hier den Übergang auf das SquashFS4-Format vollzogen, dabei jedoch eine eigene Spielart dieses Formats kreiert. Eigentlich gibt es bei SquashFS4 nur noch das LE-Format, AVM erfindet aber ein BE-Format neu. Mit dem bereits früher fertiggestellten Patch für SquashFS4 (Freetz-Ticket 2691) kann man das aber wenigstens untersuchen und auch entpacken:
Code:
:~/FritzBox/FB7490/0635 # ../../FB6490/tools/unsquashfs4_avm -s filesystem_core.squashfs
Reading a big endian SQUASHFS 4 filesystem on filesystem_core.squashfs
Found a valid SQUASHFS 4:0 superblock on filesystem_core.squashfs.
Creation or last append time Mon Aug 17 20:55:11 1970
Filesystem size 19307.53 Kbytes (18.86 Mbytes)
Compression xz
Block size 65536
Filesystem is exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always-use-fragments option is not specified
Xattrs are not stored
Duplicates are removed
Number of fragments 254
Number of inodes 4098
Number of ids 1
:~/FritzBox/FB7490/0635 # ../../FB6490/tools/unsquashfs4_avm -d fs_0635 filesystem_core.squashfs
Reading a big endian SQUASHFS 4 filesystem on filesystem_core.squashfs
Parallel unsquashfs: Using 2 processors
3873 inodes (4425 blocks) to write
[=========================================================\] 4425/4425 100%
created 3257 files
created 225 directories
created 529 symlinks
created 87 devices
created 0 fifos
3. Kernel-Version ist jetzt die
4. Es gibt einen neuen Symlink /lib32, der aber auf /lib verweist. Ob das jetzt die Schlußfolgerung zuläßt, daß es demnächst bei AVM auch Boxen mit 64-Bit-Architektur geben wird (und lib32 dann für Kompatibilitätslayer benötigt wird) ... da will ich mich noch nicht einmal im Rahmen einer Spekulation festlegen.
5. Die zwei Programme, die bisher die libudev benutzt haben (der udevd selbst und udevadm), sind gegen diese jetzt entweder statisch gelinkt (da die "stripped" sind, sieht man das nicht richtig) oder sie benötigen die libudev nicht mehr. Daher hat AVM diese konsequenterweise auch nicht ins Image aufgenommen, aber die (abstrakten) Links unter /lib existieren weiterhin und zeigen nur ins Leere. Wenn man also zusätzliche Software installieren will, die die libudev.so benötigt, muß man selbst für deren Anwesenheit sorgen.
Das war's erst einmal, ich ergänze das hier Stück für Stück, wenn ich etwas feststelle. Sollte jemand anderes etwas beitragen wollen ... tut Euch bitte keinen Zwang an.
EDIT: 15.07.2015
6. Der SquashFS-Treiber im Kernel kann mit älteren Images nichts mehr anfangen, das Mounten von anderen Formaten (SQFS3 mit GZIP oder auch SQFS3 mit LZMA - was die 7490 auch lesen konnte, selbst wenn sie ihrerseits "nur" GZIP verwendete bei AVM) ist - zumindest nach meinen bisherigen Tests - nicht möglich. Was ich noch nicht probiert habe, ist das Mounten von LE-Images auf der Box.
Zuletzt bearbeitet: