Two months ago I switched my internet provider from a DOCSIS-based to a DSL-based one. I thought that the horrendous IP-telephony quality of my previous provider would be much better with a different, more reliable one. I should have known better, but at least this made me think about how can I still improve my experience. And naturally, because this is me, and I never take the easy path (mostly not by choice), it lead me to install OpenWRT on the newest supported FritzBox router I could find.
Naturally, I want to describe this, because the next time I need to do something similar, I would definitely want to avoid a bunch of problems I made this time. And I might be helping you! So here it is.
Finding a router
At first, the plan was to use my current router and scrap the warranty on it, by flashing the OS I wanted, but I quickly found out that not every router is supported, and mine is one of these unlucky ones. So I had to search for another one.
I asked my friends if they have an old FritzBox laying around and what the model is and I quickly found out that they either:
- Don’t have a spare router
- Have an old router that is not supported by OpenWRT.
- Have a supported router, that has no DSL modem.
So I had to cough up some dosh and buy a model which is supported. I was very careful (or so I thought) to select one in the list of supported devices and in a week or so of searching, I found a reasonably priced second-hand FritzBox 7530, that would “definitely do the job”. Later I found out, that OpenWRT still doesn’t support DSL with this model, but that’s a story for another time. It was a model with a DSL modem and it was one of the newest, so I knew there wouldn’t be much of a problem with flash memory size and there would probably be long-term support for it.
Once the router was on my doorstep, I tested if I can use it instead of the one set up by the ISP. You never know what kind of booby-traps has the provider set up for you, like MAC address locking, for example. Everything was fine this time, I only had to enter the credentials I received from them in the mail and the router was set. This meant I can now try and install the new OS and see if it works.
Learning how to install OpenWRT
Meanwhile, I was reading extensively on how to install the OS. Of course, because we are talking about an operating system that supports a plethora of different hardware platforms, there is a separate description of the installation process for each piece of equipment.
Therefore I found the one specific for the particular hardware I bought: AVM FRITZ!Box 7530 and I started reading. Unfortunately, it is not that easy to understand the installation process from just one read of this page. I definitely needed a lot more searching on the internet.
Let’s start answering questions going from top to bottom of the installation guide above.
What is the
Uboot is a bootloader used by OpenWRT on some platforms. Depending on your router you can find different bin files for installing it on the OpenWRT website. Unfortunately, it is really hard to find where exactly. Only if one could have a shortcut on the guide itself…
Where can I find the u-boot-fritz-7350 subdirectory?
TLDR: I found it here: u-boot-fritz7530.
If you want to do it yourself, search for the Downloads page on the OpenWRT homepage. Then look for the subdirectory named ipq40xx in the targets. This is the designation of the SoC used for FritzBox 7530. From then on it’s pretty easy. Well, it’s not too hard.
I just hope they invent the link and put one on the wiki page for the router. Or maybe I should try editing the wiki, it’s a wiki…
What is the eva_ramboot.py and why do I need it? Where do I find it? Where should I put it?
I still have no idea what exactly eva_ramboot.py does. It does contain a line in its implementation saying something about booting ramdisk images on AVM EVA ramdisk images, but it is quite unclear. Sorry.
But I can help with finding it. I looked at the GitHub repository of OpenWRT. There you can find the file under https://github.com/openwrt/openwrt/blob/master/scripts/flashing/eva_ramboot.py
Preparation for installing OpenWRT
Now, the install guide page does explain how to proceed, but I would argue it has some stuff omitted, implied, or completely in the wrong order.
So I actually started by installing a TFTP server and copying the necessary files to its root directory. Then I enabled it. Of course, I tried accessing the files I made available through it, to be sure everything is fine.
Then I tried setting up an IP address when the router is still powered off. This wasn’t really a thing with my system, so instead, I prepared all commands I need to do this as fast as I can. After all, I would need to do it within some seconds after the router starts.
Finally, I prepared all commands in advance, and used
sudo, to enter my password, so there is no time waste on password entry during the installation process.
And now I was ready to start the real fun.
How the installation process goes
Once everything is prepared, the official guide describes the process quite well. You shouldn’t expect a lot of surprises, I guess. That said, here are some things I noticed while installing OpenWRT.
Depending on how you have set up your system, you might find that the eva_ramboot.py execution has to be performed using the form
python eva_ramboot.py instead of
./eva_ramboot.py . That’s exactly what I experienced when I started.
eva_ramboot command is successful, you get this:
>SETENV memsize 0x080000 <200 SETENV command successful >SETENV kernel_args_tmp mtdram1=0x85000000, 0x88000000 <200 SETENV command successful >MEDIA SDRAM <200 Media set to MEDIA_SDRAM
Once you see this message, the network goes down, because the router has loaded the image from the TFTP server and rebooted to run OpenWRT from it. Wait for the network to be back up. Then continue with the installation steps.
After a few commands, the SSH connection is interrupted, because the device is rebooting, in order to continue the installation process. Once the network is available, reconnect to finish the steps in the installation guide.
OpenWRT is now running on your router
Now you can access the running OS either through an SSH link or through its web interface at 192.168.0.1.
Once you navigate there using a browser, an obvious message greets you with a prompt to secure your router by changing its root password. I took the time and set up a password.
And there you have it. A brand new OpenWRT router. There is just one tiny problem: the router is not set up at all. Neither WiFi nor DSL is running out of the box. You must do it yourself. And to be honest, not everything is obvious, so I would need to read the docs to find out how it’s done.
But maybe it is much simpler for you, so go on! Try it out!
Did you like this article? I have a bunch more, describing what I did or tried to do. Here’s one on running WordPress in a Docker container. Have a look!