Wiki:FAQ.en

Version 28 (geändert von Notausstieg, vor 7 Jahren) (Diff)

added TOC

Freetz-FAQ

This page answers some Frequently Asked Questions about Freetz. It is still under construction.

Be aware, that there is a more complete FAQ version in german?.

Content

  1. Project name and history
    1. What is Freetz?
    2. Where does the name Freetz come from?
    3. How should I pronounce Freetz?
    4. How did Freetz start?
    5. Why change the name, when DS-Mod has already become well-known?
    6. Why is so much of Freetz and the development in German?
  2. Motivation
    1. Why changing the firmware?
  3. Distribution
    1. Can I get a finished binary of Freetz?
    2. How can I get Freetz?
    3. Which type of boxes and which firmware versions are currently supported?:
  4. Development
    1. When will version xy be released?
    2. Trunk, Branches, Tags?
    3. When feature XY is implemented?
    4. I like Freetz and I want to support the development.
  5. Pre-Configuration (menuconfig)
    1. I am having the 8MB (v1) or 16MB (v2) version of the FB 7270 ?
    2. What are indicators for a FB 7270v3 ?
    3. Which packages should be build into a Freetz image ?
  6. Image Build (make/build)
    1. Meaning of the specific make-targets
    2. Problems during building
  7. Flashing of Compiled Image
  8. Problems after (successful) Flashing
    1. Settings are not available at current security level
    2. What is the default password for freetz?
    3. The info led blinks twice periodically
  9. Configuration
    1. Were is the whole configuration stored on the Fritzbox ?
    2. Configuration not available at the current security level!
    3. How can i disable the password for the Freetz-Website?
    4. How can i change the password for the Freetz-Webseite?
    5. How can i reset the password for the Freetz-Webseite in case i've lost it …
    6. Ho can i change the root-Password?
  10. Problems During Working
    1. /var/flash/freetz too big
    2. No ftp access after Freetz
  11. Removing FREETZ and Other Modifications
  12. Miscellaneous
    1. How can i use an own/other DNS server for all connected PCs and Fritzbox ?
    2. How can i create character devices ?
    3. Which network cabel is neccessary for a recover ?
    4. How old is my FritzBox ?
    5. How much MB contains my FritzBox ?

Project name and history

What is Freetz?

Freetz is a toolbox for developers and experienced users to build a modified firmware based on the original firmware for the DSL/LAN/WLAN/VoIP-Routers AVM Fritz!Box and T-Com Speedport (identical hardware) and to transfer this firmware to the device. There are many extension packets available, as well as the ability to remove unwanted functionality from the original firmware.

Where does the name Freetz come from?

It is a contraction of the word "free" and the name "Fritz", which should mirror the name of the devices manufactured by AVM. With this we want to symbolise that Freetz is free software. Because we want to avoid intellectual property problems with AVM, whose registered trademark "Fritz!" (with excalamation mark) we explicitly acknowledge, we have chosen this deliberately different spelling. The idea for the name came from Alexander Kriegisch (kriegaex), who decided together with Oliver Metz (olistudent) what the project should be called when the version-managed source code repository would be opened to the public. From the (in our opinion daft-sounding) alliteration "Free Fritz" we got "Freetz". ("OpenFritz" was also considered, but we didn't want to ape OpenWrt.) We don't claim that the name is fantastic, but it is short and hopefully easy to remember. :-)

How should I pronounce Freetz?

Like the English word "free" with a German-sounding "tz" on the end, something like "freets".

How did Freetz start?

There are many predecessors to Freetz. A few years ago, Daniel Eiband (danisahne) started the Danisahne-Mod (DS-Mod) based on the previous work and cooperation of other creative people (Erik Andersen, Christian Volkmann, Andreas Bühmann, Enrik Berkhan and others). As with Freetz, this allowed and allows modified firmwares to be created, but only for older firmware-versions with Linux kernel 2.4. Since some routers still have firmwares based on the Linux 2.4 kernel, the version ds-0.2.9-p8 is still the current version for some hardware. For the majority of current hardware, the direkt predecessor of Freetz is however ds26 (latest version ds26-15.2), created by Oliver Metz, which is only suitable for firmware using Linux kernel 2.6. The same applies to Freetz as Freetz is currently nothing other than the current development version of ds26 with a new name. In many files you will therefore still find the name DS-Mod, which will gradually be replaced with the new name Freetz.

