Install OpenWrt on an AVM FRITZ!Box 7530

Hello,

I'm not able to connect with ftp to the router.
I've tried to connect through ftp to the router right after it booted already. Tried it with the 192.168.178.1 ip address and tried out a custom one. I tried to connect over wlan and over lan. All of it doesn't work. I'm always getting a "Network is unreachable" or "Connection refused" error.

I've also tried out the eva_discover script which was mentioned in another thread here. But it always ends up with 0 things found.
(Fritzbox 4040 flash: FTP connection refused)

Another instruction I've tried was this one:

but going for "python eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz7530.bin" ends up with
OSError: [Errno 101] Network is unreachable
and later
ConnectionRefusedError: [Errno 111] Connection refused

Does anybody here know what the issue could be? I'm certain that its not the small time window where the router allows to access the bootloader ftp server.

make sure you have given yourself the IP address 192.168.178.10/24 as a static IP address and no DHCP is active any more.

Then open two windows, in one of them run a continuous ping to 192.168.178.1 and in the other one prepare the command "./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz7530.bin".

I've setted my ip address through the fritzbox panel to 192.168.178.10 and checked the mark that I'm always receiving the same ipv4 address.

I don't know if I made this properly but I've written this into /etc/dhcpcd.conf:
interface enp34s0
static ip_address=192.168.178.10/24
static routers=192.168.178.1

As soon as the first ping answer appeared I executed the python script but still got a connection refused error.

forget about the script eva_ramboot.py for now, just test it with ping.

