Support Fritzbox 7490

Way too early for that…

Good point! It makes sense to start with just bringing up the WASP and getting a shell there.

I don't have my device around, so I might need your help if I get anything done in these weeks :slight_smile: Thanks!

Note that I have a small update. AVM has updated the source tarballs for the 7490 and I received some build instructions for the first WASP binary (ath_tgt_fw1.fw). I'll see if I can get them to build. In that case we won't need that initial blob and possibly we could update those sources too.

Hi, i have an old red Fritzbox 7490 with "NAND device: Manufacturer ID: 0x2c, Chip ID: 0xdc (Micron MT29F4G08ABADAWP), 512MiB, page size: 2048, OOB size: 64"

Openwrt is not booting the squashfs-sysupgrade image. I tried with the latest 25.12.5 but also with the snapshot. in Serial console i can see a boot loop i think with ECC errors:

root@OpenWrt:/tmp# sysupgrade -n openwrt-lantiq-xrx200-avm_fritz7490-micron-squashfs-sysupgrade.bin
Thu Jan  1 00:02:45 GMT 1970 upgrade: Commencing upgrade. Closing all shell sessions.
Command failed: Connection failed
Watchdog handover: fd=3
- watchdog -
Watchdog did not previously reset the system
Thu Jan  1 00:02:47 GMT 1970 upgrade: Sending TERM to remaining processes ...
Thu Jan  1 00:02:47 GMT 1970 upgrade: Sending signal TERM to vdsl_cpe_contro (1903)
Thu Jan  1 00:02:52 GMT 1970 upgrade: Sending KILL to remaining processes ...
[  178.310000] stage2 (2551): drop_caches: 3
Thu Jan  1 00:02:58 GMT 1970 upgrade: Switching to ramdisk...
Thu Jan  1 00:03:02 UTC 1970 upgrade: Performing system upgrade...
verifying sysupgrade tar file integrity
Unlocking kernel ...

Writing from <stdin> to kernel ...
[  184.910000] ubi0: attaching mtd1
[  185.070000] ubi0 warning: ubi_io_read: error -77 (ECC error) while reading 64 bytes from PEB 384:0, read only 64 bytes, retry
[  185.080000] ubi0 warning: ubi_io_read: error -77 (ECC error) while reading 64 bytes from PEB 384:0, read only 64 bytes, retry
[  185.090000] ubi0 warning: ubi_io_read: error -77 (ECC error) while reading 64 bytes from PEB 384:0, read only 64 bytes, retry
[  185.100000] ubi0 error: ubi_io_read: error -77 (ECC error) while reading 64 bytes from PEB 384:0, read 64 bytes
[  185.110000] CPU: 1 UID: 0 PID: 3231 Comm: ubiattach Tainted: G           O       6.12.94 #0
[  185.110000] Tainted: [O]=OOT_MODULE
[  185.110000] Hardware name: AVM FRITZ!Box 7490 (Micron NAND)
[  185.110000] Stack : 00000001 00000004 0000000c 809a7c7c 81fb3c64 80031f88 69302000 00000001
[  185.110000]         00000000 00000000 00000000 00000000 00000000 00000001 81fb3c10 818af460
[  185.110000]         00000000 00000000 8095325c 81fb3ab8 ffffefff 00000000 000000e5 000000e7
[  185.110000]         81fb3ac4 000000e7 80a70d80 fffffff9 00000001 00000000 8095325c 00000180
[  185.110000]         00000040 00000000 82922600 8095325c 00000003 fffc385b 00000004 80f90004
[  185.110000]         ...
[  185.110000] Call Trace:
[  185.110000] [<8000bcac>] show_stack+0x28/0xf0
[  185.110000] [<80844b54>] dump_stack_lvl+0x70/0xb0
[  185.110000] [<80538668>] ubi_io_read+0x200/0x3b4
[  185.110000] [<80538acc>] ubi_io_read_ec_hdr+0x60/0x290
[  185.110000] [<8053ea50>] ubi_attach+0x308/0x151c
[  185.110000] [<80531f20>] ubi_attach_mtd_dev+0x484/0xb68
[  185.110000] [<8053362c>] ctrl_cdev_ioctl+0x17c/0x1e8
[  185.110000] [<802365ac>] sys_ioctl+0x328/0xbc4
[  185.110000] [<80017f8c>] syscall_common+0x34/0x58
[  185.110000]
[  185.110000] ubi0 warning: ubi_io_read: error -77 (ECC error) while reading 64 bytes from PEB 384:512, read only 64 bytes, retry
[  185.230000] ubi0 warning: ubi_io_read: error -77 (ECC error) while reading 64 bytes from PEB 384:512, read only 64 bytes, retry
[  185.240000] ubi0 warning: ubi_io_read: error -77 (ECC error) while reading 64 bytes from PEB 384:512, read only 64 bytes, retry
[  185.260000] ubi0 error: ubi_io_read: error -77 (ECC error) while reading 64 bytes from PEB 384:512, read 64 bytes
[  185.270000] CPU: 1 UID: 0 PID: 3231 Comm: ubiattach Tainted: G           O       6.12.94 #0