Why change the name, when DS-Mod has already become well-known?

There are multiple reasons. For one, Daniel has not been actively involved in the development of ds26 for well over a year. For another, he has already started a new project at SourceForge to develop a new DS-Mod from scratch - which we inoffically call DS-Mod NG (Next Generation) - for which the source code repository is publically available on the project website. We don't wish to take Daniel's project name from him, or to compete with him, but actually hope that he will eventually have more time for his project and that we will be able to combine both versions to have the strengths of both of them in one product. However, it is currently so, that the projects have split significantly; DS-Mod NG has a very clean structure, but is not yet finished whereas Freetz (previously ds26) is already widely used and is gradually being refactored during the process of development. Where DS-Mod was talked about in recent press coverage (e.g. PC-Welt), Freetz alias ds26 was meant.

Why is so much of Freetz and the development in German?

AVM is a German company, and their hardware is mainly sold in the German market, where it is very popular, and generally the German-language (and German telecoms-system) versions of their products are the first to be released. It is therefore not a suprise that the project started in Germany and most of the developers are German. There are some current ideas of how to make internationalisation better, and although most development discussions take place in German, English-language contributions are most welcome (and will usually be answered in English).

Motivation

Why changing the firmware?

It is possible to edit some special files (character devices) under /var/flash and the content still exists after reboot, but this is not true for the rest of the filesystem. The content of these character devices is located in an own flash partition, which is tiny. The most of the filesystem is an read-only SquashFS image which is part of an firmware update. To include (bigger) files permanently into the firmware, they must be put into the SqashFS image, which is implemented in Freetz.

Distribution

Can I get a finished binary of Freetz?

The short answer is no, and this is never likely to be possible. Freetz works by taking the original firmware and applying patches to it. Since the original firmwares contain software which is non-free, as well as some which is free, then we are not able to distribute finished binary versions. Given the number of permutations of modules and hardware then it would be impossible to meet all needs with a limited number of binaries and so is actually better to have users make their own firmwares.

How can I get Freetz?

See the Getting Started page for how to check out the source code and get started with Freetz. Note that this requires Linux (a Live-CD or Virtual-Machine version is ok if you do not want to fully install Linux on your computer). Please make sure that you have basic Linux skills before requesting help as this will make your and our lives easier.

Which type of boxes and which firmware versions are currently supported?:

a.) Freetz-1.1.3
b.) freetz-stable-1.1
c.) Trunk

Development

When will version xy be released?

Generally: It's done when it's done. The developers are working in their off time, new releases are provided if the decided features are completed and critical bugs were fixed.

Anyway, a rough plan for new releases exists: 3-4 months after a stable release we declare a "Feature-Freeze" for the following release. From that time on, only bugs are being fixed. The feature-freeze dates are announced in the roadmap. After the feature-freeze you can expect the final release to be released in about 1 to 1,5 months. Between the stable feature-releases there can be some maintenance-releases provided to support newer firmware versions by AVM or some error-fixes.

Trunk, Branches, Tags?

The trunk ist the current development tree. A branch is a tree which is separated from the trunk to a specific time (e.g. r2759). Currently the following branches are available freetz-stable-1.0 and freetz-stable-1.1. All release version get a tag (e.g. freetz-1.1.3)

Check out a stable version:

svn co http://svn.freetz.org/branches/freetz-stable-1.1 freetz-stable-1.1

Check out a tag:

svn co http://svn.freetz.org/tags/freetz-1.1.3 freetz-1.1.3

Check out the development version (trunk):

svn co http://svn.freetz.org/trunk freetz-trunk

Attention! The development version (trunk) is only recommended to novice users with basic Linux-knowledge which can they help by itself on elementary errors and can give a respective response to the developers. Because the trunk is an ongoing development version, they can be not as stable as the other version like branches and tags.