"through the fritzbox panel" ?? Do you have a second Fritzbox?
Connect your computers with a direct cable to the Fritzbox 7530. And then search the internet how to give your computer a static IP address (you don't need a default geatway).

as you can see in the following example of a Fritzbox 4040 the TTL of the bootloader/ftp server (ttl 250) and the FritzOS (ttl 64) is different, and between the bootloader and the FritzOS several pings are lost (ping 26-53), so I guess you are currently only pinging the FritzOS.

pi@pi1:~ $ ping 192.168.178.1 -> Test with AVM Fritzbox 4040
PING 192.168.178.1 (192.168.178.1) 56(84) bytes of data.
64 bytes from 192.168.178.1: icmp_seq=23 ttl=250 time=0.668 ms -> ftp server
64 bytes from 192.168.178.1: icmp_seq=24 ttl=250 time=0.302 ms -> ftp server
64 bytes from 192.168.178.1: icmp_seq=25 ttl=250 time=0.305 ms -> ftp server
64 bytes from 192.168.178.1: icmp_seq=54 ttl=64 time=1040 ms -> FritzOS
64 bytes from 192.168.178.1: icmp_seq=55 ttl=64 time=0.841 ms
64 bytes from 192.168.178.1: icmp_seq=56 ttl=64 time=0.508 ms

So I gave my computer a static IP address (192.168.178.10)
I'm connected to the Fritzbox via lan directly. Now the first pings have a bigger latency than before but no ttl 250 appeared.

[user@user-pc ~]$ ping 192.168.178.1
PING 192.168.178.1 (192.168.178.1) 56(84) bytes of data.
From 192.168.178.10 icmp_seq=1 Destination Host Unreachable
From 192.168.178.10 icmp_seq=2 Destination Host Unreachable
From 192.168.178.10 icmp_seq=3 Destination Host Unreachable
From 192.168.178.10 icmp_seq=4 Destination Host Unreachable
From 192.168.178.10 icmp_seq=5 Destination Host Unreachable
From 192.168.178.10 icmp_seq=6 Destination Host Unreachable
From 192.168.178.10 icmp_seq=7 Destination Host Unreachable
From 192.168.178.10 icmp_seq=8 Destination Host Unreachable
64 bytes from 192.168.178.1: icmp_seq=12 ttl=64 time=1014 ms
64 bytes from 192.168.178.1: icmp_seq=13 ttl=64 time=0.638 ms
64 bytes from 192.168.178.1: icmp_seq=14 ttl=64 time=0.241 ms
64 bytes from 192.168.178.1: icmp_seq=15 ttl=64 time=0.261 ms
64 bytes from 192.168.178.1: icmp_seq=16 ttl=64 time=0.264 ms
64 bytes from 192.168.178.1: icmp_seq=17 ttl=64 time=0.261 ms
^C
--- 192.168.178.1 ping statistics ---
17 packets transmitted, 6 received, +8 errors, 64.7059% packet loss, time 16176ms
rtt min/avg/max/mdev = 0.241/169.240/1013.777/377.688 ms, pipe 4

full log of a ping with router restart:

[user@user-pc ~]$ ping 192.168.178.1
PING 192.168.178.1 (192.168.178.1) 56(84) bytes of data.
64 bytes from 192.168.178.1: icmp_seq=1 ttl=64 time=0.480 ms
64 bytes from 192.168.178.1: icmp_seq=2 ttl=64 time=0.267 ms
64 bytes from 192.168.178.1: icmp_seq=3 ttl=64 time=0.277 ms
From 192.168.178.10 icmp_seq=4 Destination Host Unreachable
From 192.168.178.10 icmp_seq=5 Destination Host Unreachable
From 192.168.178.10 icmp_seq=6 Destination Host Unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
ping: sendmsg: Network is unreachable
From 192.168.178.10 icmp_seq=15 Destination Host Unreachable
From 192.168.178.10 icmp_seq=16 Destination Host Unreachable
From 192.168.178.10 icmp_seq=17 Destination Host Unreachable
From 192.168.178.10 icmp_seq=18 Destination Host Unreachable
From 192.168.178.10 icmp_seq=22 Destination Host Unreachable
From 192.168.178.10 icmp_seq=23 Destination Host Unreachable
From 192.168.178.10 icmp_seq=24 Destination Host Unreachable
From 192.168.178.10 icmp_seq=25 Destination Host Unreachable
From 192.168.178.10 icmp_seq=26 Destination Host Unreachable
From 192.168.178.10 icmp_seq=27 Destination Host Unreachable
From 192.168.178.10 icmp_seq=31 Destination Host Unreachable
From 192.168.178.10 icmp_seq=32 Destination Host Unreachable
From 192.168.178.10 icmp_seq=33 Destination Host Unreachable
From 192.168.178.10 icmp_seq=34 Destination Host Unreachable
From 192.168.178.10 icmp_seq=38 Destination Host Unreachable
From 192.168.178.10 icmp_seq=41 Destination Host Unreachable
From 192.168.178.10 icmp_seq=42 Destination Host Unreachable
64 bytes from 192.168.178.1: icmp_seq=43 ttl=64 time=2027 ms
64 bytes from 192.168.178.1: icmp_seq=44 ttl=64 time=1014 ms
64 bytes from 192.168.178.1: icmp_seq=45 ttl=64 time=0.742 ms
64 bytes from 192.168.178.1: icmp_seq=46 ttl=64 time=0.254 ms
64 bytes from 192.168.178.1: icmp_seq=47 ttl=64 time=0.300 ms
64 bytes from 192.168.178.1: icmp_seq=48 ttl=64 time=0.226 ms
^C
--- 192.168.178.1 ping statistics ---
48 packets transmitted, 9 received, +20 errors, 81.25% packet loss, time 47605ms
rtt min/avg/max/mdev = 0.226/338.175/2027.031/675.590 ms, pipe 4

The first three pings look good.
During these three pings, the ftp server should be active, so you would need to run the command "./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz7530.bin".

[user@user-pc ~]$ ping 192.168.178.1
PING 192.168.178.1 (192.168.178.1) 56(84) bytes of data.
64 bytes from 192.168.178.1: icmp_seq=1 ttl=64 time=0.480 ms   -> ftp server aktive
64 bytes from 192.168.178.1: icmp_seq=2 ttl=64 time=0.267 ms   -> ftp server aktive
64 bytes from 192.168.178.1: icmp_seq=3 ttl=64 time=0.277 ms   -> ftp server aktive
From 192.168.178.10 icmp_seq=4 Destination Host Unreachable

The first three pings are pings to the already running router (ftp connection refused).
After "icmp_seq=4" is when I turned off the power. The first ping that arrives to the router is the one with a high latency.
I tried the same ping test also on a windows machine with a static ip address and it was also not able to access the ftp server nor able to receive any ping answer with a 250 ttl.

The ping does not necessarily have to be a TTL with 250 (IP stacks are different), but with me I always see 3 pings during which the ftp server is reachable.
For me I could solve the problem of the unreachability by deactivating dhcp on the network interface, after that I could see the 3 pings.

It seems impossible to me to connect to this ftp server. Do you know whether there is any other option for flashing openwrt on this Fritzbox e.g. via the USB port?

Other ideas I read about (but I have not tried them):

  • Put an unmanaged switch between PC and FRITZ!Box.
  • Use the vendor's recovery tool for a different box model. It will enter the bootloader, check the model, and abort. The box stays in the bootloader.

The idea with the unmanaged switch (simply a cheap switch) could help, since the computer's network card is then always active and does not have to "boot up" first.

Hi guys,

I was not successful installing OpenWrt on FB7530. Obviously because it's the first time and I don't know exactly what to do as the guide says.

What did I do?
At first all necessary files downloaded and placed them in the same directory. [see no. 1 of guide]

I connected the FB7530 directly to the computer, assigned myself the IP address 192.168.178.10/24 and connected power to the box. [see no. 2 of guide]

Opened two terminal windows, in one of them run a continuous ping to 192.168.178.1 and in the other one prepared the command "./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz7530.bin". [see no. 3 of guide]

As soon as the first ping answer appeared I executed the python script. There I got the following output:

> SETENV memsize 0x00080000
< 200 SETENV command successful
> SETENV kernel_args_tmp mtdram1=0x85000000,0x88000000
< 200 SETENV command successful
> MEDIA SDRAM
< 200 Media set to MEDIA_SDRAM

This seems to be fine, isn't it?

But now I am unsure how to continue. My thoughts:

Next steps disconnecting LAN, assigning myself the IP address 192.168.1.70/24 and connecting LAN again. As no. 4 of the guide says it is intended to copy the OpenWrt initramfs (!) image to a TFTP server root directory and rename it to FRITZ7530.bin.

Here it is not clear to me if the TFTP server is running on the Box or on the local PC connected to the Box? Who is server and who is client?

You must determine whether your hardware's bootloader has a TFTP client or server.
https://openwrt.org/docs/guide-user/installation/generic.flashing.tftp

Which IP is proper? 192.168.1.70/24 as specified or 192.168.178.70/24?

a) Assuming the TFTP server should run on the local pc I copy FRITZ7530.bin to /var/lib/tftpboot. Then the box get the file itself without user interaction.