after the AVM recovery and logging with serial console i can see read block failures i dont know if this may be related or if this is normal:

[    1.690000] Infineon Technologies RCU driver version 1.0.7
[    1.710000] loop: module loaded
[    1.710000] nbd: registered device at major 43
[    1.740000] [HSNAND] Hardware-ECC activated
[    1.740000] ONFI param page 0 valid
[    1.750000] ONFI flash detected
[    1.750000] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xdc (Micron MT29F4G08ABADAWP), 512MiB, page size: 2048, OOB size: 64
[    1.760000] Scanning device for bad blocks
[    1.800000] [ifx_hsnand_command] read block failed (column: 0x800 page: 0x6800)
[    1.810000] [ifx_hsnand_command] read block failed (column: 0x800 page: 0x6840)
[    1.820000] [ifx_hsnand_command] read block failed (column: 0x800 page: 0x6880)
[    1.820000] [ifx_hsnand_command] read block failed (column: 0x800 page: 0x68c0)
[    1.830000] [ifx_hsnand_command] read block failed (column: 0x800 page: 0x6900)

After AVM recovery configuration website is accessible, seems to be working "normal".

Are there still options to install openwrt to that device? thank you

Hi everyone!

I have been following this thread for a while now. Thanks to all the developers and contributors!

Disclaimer: I am neither a developer nor a contributor (not yet at least), but I love Linux and OpenSource.

Therefore I decided to gather all the bits and pieces of information about OpenWRT on my AVM FritzBox 7490 and tried to bring it all together. The outcome is a small github project, that helps me to (semi-)automatically build my custom openwrt-images for my 7490:

It was crafted (with the help of ClaudeCode) especially to serve all my personal needs and requests for my 7490, and it supports both openwrt-24.10 as well as 25.12.4. For me it works really well. Feel free to try it out yourself! I'm open for any kind of feedback or questions.

It looks pretty impressive. It seems that the recent posts in the forum were not picked up though. You can safely include `ath_tgt_fw1.fw` as it's GPL code with sources provided in the latest tarballs from AVM. I also managed to compile it myself (but only with older GCC using the buildroot info that AVM provides, not yet with the more modern OpenWrt toolchain).

This is nice work. I am going to try building this in a couple of hours and see how it works.

One thing that I want to point out (a suggestion) is that normally with OpenWrt we do not need to extract WIFI calibration data etc. for firmware support, however, in this case we have to extract it first, why? Can we not make something that extracts the said files on first-boot, makes the WASP chip wait for the extraction (just for the first boot) and once the said files are available then loads the WASP firmware? I mean this way you only need to put the usb firmware files etc and rest is handled automatically.

Or maybe I am missing something, and we need those files built into the WASP image to make it work?

[EDIT}

I understand that the WASP has a separate system which is run in the RAM, however, won't it be possible to just copy the files from the Lantiq partition to the WASP partition upon boot while loading the WASP chip and use them during runtime. This way we may not need to rebuild the firmware with the calibration files.