When feature XY is implemented?

The fastest way is to present an working solution. We notice every reasonable feature request. Due to the developers are designing Freetz in their off time, you have to be patient sometimes.

I like Freetz and I want to support the development.

It is possible to donate money to the development team using the Paypal donation button in the bottom right-hand corner. Further, a specific hardware variation will of course be better supported when the development team have some test hardware. Currently we would very much benefit from some 7270s (who wouldn't?!). There is a thread on the topic of donations at IPPF.

Pre-Configuration (menuconfig)

I am having the 8MB (v1) or 16MB (v2) version of the FB 7270 ?

1.) read out the support file via: http://fritz.box/html/support.html
2.) The file should contain the following entry:

  • 8MB: flashsize 0x00800000
  • 16MB: flashsize 0x01000000

00800000 Hex = 8.388.608 decimal = 8.192 KB = 8 MB
01000000 Hex = 16.777.216 decimal = 16.384 KB = 16 MB

More details are described [here].

What are indicators for a FB 7270v3 ?

  • the firmware version. Firmwares for the 7270v3 are beginning with 74.xx.xx
  • the serial number

Which packages should be build into a Freetz image ?

Suggestive is Dropbear, to have SSH access, as well as dnsmasq as DHCP server replacement.

Image Build (make/build)

Meaning of the specific make-targets

A: The make-targets are influencing the build process while creating the firmware. Most of the following informations are originally from this thread.