b) The other solution is that the TFTP server runs on the box. Starting a TFTP client on the pc with following commands:

> tftp -v 192.168.1.1 -m binary -c put /path/to/openwrt-19.07.2-ipq40xx-generic-avm_fritzbox-7530-initramfs-fit-uImage.itb FRITZ7530.bin

Which way is the right one? IP correct?

[No. 5 of guide] The Box will now boot OpenWrt from RAM. This can take up to two minutes. No user interaction necessary?

After that [no. 6 of guide] copy the U-Boot and the OpenWrt sysupgrade image to the Box using scp. Command is:

scp /path/to/openwrt-19.07.2-ipq40xx-generic-avm_fritzbox-7530-squashfs-sysupgrade.bin root@192.168.1.1:/whatever/path/to/file-on-box

questions: user=root? password required? if yes which one?

Next SSH into the Box and first write the Bootloader to both previous kernel partitions. I assume same user (and password) as scp command.

ssh root@192.168.1.1
root@192.168.1.1:/ $ mtd write /path/to/uboot-fritz7530.bin uboot0
root@192.168.1.1:/ $ mtd write /path/to/uboot-fritz7530.bin uboot1

questions: How do I identify the exact path? And how did the file get there? By eva_ramboot.py [see no. 3 of guide]?

[No. 7 of guide]
Remove the AVM filesystem partitions to make room for our kernel + rootfs + overlayfs. Still running ssh connection from above:

