Wireless LAN routers such as the AVM Fritz!Box can be particularly useful for integration of hard discs and memory sticks as a Network Attached Storage (NAS).
For MS Windows environments, access to these network drives is achived with the SMB and NMB protocols. However, the Fritz!Box firmware doesn’t support sharing of volumes through UNIX’s NFS protocol.
If you’re a lucky owner of a Fritz!Box, you’re probably not aware that an embedded Linux OS hides underneath AVM’s configuration frontend. With a few steps you can modify your Fritz!Box firmware, replacing it with Freetz to enhance your box’ functions.
Freetz is a firmware-extension (modification) for the AVM Fritz!Box and devices with identical hardware. The original firmware from the manufacturer is extended with new functions and programs which may be selected by the user.
Before you start, be aware that modifying the firmware will void the warranty of your box. Also take some precautions and backup all your settings, download the original Fritz!Box firmware image and rescue tool in case the upgrade fails. It is highly recommended to read the Beginners Tutorial at Freetz.org. To restore the original firmware, you have to directly connect your computer to the box. Thus, make sure to have an ethernet cable to hand!
At the time of writing, the stable 1.2x version of Freetz does not support all Fritz!Box models. However, there’s a development version available supporting almost all of the latest hardware. Although it is possible to compile a Freetz firmware image on a Windows machine using VirtualBox, it is much more convenient to do it on a native Linux OS such as Ubuntu, Debian or SuSE.
Freetz Download and Installation
In order to download the Freetz trunk version, make sure to have SVN installed on your system. Then, change into your downloads or install folder and do:
$ umask 022 (optional) $ svn co http://svn.freetz.org/trunk freetz-trunk
When your download has finished, change to the freetz-trunk folder and type:
$ make menuconfig
This command will start a configuration menu, similar to the config menu of the “vanilla” Linux kernel. You can navigate with the cursor keys through the menu and select/deselect features by hitting the space bar. In case that the menu doesn’t open, you’re probably missing some dev-packages. Watch out for error messages of the compiler and install missing libraries.Freetz itself is no modification but a development environment which is used to to modify the box’s firmware modularly. The list of packages reflects the current users’ needs. Everyone can build his own custom firmware from the existing packages, add his own or omit unneeded ones. This way you can decide to a certain degree which functions your FritzBox will have.
To find out how Freetz works and what the menu looks like after flashing the firmware for the first time, it is recommended to create a minimal configuration and flash that image. Support requests regarding Freetz and it’s packages will only be answered after you have been able to upload a minimal image to your box.
For building a mininal image, you have to set at least the:
- Hardware type
- Firmware language
- Firmware version
After selecting the router type, firmware language and version, exit menuconfig by selecting exit and hitting enter and confirm the question with yes. To start the build process type:
The corresponding image will be created in the subfolder called “images” of your freetz-trunc directory. Some of the Freetz packages require to replace the default AVM Linux kernel, e.g. if you want to support more filesystems, such as nfs. To compile your own Freetz Linux kernel, check the [*] Replace kernel box. Then, configure your Linux kernel with:
$ make kernel-menuconfig
and build it including all modules with:
$ make kernel-precompiled
Your customized kernel will be included in your Freetz image with “make”.