1. Clean-Up:

  • make clean
  • make <package>-clean:
    Calls normally the clean-target of the source-Makefile. This is normally deleting all generated files (first and foremost the object-files, libraries and executables).
    A following make command doesn't apply changed patches, but creates only the above-named object-files, libraries and executables from the source-files (compiling).
    E.g. make mc-clean would cleaning the package "Midnight Commander" (mc).
  • make <package>-dirclean:
    Deletes the whole directory of the package. A following make command will extract the files, apply the patches, configure and compile the package.
    Only the last step (compiling) would take place after the make <package>-clean command (see above).
  • make dirclean:
    Makes, as the name says, a "directory-cleanup". At this, the directories /packages, /source, /build, /toolchain/build, toolchain/target (and some other stuff(?)will be deleted, so that a following make command must build everything new. This is recommended, if changes caused by svn up will result in a firmware which is not working as expected. Alternativly you can delete, if you now exactly, the causing package files via make <package>-dirclean individually (see above).
    Please consider, after a make dirclean, the build process to create the firmware is taking more time as before, because everything must build new from scratch.
  • make tools-distclean:
    deletes the tools (busybox, lzma, squashfs, s.o.)
  • make distclean:
    Additionally to make dirclean the download folder and also the tools were deleted.
  • make config-clean-deps:
    If some packages at make menuconfig are disabled, maybe some shared libraries are still selected, but not needed anymore (menuconfig cannot recognize this by itselve). Such libraries can manually be disabled under 'Advanced Options'→'Shared Libraries' - libaries, which are still in use, cannot be disabled. Alternativly you can do this automaticly via make config-clean-deps.
  • make kernel-dirclean:
    deletes the current source-tree of the kernel, to build it completely new from clean sources. (important if something has changed at the kernel patches)
  • make kernel-clean:
    analogue to make <package>-clean
  • make kernel-toolchain-dirclean:
    deletes the kernel compiler
  • make target-toolchain-dirclean:
    deletes the compiler for the uClibc and the binaries (executables)

2. Preparements:

  • make world:
    Prerequisite is a toolchain (see Cross-Compiler / Create Toolchain). If ever problems with non-existing directories occur, it's possible that make world can fix this. But normally this should not be necessary.
  • make kernel-toolchain:
    compiles the kernel and also for the target (Fritzbox)
    Due to historical reasons the label was keeped as kernel-toolchain, although as sayed not only the kernel will be build, but also the packages (see below).
  • make target-toolchain:
    Compiles the packages for the target (Fritzbox).
  • make kernel-menuconfig:
    The configuration of the kernel will be saved after finishing under ./make/linux/Config.<kernel-ref>.
  • make kernel-precompiled:
    Build the kernel and the kernel modules.
  • make menuconfig (Source): To configure Freetz it makes use of conf/mconf, which some or other knows already from the linux kernel configuration. The ncurses variant mconf can be called with the command make menuconfig.
    By the way:
    A help for each item can be accessed directly in menuconfig by pressing "?".
    After entering "/" you can search over all leves for any strings - really practical.

Problems during building

If you encounter problems during the build process, go through this list first:

You must have either have gettext support in your C library, or use the GNU gettext library.

There is a wrong value in config.cache. Delete the file by typing: "rm make/config.cache" or "rm source/target-mipsel_uClibc-0.X.XX/config.cache"

ERROR: The program/library/header xy was not found…

If the build process was interrupted by this message, some neccessary packages for the build system are missing. Please install them and restart the build process.

WARNING: The program/library/header xy was not found…

If the build process was interrupted by this message, maybe some packages providing the needed library are missing. This can be caused by selecting some options or packages in menuconfig. Please install the needed libraries by installing the packages and restart the build process.

No such file `FRITZ.Box_xxxxxxxxx.aa.bb.cc.image'

This happens everytime if AVM releases a new firmware version. Normally only the newest file is available on the AVM FTP-Server. Freetz can only support the actually version at the release date. Due to license restrictions, we cannot povide these images. Possible solutions (priorised by difficulty):

  • for all: at Firmware-Collector-Thread you can ask for an older firmware version (NO beta firmwares). The image must be downloaded and copied to the directory 'dl/fw'.
  • for beginners: Use the stable Branch from the SVN-Repository. If its possible, update to a newer version which supports the latest AVM firmware versions (or wait for an upcoming Freetz release).
  • for novice: Use the developing tree (trunk) from the SVN-Repository. The latest firmware versions are supported here.
  • for experts: At make menuconfig? under Advanced Options ⇒ Override firmware source change the name of the file to download and use.

Please use the last 2 possibilities at your own risk. If it's only a "Bugfix-Release" (like the update from .57 to .59) it should be possible without errors. If major changes were done by AVM at the latest firmware release, use it carefully!!

Please copy the following file into the 'dl/fw' sub-directory manually: fritz_box_aa_bb_cc-ddddd.image

The beta firmwares (Labor-Firmware) cannot be downloaded from the AVM-FTP-Server. Please download them manually from the AVM-Labor-Site. You must agree the license terms to get the file. After finishing download, put all files into the 'dl/fw' directory. Please also consider the headpoint before.

./ln: cannot execute binary file

The actuall directory '.' is within the path (variable PATH). To make a successfully build, the directory must be removed.

Filesystem image too big

The firmware image doesn't fit into the flash memory of the selected box.

  • With some boxes, this can happen if none of the packages are selected, because the basic Freetz components use some space and the AVM images are just under the maximum flash size. In this case, it's neccessary to use one or more Remove-Patches under the 'Patches'-Section to remove non-using components of the original firmware.
  • If a lot packages are selected, reconsider if all packages are really neccessary, or try via external/Downloader/USBRoot?/NFSRoot to externalize some of the components to reduce the image size. More Informations at IPPF and in the WIKI
  • With boxes with an USB-Host (e.g. 7170,7270) you can externalize some packages on an USB-Device (e.g. USB-Stick, USB-HDD). The externalize-process is done at the end of the build process via the external-script. At menuconfig there is an option to do the externalizing. Only parts of packages were externalized on a USB-Device in contrast to USB-Root.
  • If a package was disabled, maybe some shared libraries are still enabled, but not needed anymore. (menuconfig cannot recognize this itselve). Such libraries can manually be disabled under 'Advanced Options'→'Shared Libraries' - currently used libraries cannot be disabled. Another option is to do this via the command 'make config-clean-deps'.

WARNING: Not enough free flash space for answering machine!

The image is small enough to fit on flash memory, but you have not enough free space left for the answering machine, or non space left. The firmare should work in spite of this message, but to ensure a fully functional answering machine or fax service, you should use an FAT-formatted USB-Stick to use this space for the answering machine, fax service and other services.

Background Information: Since a few firmware versions, AVM tries to use the remaining bytes in the Flash to create an jffs2-Partition. In this partition all data for e.g. the answering machine, fax service and so on are stored. On older boxes (e.g. 7170) the jffs2-Partition cannot be created as space howsoever is very limited. Please see this message as an warning. More informations at the IPPF-Thread. In FREETZ available since revision r3049.

Flashing of Compiled Image

Problems after (successful) Flashing

Settings are not available at current security level

There are several security levels. The level can be changed using the following commands:

   echo x > /tmp/flash/security ( after r3318: echo x > /tmp/flash/mod/security)
   modsave

 * with x being one of the following values:
 * 0 : no restrictions
 * 1 : only configuration files without shell commands might be edited
 * 2 : no configuration files might be edited

What is the default password for freetz?

The default password for freetz (both for console- and web-login) is "freetz". Login name for console is "root", and for the web interface is admin. When you first login using telnet or ssh, you have to change your password.

The info led blinks twice periodically

See this thread.

Configuration

Were is the whole configuration stored on the Fritzbox ?

The whole configuration on the Fritzbox can be found under /tmp/flash. This is important if you build a Freetz firmware, because the configuration is not located in the static firmware part of the image. All files located under /tmp/flash were not be edited during a firmware update, so the configuration files will be keeped after a firmware update. Important, always execute "modsave" after making changes on the configuration files under /tmp/flash, to save them in the flash. More information about that see below.

Configuration not available at the current security level!

There are different security levels. Depending on the selected level, not all configuration files are editable.

echo x > /tmp/flash/security (since r3318: echo x > /tmp/flash/mod/security)
modsave
# with x being one of the following values:
# 0 : no restrictions
# 1 : only configuration files without shell commands might be edited
# 2 : no configuration files might be edited

/!\ ATTENTION: Between x and > at least one blank space must be. If not, the file will be empty. (echo will redirect to StdOut. The output would be empty then. Alternativly you kann also write "x">security.

This must be done after installing the new firmware on the Box via Telnet or SSH (not possible over the Rudi-Shell, because they also need security level "0").

How can i disable the password for the Freetz-Website?

Execute the following command on the terminal:

touch /tmp/flash/httpd_conf
chmod +x /tmp/flash/httpd_conf
modsave flash
/etc/init.d/rc.webcfg restart

Background: The script /tmp/flash/httpd_conf will be prefered compared to /etc/default.mod/httpd_conf to create the configuration file. An empty script /tmp/flash/httpd_conf will create an empty configuration file without a password.

How can i change the password for the Freetz-Webseite?

This can be done over the web interface by itselve: http://fritz.box:81/cgi-bin/passwd.cgi

How can i reset the password for the Freetz-Webseite in case i've lost it but still have access via telnet/SSH ?

At first, stop the Freetz-Webif:

/etc/init.d/rc.webcfg stop

Then use vi to open the file mod.cfg and edit the line, which begins with "export MOD_HTTPD_PASSWD" as followed:

vi /var/mod/etc/conf/mod.cfg
export MOD_HTTPD_PASSWD='$1$$zO6d3zi9DefdWLMB.OHaO.'

Now start the Freetz-Webif:

/etc/init.d/rc.webcfg start

Now you can login to the Webif with the password "freetz".

Please consider, that this change is NOT reboot-resistent. Which means, after a reboot, you still have the old unkown password.
Therefore you should change the password of the Box in the freetz-menu under Settings before you reboot your Fritzbox.

Ho can i change the root-Password?

Execute the following commands on the terminal:

passwd
modusers save
modsave flash

After entering 'passwd' you must type in the password. While typing, the password will 'not' be shown. Too simple passwords were not be accepted.

Problems During Working

/var/flash/freetz too big

The default limit, setted by Freetz, for the maximal size of the configuration was exceeded. This limit is a protection,to prevent an unintended full TFFS. The limit can be increased, but you should keep an eye on the current fill level:

modconf set mod MOD_LIMIT=<bytes>
modconf save mod
modsave flash

/!\ As of r5706 the setting MOD_LIMIT is obsolete.

No ftp access after Freetz

This is a problem which occurs especially in Freetz 1.1.x. More details and solution can be found in the howto.

Removing FREETZ and Other Modifications

Miscellaneous

How can i use an own/other DNS server for all connected PCs and Fritzbox ?

AVM doesn't allow the modification of the default DNS servers, which the Box is using, instead of other routers which can change it via the WebUI. (End of 2009).

Possible Solutions:

  • dnsmasq: Installation of an own DNS server on the Fritzbox with the package dnsmasq. This is a general possibility which is working on every box. this requires a modification (freetzing) of the firmware image. With an edited version of /etc/resolv.conf (at the trunk possible over the GUI under "Settings"→"Freetz: resolv.conf") you can add a DNS server: "nameserver 208.67.220.220" (example with the OpenDNS server)
  • without dnsmasq: At some boxes, e.g. 7170(FV 29.04.76) it's possible to edit the central config file of AVM. With the command "nvi /var/flash/ar7.cfg" all entries of "overwrite_dns1 = xxx.xxx.xxx.xxx" and "overwrite_dns2 = xxx.xxx.xxx.xxx" must be edited. It's recommended that only persons with basic knowledge of nvi and telnet respectivly ssh/telnet should do that! Here, the multid from AVM is running as DNS server. At the resolv.conf a loopback entry "nameserver 127.0.0.1" exists. This is allowing Linux standard applications the resolving at the Fritzbox over the multid.
  • Editing the /etc/resolv.conf: If its only about changing the current used DNS of the Fritzbox, editing /etc/resolv.conf like described above at dnsmasq also works. This is only affecting the name resolution of the Box, connected clients are still using the standard DNS.

How can i create character devices ?

Freetz uses also a character device, which can save files enduring with help of a Tiny Flash Filesystems (TFFS) in the Flash, to save the configuration. Prerequisite is a minor number, which is not used by any other character device under /var/flash/ (Freetz uses the minor 0x3c), the major number can be read from /proc/devices:

mknod /var/flash/<dateiname> c <major> <minor>

Because this character device is created at the ramdisk under /var/, this command must be executed everytime during a restart. The content is achieving. /!\ To edit such character devices never use vi! For this case, there is the wrapper skript nvi.

/!\ ATTENTION: The flash partition of the TFFS is very small and not capable to contain files > 10-30 KB (depends on the size of the other files).

The current fill level can be shown like this:


echo 'cleanup' > /proc/tffs


echo 'info' > /proc/tffs


cat /proc/tffs | grep '^fill='

Which network cabel is neccessary for a recover ?

RJ45 standard network cabel, no crossover

How old is my FritzBox ?

The first for digits of the serial is required for this:

Example: W484-xxx-xx-xxx-xxx ⇒ Thursday, 27.11.2008

U = 2006
V = 2007
W = 2008
X = 2009
A = 2010

W451 = calendar week 45 and the first day = Monday
W462 = calendar week 46 and the second day. Day = Tuesday
W473 = calendar week 47 and the third day = Wednesday
W484 = calendar week 48 and the fourth day = Thursday
W495 = calendar week 49 the fifth day = Friday


How much MB contains my FritzBox ?

For the second xxxx-XXX-xxx-xxx currently, the following numbers are occured:

Example: W484-305-xx-xxx-xxx ⇒ Fritzbox with 16MB and 1und1-Branding

293 - HWRev 122 (8MB/7270_V1) - AVM-Branding
294 - HWRev 122 (8MB/7270_V1) - 1und1-Branding
304 - HWRev 139 (16MB/7270_V2) - AVM-Branding
305 - HWRev 139 (16MB/7270_V2) - 1und1-Branding
xxx - HWRev 145 (16MB/7270_V3) - ???-Branding - 7270_V3
307 - HWRev 139 (16MB/7270_V2) - AVME-Branding International Version?
310 - HWRev 139 (16MB/7270_V2) - AVME-Branding A-/CH-Version?