root@192.168.1.1:/ $ ubirmvol /dev/ubi0 --name=avm_filesys_0
root@192.168.1.1:/ $ ubirmvol /dev/ubi0 --name=avm_filesys_1

[No. 8 of guide]
Flash OpenWrt peristently using sysupgrade. Also still in running ssh connection:

root@192.168.1.1:/ $ sysupgrade -n /path/to/openwrt-sysupgrade.bin

Path is the one as specified [No. 5 of guide, using scp command].

And after that? Quit ssh connection an reboot the Box (disconnect power from the Box)? Or will the Box reboot itself?

After boot completed connect to the web interface (http://192.168.1.1). Login as root and set password. Installation of openwrt finished, hopefully.

Please, can someone give me a clue, what to do?

btw: Does the item number/MPN matter (see BoxMatrix)? In my case 20002840.

Last post seems to be too extensive. The main question is:
What commands are necessary putting intramfs image via TFTP on the Box?

mv openwrt-19.07.2-ipq40xx-generic-avm_fritzbox-7530-initramfs-fit-uImage.itb FRITZ7530.bin
> tftp -v 192.168.1.1 -m binary -c put FRITZ7530.bin

Or is it like this?

> tftp -v 192.168.1.1 -m binary -c put /local-path/to/openwrt-19.07.2-ipq40xx-generic-avm_fritzbox-7530-initramfs-fit-uImage.itb FRITZ7530.bin

Ok, as @Menion told me in this post:

The uboot you loaded at step 1 with the python script will poll every 5 seconds the presence of the initramfs file on the tftp root directory and load it. So you just need to start a tftp server and as instruction says the tftp server shall run on 192.168.1.70 interface'

So there is no need for a tftp put.

Next try! Unfortunately again not successful, although I followed the applicable instruction exactly. Steps 1-3 no problem, as step 4 says assign the IP address 192.168.1.70/24. A local TFTP server is running:

service tftpd-hpa status
● tftpd-hpa.service - LSB: HPA's tftp server
   Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
   Active: active (running) since Sun 2020-05-03 12:09:20 CEST; 2h 42min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1848 ExecStart=/etc/init.d/tftpd-hpa start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/tftpd-hpa.service
           └─1892 /usr/sbin/in.tftpd --listen --user tftp --address :69 --secure /var/lib/tftpboot
systemd[1]: Starting LSB: HPA's tftp server...
tftpd-hpa[1848]:  * Starting HPA's tftpd in.tftpd
tftpd-hpa[1848]:    ...done.
systemd[1]: Started LSB: HPA's tftp server.

The intramfs-image(.itb), renamed to FRITZ7530.bin was copied to /var/lib/tftpboot
I have no clue what to do?!? The Box didn't boot OpenWRT from RAM. Therefor no copying of files via SCP possible... :weary:

edit:
I did it! OpenWrt is running!!! @Menion 's advice using Windows was the one I was looking for so long. Software needed: TFTP32, WinSCP and Putty.

Following is not a question, just a note for others if FB7530 is intended to be a (wired, maybe wireless, too) router device.

Because FB7530 has no decided WAN Port like many other supported devices, one of the four LAN Ports must be used as WAN Port. As described in this post I had to set up a special VLAN configuration, otherwise no client got an IP by the OpenWrt router (DHCP server). So each LAN port is provided with its own VLAN - one for WAN and the remaining ones may be summarized in one LAN Interface.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.