Freetz: Unterschied zwischen den Versionen

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(159 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Image:Freetz2.jpg|right|157x117px|Freetz2.jpg]]<br>  
<div style="margin: 10px 10px 0pt 0pt; border: 1px solid rgb(51, 51, 51); padding: 0em 1em 1em; background-color: rgb(27, 28, 45);"><br><center>
[[Image:Sigpic20114 40.gif.jpeg|center|Sigpic20114 40.gif.jpeg]]</center> <center><big><span style="color: rgb(181, 181, 181);">'''''Das Board mit Freiheiten'''''</span></big></center>
<font color="white"></font>  


== Was ist eigentlich Freetz&nbsp;?  ==
----
 
Freetz wurde am 2. Februar 2008 ins Leben gerufen. Freetz, eine Zusammensetzung aus dem englischen free (= frei) und dem deutschen Namen Fritz, ist ein Software-„Baukasten“ für Entwickler und setzt die Entwicklungswerkzeuge des freien Betriebssystems Linux voraus. Mit Freetz können versierte Anwender auf der Original-Firmware des Herstellers aufbauende, funktional modifizierte Firmware-Versionen für die diverse DSL-, LAN-, WLAN- bzw. VoIP-Router der Marken [[Fritzbox]] bzw. [[Speedport]] und die auf ihnen beruhenden Geräte bauen und diese auf das betreffende Gerät transferieren. Es werden eine Vielzahl von Erweiterungspaketen sowie Möglichkeiten, nicht benötigte Funktionalität der Original-Firmware zu entfernen, angeboten. Die Bandbreite der Einflussmöglichkeiten reicht vom Einbinden diverser Linux-Dienste bis zum expliziten Ausblenden störender Trägerbänder im DSL-Spektrum, um Anschlüsse mit hoher Dämpfung zu optimieren.<br> Durch die [[MIPS]] CPU s die in der Fritzbox verbaut wurden , ist es möglich auch EMU s auf der Fritzbox laufen zu lassen , und somit Die Fritzbox als CS Server zu verwenden Achtung: Die Installation einer modifizierten Firmware führt zum Verlust der Gewährleistung des Herstellers!
 
== Wie entstand Freetz?  ==
 
Es gibt einige Vorläufer von Freetz. Daniel Eiband (bekannt als "Danisahne") hat vor einigen Jahren, aufbauend auf Vor- und Zuarbeiten anderer kreativer Köpfe (Erik Andersen, Christian Volkmann, Andreas Bühmann, Enrik Berkhan u.a.), den sog. Danisahne-Mod (kurz: DS-Mod) ins Leben gerufen. So wie heute mit Freetz, konnte und kann man auch damit Firmware-Modifikationen bauen, allerdings noch für ältere Firmware-Versionen mit Linux-Kernel 2.4. Da einige Router noch immer auf Kernel 2.4 basierende Firmwares haben, ist Version ds-0.2.9-p8 des DS-Mod für jene Geräte immer noch aktuell. Für die Mehrzahl aktueller Geräte war der direkte Vorläufer zu Freetz jedoch die von Oliver Metz ins Leben gerufene Version ds26 (zuletzt ds26-15.2), welche ausschließlich für Firmwares mit Kernel 2.6 geeignet ist. Selbiges gilt auch für Freetz, denn Freetz ist Stand heute (20.01.2008) nichts anderes als die aktuelle Entwicklerversion von ds26, nur mit neuem Namen.
 
<br>
 
== Wozu überhaupt ein neuer Name, wo doch DS-Mod inzwischen so bekannt ist?  ==
 
Es gibt mehrere Gründe dafür. Zum einen ist seit gut einem Jahr Daniel nicht mehr aktiv an der Weiterentwicklung von ds26 beteiligt gewesen, zum anderen hat er bei SourceForge schon etwa ebenso lange begonnen, eine von Grund auf neue DS-Mod-Version - nennen wir sie mal inofiziell DS-Mod NG (Next Generation) - zu entwickeln, deren aktueller Stand in einem öffentlich zugänglichen Quellcode-Repository auf der Projekt-Webseite einzusehen ist. Wir wollen Daniel seinen Projektnamen nicht streitig machen und auch nicht in Konkurrenz zu ihm treten, sondern hoffen im Gegenteil, daß er eines Tages wieder mehr Zeit für sein Projekt haben wird und schlußendlich beide wieder in ein gemeinsames münden, um alle Vorteile in einem Produkt zu vereinen. Zurzeit ist es jedoch so, daß beide Projekte sich deutlich auseinander entwickelt haben: DS-Mod NG hat eine sehr saubere Struktur, ist jedoch noch lange nicht fertig, Freetz (bzw. bisher ds26) ist hundertfach im Einsatz und wird eher während der laufenden Entwicklung immer wieder mal Refactoring-Maßnahmen unterworfen. Wo zuletzt in der Presse (z.B. PC-Welt) vom DS-Mod gesprochen wurde, war Freetz alias ds26 gemeint.
 
== Warum Firmware modifizieren?  ==
 
Es können zwar einzelne spezielle Dateien (character devices) unter /var/flash/ bearbeitet werden und sie behalten den Inhalt auch über einen Reboot hinweg, jedoch trifft das nicht auf den Rest des Dateisystems zu. Der Inhalt dieser character devices landet in einer eigenen Flash Partition, die sehr klein ist. Der überwiegende Teil des Dateisystems ist ein read-only Squashfs Image, welches in einem Firmware Update enthalten ist. Um (größere) Dateien dauerhaft in die Firmware einzubinden müssen sie in dieses Squashfs Image gelangen, welches unter anderem in Freetz implementiert ist.
 
== Quellcode  ==
 
Der Quellcode von Freetz kann aus dem Subversion-Repository bezogen werden: Stabile Version
 
Je nach Gerätetyp wird eine der nachstehenden Versionen benötigt:
 
freetz-1.1.2 (Kernel 2.6)
 
svn co http://svn.freetz.org/tags/freetz-1.1.2/
 
Alternativ kann der stable-branch-1.1 genutzt werden. Hier sind evtl. Fehler im Release 1.1.x gefixt.
 
svn co http://svn.freetz.org/branches/freetz-stable-1.1/
 
Eventuell vorhandene Änderungen am stable branch erhält man mit:
 
svn up
 
*Bevor ihr nach einem "svn up" ein neuen Fehler meldet, stellt bitte sicher, dass der Fehler nach einem "make dirclean" noch immer auftritt.
 
ds-0.2.9-p8 (Kernel 2.4)
 
svn co http://svn.freetz.org/tags/ds-0.2.9-p8/ ds-0.2.9-p8
 
*Entwicklerversion
 
Diese Version ist ausschließlich für Profis gedacht, die sich u.U. selbst zu helfen wissen! Sie ist ständigen Änderungen unterworfen und funktioniert möglicherweise nicht oder nur eingeschränkt.
 
svn co http://svn.freetz.org/trunk freetz-trunk
 
Update auf die neueste Entwicklerversion
 
svn up
 
*Bevor ihr nach einem "svn up" ein neuen Fehler meldet, stellt bitte sicher, dass der Fehler nach einem "make dirclean" noch immer auftritt.
 
Man kann auch eine bestimmte Revision auschecken, falls z.B. die aktuelle nicht funktionieren sollte. Dabei einfach $revision durch die gewünschte Revision ersetzen.
 
svn co http://svn.freetz.org/trunk/ freetz-trunk -r $revision


<br>  
<br>  
<div style="margin: 0px 20px 15pt 15pt; padding: 0em 1em 1em; background-color: rgb(48, 49, 64); border: 1px solid rgb(0, 0, 0);">
<br>
{{Navi-Sektion}}
{{Navi-Freetz-Sektion}}


== Aussehen  ==
Momentan gibt es nur ganz wenige Möglichkeiten, das Aussehen von FREETZ- oder auch von AVM-Webinterface zu verändern. Bei AVM hängt es damit zusammen, dass man die Urheberrechte von AVM auf ihre Webseiten nicht verletzen will. Bei FREETZ-WebIF ist es mehr historisch gewachsen: Bei der Vielfalt der vorhandenen Pakete ist es momentan nur schwer denkbar globale Änderungen im WebIF-Design durchzuführen. [http://trac.freetz.org/wiki/style/favicons] [http://trac.freetz.org/wiki/style/mounted]
== Bibliotheken (libraries)  ==
Bibliotheken (im Nachfolgenden "libs" genannt") zu Paketen, die abgewählt wurden, werden nicht automatisch mit abgewählt. Um nach der Abwahl diverser Pakete auch die nicht mehr benötigten libs zu entfernen (damit das Image nachher auch tatsächlich nicht zu groß wird) gibt es das folgende make target:
make config-clean-deps
== Addons  ==


*Apache, php, samba ect. Siehe Freetz Wiki: [http://trac.freetz.org/wiki/packages]  
*[[Freetz Einleitung]][[Image:Freetz1.jpg|right]]
*diverse Emus
*[[Freetz Image erstellen|Freetz Image erstellen]]
*Hier alles zu den [[Freetz Addons]]
*[[Freetz Addons]]
**[[TOOLBOXflex Addon]]
*[[Freetz Pakete]]
*[[FRITZ!Box hinter FRITZ!Box HowTo]]
*[[Anleitung Freetz flashen bis zum CS Server einrichten|Anleitung Freetz flashen bis zum CS Server einrichten]]
*[http://www.dm-computer.de/nil/sis-pm-freetz/pdf/sis-pms-freetz.pdf%7C sis-pms-freetz.pdf]
*[[Hardwareliste|Hardwareliste]]
*[[Freetz Server Beispiele]]
*[[Anleitung CS mit Humax 1000s, Diablo Wifi, Speedport w920v, Smargo+]]
*[[Freetz Tipps|Freetz Tipps]]
*[[Freetz chroot|Freetz chroot]]
*[[CCcam alle Versionen @ Freetz mit Normal- und Chroot-Modus (ab 2.1.2 mit chroot)]]
*[[Chroot Debian FritzBox|chroot Debian FritzBox]]
*[[Freetz & Scripte|Freetz &amp; Scripte]]
*[[External|External]]
*[[Howto freetz: uStor01 Daten per external hochladen|Howto freetz: uStor01 Daten per external hochladen ]]
*[[Cron|Cron-Crontab]]
*[[RuKernelTool]]
*[[FRITZ!Box|Fritzbox]]
*[[Fritz!Box downgrade]]
*[[Speedport|Speedport]]
*[[Speed-to-fritz|Speed-to-fritz]]
*[[Smargo Einstellungen|Smargo Einstellungen]]
*[[Qemu auf Fritzbox]]
*[[OpenVPN und Freetz, wie stricke ich mein eigenes VPN]]
*[[SSH und Freetz, Beispiele für abhörsicheren Zugriff über Inet auf Fritzbox/LAN]]
*[[UPnP AV MediaServer für Freetz-Trunk richtig bauen]]
*[[CS Wartung per Telefon]]
*[[Anleitung CS mit Humax 1000s, Diablo Wifi, Speedport w920v, Smargo+]]
*[[Freetz : .config auslesen]]
*[[Cross-Compile Toolchain FritzBox]]
*[[Fritzbox Portliste]]
*[[Simple fbox recovery tool]]


== Möglichkeiten  ==


Man kann sich die Addons für seine Bedürfnisse anpassen oder für neue Anwendungen auch neue Addons erstellen


== Pakete &amp; CGI-Erweiterungen  ==
Ihr könnt uns mit einer kleinen [http://www.zebradem.com/misc.php?do=donate Spende] unterstützen
 
siehe Freetz Wiki: [http://trac.freetz.org/wiki/packages]  


<br>  
<br>  


== Erstellen von Firmware-Images (make/Build)  ==
Was bedeuten die einzelnen make-targets (z.B. dirclean, distclean, config-clean-deps etc.)?
A: Die make-targets beeinflussen den Build-Prozess bei der FW-Erstellung.
=== 1. Aufräumen:  ===
make clean
     
make &lt;Paket&gt;-clean:
ruft normalerweise das clean-Target des Source-Makefiles auf. Dieses wird typischerweise alle generierten Dateien (vor allem Object-Dateien, Libraries und ausführbare Programme) löschen. Ein nachfolgendes make wendet keine geänderten Patches an, sondern erstellt nur die o.g. Object-Dateien, Libraries und ausführbare Programme neu (compilieren). Z.B. räumt make mc-clean so das Paket "Midnight Commander" (mc) auf.
make &lt;Paket&gt;-dirclean:
löscht das gesamte Verzeichnis des Pakets. Ein nachfolgendes make wird die Quellen neu auspacken, die Patches anwenden, das Paket konfigurieren und dann compilieren. Nur der letzte Schritt (compilieren) wird nach make &lt;Paket&gt;-clean (s.o.) ausgeführt.
make dirclean:
führt, wie der Name schon sagt, ein "Verzeichnis-Aufräumen" durch. Hierbei werden unter anderem die Verzeichnisse /packages, /source, /build, /toolchain/build, toolchain/target (und ein paar andere Sachen(?)) gelöscht, sodass bei erneutem Ausführen von make alles neu gebaut werden muss. Dies ist empfehlenswert, wenn sich Aufgrund eines svn up eine neu gebaute Firmware nicht so Verhält, wie man es erwartet. Alternativ kann man, wenn man weiß, an welchem Packet es liegt, dieses auch via make &lt;Paket&gt;-dirclean einzeln löschen (siehe oben). Zu erwähnen sei noch, dass nach einem make dirclean der Bau der Firmware natürlich länger dauert, da ja alles neu gebaut werden muss.
make tools-distclean:
löscht die Tools (busybox, lzma, squashfs, usw.)
make distclean:
Hier werden zusätzlich zum make dirclean auch noch die Downloads sowie die Tools gelöscht.
make config-clean-deps:
Wenn bei make menuconfig Pakete abgewählt wurden, sind ggfs. noch Shared Libraries ausgewählt, die nicht mehr benötigt werden (dies kann menuconfig nicht automatisch erkennen). Diese kann man dann manuell unter 'Advanced Options'→'Shared Libraries' abwählen - die benötigten lassen sich nicht deaktivieren. Alternativ kann man dies automatisch mittels make config-clean-deps erledigen lassen.
make kernel-dirclean:
löscht den aktuell entpackten Source-Tree des Kernels, um von komplett sauberen Kernel Sourcen zu kompilieren (wichtig wenn was an den Patches geändert wird)
make kernel-clean:
analog make &lt;Paket&gt;-clean
make kernel-toolchain-dirclean:
löscht den Kernel-Compiler
make target-toolchain-dirclean:
löscht den Compiler für die uClibc und die Binaries (ausführbare Programme)
=== 2. Vorbereitungen:  ===
make world:
Vorraussetzung ist eine Toolchain (siehe Cross-Compiler / Toolchain erstellen). Sollten jemals Probleme mit nicht vorhandenen Verzeichnissen auftauchen, so kann ein make world Abhilfe schaffen. In der Regel sollte das aber nicht nötig sein.
make kernel-toolchain:
kompiliert den Kernel und auch für das target (Fritzbox) Aus historischen Gründen wurde die Bezeichnung als kernel-toolchain belassen, obwohl damit wie gesagt nicht nur der Kernel gebaut wird, sondern auch Pakete (s.u.).
make target-toolchain:
kompiliert die Pakete für das target (Fritzbox)
make kernel-menuconfig:
Die Konfiguration des Kernels wird danach wieder nach ./make/linux/Config.&lt;kernel-ref&gt; zurückgespeichert.
make kernel-precompiled:
Damit werden der Kernel und die Kernel Module kompiliert.
=== 3. Image kompilieren:  ===
make menuconfig
Zum Konfigurieren von Freetz kommt das Programm conf/mconf zum Einsatz, welches dem ein oder anderen vielleicht von der Konfiguration des Linux Kernels bekannt ist. Die ncurses Variante mconf kann mit dem Kommando make menuconfig aufgerufen werden.
make
Übrigens: Eine Hilfe zu den einzelnen Punkten kann direkt in menuconfig durch Eingabe von "?" aufgerufen werden. Und nach Eingabe von "/" kann man von allen Ebenen aus nach beliebigen Zeichenfolgen suchen - sehr praktisch.
<br>
== Entwicklung  ==
=== Wann kommt Version xy?  ===
  Grundsätzlich: It's done when it's done. Die Entwickler arbeiten in ihrer Freizeit, und Releases gibt es dann, wenn die beschlossenen Features fertig und release-kritische Bugs behoben sind.
  Es gibt jedoch einen groben Plan für die Releases: 3-4 Monate nach einer stabilen Release gibt es einen Feature Freeze für die nachfolgende Release. Ab diesem Zeitpunkt werden nur noch Bugs behoben. Die Feature-Freeze-Termine werden in der [/roadmap Roadmap] angekündigt. Nach dem Feature Freeze kann grob nach 1 bis 1,5 Monaten mit dem Release gerechnet werden. Zwischen den stabilen Feature-Releases gibt es ggfs. weitere Maintenance-Releases, die nur neue Firmwareversionen von AVM unterstützen und Fehler beheben.
=== Trunk, Branches, Tags?  ===
Der [browser:trunk Trunk] ist der aktuelle Entwicklungszweig. Unter einem Branch versteht man ein Zweig, der zu einer bestimmten Zeit (z.B. r2759) aus dem trunk abgetrennt wurde. Hier gibt es derzeit die Branches [browser:branches/freetz-stable-1.0 freetz-stable-1.0] und [browser:branches/freetz-stable-1.1 freetz-stable-1.1]. Alle Releaseversionen bekommen einen Tag (z.B. [browser:tags/freetz-1.1.2 freetz-1.1.2])
<br>
=== Beim Erstellen tritt ein Fehler auf, was nun?  ===
  Zunächst einmal die folgende Liste der häufigen Fehler durchgehen:
==== You must have either have gettext support in your C library, or use the GNU gettext library.  ====
  Hier ist wohl ein falscher Wert im Cache gelandet, den man löschen muss: "rm make/config.cache" oder "rm source/target-mipsel_uClibc-''0.X.XX''/config.cache" jenachdem, wo die Datei zu finden ist. Und danach wird der FW-Bau wieder mit "make" gestartet.
==== ERROR: The program/library/header xy was not found...  ====
  Wenn mit die ersten Meldungen so aussehen, fehlen für die Erstellung von Freetz unbedingt notwendige Pakete im Build-System und müssen zunächst installiert werden.
==== WARNING: The program/library/header xy was not found...  ====
  Wenn die Erstellung mit einem Fehler abbricht, kann diese Warnung zu Beginn des Vorgangs darauf hindeuten, daß für bestimmte ausgewählte Optionen notwendige Pakete im Build-System fehlen.
==== No such file `FRITZ.Box_xxxxxxxxx.aa.bb.cc.image'  ====
  Das passiert regelmäßig immer dann, wenn AVM eine neue Firmware-Version herausbringt - da auf dem AVM FTP Server nie mehr als eine (i.d.R. die aktuelle) Firmware liegt. Freetz unterstützt natürlich nur die Versionen, die zum Zeitpunkt des Release aktuell waren. Aus Lizenzrechtlichen Gründen können wir diese Images nicht selbst zur Verfügung stellen. Lösungsmöglichkeiten (priorisiert nach Schwerigkeitsgrad):
* Für Alle: Im [http://www.ip-phone-forum.de/showthread.php?t=119856 Suche-Firmware-Sammelthread] kann man nach älteren Firmware-Versionen fragen. Das Firmware-Image muss dann in den Ordner 'dl/fw' kopiert werden.
* Für Anfänger: Die `stable` Branch aus dem SVN-Repository verwenden. Falls möglich, auf eine neuere Freetz-Version aktualisieren, die die aktuelle AVM-Firmware-Version unterstützt (oder warten, bis eine neue Freetz-Release erscheint).
* Für Fortgeschrittene: Den Entwickler-Zweig (`trunk`) aus dem SVN-Repository verwenden. Hier werden meist alle aktuellen Firmware-Versionen unterstützt.
* Für Fortgeschrittene: In [wiki:help/howtos/common/install/menuconfig make menuconfig] unter ''Advanced Options =&gt; Override firmware source'' den Namen der herunterzuladenen Image Datei anpassen
Zum letzten Punkt sei gesagt, dass er mit Vorsicht zu genießen ist. Bei einem reinen "Bugfix-Release" (wie dem Update von .57 auf .59) sollte das problemlos möglich sein. Wurden jedoch an der Firmware seitens AVM größere Veränderungen durchgeführt, kann das ins Auge gehen...
==== Please copy the following file into the 'dl/fw' sub-directory manually: fritz_box_aa_bb_cc-ddddd.image  ====
  Die Labor-Firmwares können nicht direkt vom AVM-FTP-Server heruntergeladen werden. Sie müssen manuell von der [http://www.avm.de/Labor AVM-Labor-Seite] geladen werden, wobei die Nutzungsbedingungen zu bestätigen sind. Die Dateien müssen dann entpackt und das darin enthaltene Image in den Ordner 'dl/fw' kopiert werden. Hierbei gilt auch das zur vorigen Frage Gesagte.
==== ./ln: cannot execute binary file  ====
  Das aktuelle Verzeichnis '.' ist im Pfad (Variable PATH). Zum erfolgreichen Erstellen muss es entfernt werden.
==== Filesystem image too big  ====
  Das Firmware-Image passt nicht in den Flash-Speicher der ausgewählten Box.
* Bei manchen Boxen kann dies bereits auftreten, wenn überhaupt keine zusätzlichen Pakete ausgewählt sind, da die grundlegende Freetz-Infrastruktur bereits einigen Platz belegt und die AVM-Images schon knapp unter dem Maximalwert liegen. In diesem Fall ist es notwendig, unter 'Patches' einen oder mehrere der Remove-Patches auszuwählen, um nicht benötigte Komponenten der Original-Firmware zu entfernen.
* Wenn viele Pakete ausgewäht sind, sollte man sich beschränken oder versuchen per [http://trac.freetz.org/wiki/help/howtos/common/external external]/[http://www.ip-phone-forum.de/showthread.php?t=134934 Downloader]/[http://trac.freetz.org/wiki/packages/usb-root USBRoot]/[http://trac.freetz.org/wiki/packages/nfs NFSRoot] einige Komponenten aus dem Image auszulagern. Näheres dazu im [http://www.ip-phone-forum.de/showthread.php?t=136974 IPPF] und in [http://wiki.ip-phone-forum.de/software:ds-mod:development:platz_sparen WIKI]
* Bei den Boxen mit einem USB-Host (z.B. 7170,7270) kann man auch einzelne Pakete auf das externe USB-Medium (z.B. USB-Stick, USB-Festplatte) auslagern. Die Auslagerung wird nach dem make-Prozess automatisch von einem Skript namens [http://trac.freetz.org/wiki/help/howtos/common/external external] ausgeführt. Im menuconfig finden sich die Optionen für die Auslagerung mittels external. Im Unterschied zum USB-Root wird hier nur ein Teil der Pakete ausgelagert.
* Wenn Pakete abgewählt wurden, sind ggfs. noch Shared Libraries ausgewählt, die nicht mehr benötigt werden (dies kann menuconfig nicht automatisch erkennen). Diese kann man dann manuell unter 'Advanced Options'-&gt;'Shared Libraries' abwählen - die auf benötigten lassen sich nicht deaktivieren. Alternativ kann man dies automatisch mittels 'make config-clean-deps' erledigen lassen.
==== WARNING: Not enough free flash space for answering machine!  ====
  Im Gegensatz zur Meldung "Filesystem image too big" passt das Firmware-Image in den Flash-Speicher der ausgewählten Box, der restliche Platz im Flash könnte aber für die Aufzeichnung von Nachrichten auf dem von AVM in der FW integrierten Anrufbeantworter zu klein sein oder komplett fehlen. Die Firmware sollte trotz dieser Warnung funktionieren, für Anrufbeantworter-Daten, FAX-Nachrichten und Sonstiges empfiehlt sich einen Stick mit einer FAT-Partition anzulegen und entsprechend in AVM-WebIF angeben, dass der Anrufbeantworter (oder andere Dienste) den externen Speicher nutzen sollten.
  Hintergrundinformationen: Seit einigen Firmware-Versionen versucht AVM die restlichen Bytes im Flash dafür zu nutzen, eine jffs2-Partition anzulegen. Auf dieser Partition werden z.B. Anrufbeantworter-Nachrichten (TAM) und evtl. noch Faxe und Ähnliches abgespeichert. Bei älteren Boxen (z.B. 7170) kommt es fast immer dazu, dass im Image kaum mehr Platz frei ist, sodass die jffs2-Partition nicht angelegt wird und die Meldung nur als Warnhinweis angesehen werden sollte. Mehr dazu im [http://www.ip-phone-forum.de/showthread.php?t=186208 IPPF-Thread]. In FREETZ seit Revision [http://trac.freetz.org/changeset/3049 3049].
<br>
== Flashen des Firmware-Images  ==
=== Wie installiere ich das Freetz-Image?  ===
'''Wenn noch eine Original-AVM-Firmware installiert ist, ...'''
gibt es zwei Möglichkeiten:
*die normale Installation über das AVM-Webinterface (wie gewohnt beim Update)
*das Script tools/[[Push firmware.sh]] (befindet sich im Freetz Build-Verzeichnis - also z.B. unter "freetz-1.1.2"). Hiermit lässt sich auch bei den Speedports Freetz installieren, was über das Webinterface nicht so einfach möglich ist
'''Wenn bereits Freetz auf der Box ist, ...'''
*ist die bequemste Variante das Firmware-Update über die Freetz-Webinterface-Startseite. Dabei können bei Bedarf auch die AVM-Dienste weiterlaufen (Internetverbindung bleibt somit bestehen) oder können Angehalten werden, um den zusätzlichen Platz im RAM zu gewinnen. Das Gute an dieser Methode ist, dass man nach dem Upload des Images einen ausführlichen Bericht zu sehen bekommt und anschließend den Zeitpunkt des Reboots (und somit des eigentlichen Updates) manuell festlegen kann.
'''Flashen eines freetz-images + einer .[[External]]:'''
Grundsätzlich sei gesagt, daß für diese Funktion freetz bereits auf der Box laufen muß.
Sowohl die .image-datei als auch die .external-Datei, soweit diese erstellt wurde, lassen sich mit einem einzigen Rebootvorgang auf die Box laden. Dabei ist folgendes Vorgehen zu empfehlen:
*Die .external-Datei hochladen. Es wird automatisch versucht alle Programme die schon ausgelagert wurden zu beenden. Sollte ein Fehler auftreten, bitte vorher händisch alle Programme beenden. Hintergrund: Beim Upload-Vorgang wird der Inhalt der alten mit der neuen .external überschrieben.
*Die .image-Datei hochladen.
*Box-Reboot anstoßen
=== Beim Flashen meldet das AVM-Webinterface, daß das Image keine passende Firmware enthält  ===
Das in der Box (im Urlader) eingestellte Branding muss auch in der verwendeten Firmware enthalten sein. Also bitte mal prüfen, ob das der Fall ist und ggfs. das Image mit dem richtigen Branding neu erstellen.
=== Freetz-Trunk wurde per AVM Firmware-Update geflasht, nach dem Neustart scheint sich aber nichts geändert zu haben  ===
Sollte nach dem Flashen von Freetz per Firmware-Update über das AVM-Webinterface und dem nachfolgenden Neustart das Freetz-Webinterface auf Port 81 nicht zur Verfügung stehen und sich auch die Firmware-Version im AVM-Webinterface nicht geändert haben, so war vermutlich das Flashen nicht erfolgreich. Ein deutlicher Hinweis darauf ist, wenn der Neustart der Box sehr schnell geht. Je nach Modell der Box und Größe der Firmware kann das Flashen ein bis zwei Minuten dauern und in dieser Zeit blinkt eine Kontroll-LED an der Box, genauso wie bei einem normalen Firmware Update. Ursache hierfür ist vermutlich ein Mangel an freiem Arbeitsspeicher auf der Box während dem Update.
Dann können folgende Schritte ggf. Abhilfe schaffen:
*Zunächst ein Image ohne irgendwelche Pakete erstellen (was sowieso empfohlen wird) und ggf. durch Remove-Patches die Größe weiter reduzieren.
*Alternativ die letzte Stable-Version oder eine andere ältere (und hoffentlich kleinere) Version runterladen und kompilieren.
*Diese Version dann über das AVM-Webinterface flashen und die Box neustarten.
*Dann das gewünschte Image über das Freetz-Webinterface (Port 81) flashen und auswählen, dass die AVM Dienste heruntergefahren werden.
*Nach dem Flash-Vorgang im angezeigten Log überprüfen, ob der Vorgang erfolgreich war, und die Box über das Freetz-Webinterface neustarten.
*Danach sollte das gewünschte Image erfolgreich geflasht worden sein.
== Probleme nach dem (erfolgreichen) Flashen  ==
=== Wie lautet das Standard-Passwort für Freetz?  ===
Das Standard-Passwort für Freetz(sowohl Konsolen- als auch Website-Login) lautet 'freetz'. Benutzername für die Konsole ist 'root', für das Freetz-Webinterface standardmäßig 'admin'. Beim ersten Einloggen per Telnet (user: root) muss das Passwort geändert werden. Im Webinterface erscheint ein Hinweis, falls das Standardpasswort gesetzt ist. Ändert das Passwort bitte zu eurer eigenen Sicherheit.
=== Nach dem Flashen ist das AVM-Webinterface nicht mehr erreichbar  ===
Wenn im Image (z.B. wegen OpenVPN) die OpenSSL-Libraries eingebaut wurden, gibt es Probleme mit tr069. Es ist dann erforderlich entweder auf OpenSSL-Libs zu verzichten, oder tr069 zu deaktivieren. Dazu muss die Datei /var/flash/tr069.cfg mittels nvi oder nmcedit editiert werden. So sollte es aussehen:
{{{
# cat tr069.cfg
/*
* /var/flash/tr069.cfg
* Sun Sep 8 14:03:34 2002
*/
tr069cfg {
enabled = no;
igd {
...
}}}
Bei neueren Firmwares reicht es nicht mehr aus tr069 zu deaktivieren. Hier crasht der ctlmgr auch bei anderen Aktionen beim Zugriff auf die OpenSSL-Libs. Manchmal schafft das Ersetzen der libavmhmac (im menuconfig unter Advanced Options-&gt;Shared Libraries-&gt;Crypto &amp; SSL-&gt;Replace libavmhmac) Abhilfe. Unter Umständen funktionieren danach aber nicht mehr alle Funktionen, wie z.B. die Fritz!Mini Unterstützung. Um heraus zu finden, ob die problematischen OpenSSL-Libs ins Image eingebunden werden, kann man folgenden Befehl ausführen:
{{{
oliver@ubuntu:~/fritzbox/freetz/trunk$ grep -E  "libssl|libcrypto" .config
FREETZ_LIB_libcrypto=y
FREETZ_LIB_libssl=y
}}}
Es folgt eine Liste mit Paketen die die OpenSSL-Libs benötigen, manche auch nur optional: ''bip, curl, dropbear mit sftp-Support, mcabber, netsnmp, OpenVPN, Tor, transmission, Vsftpd und wget''
Man sollte nun versuchen die betroffenen Pakete statisch zu bauen (d.h. ohne zusätzliche OpenSSL-Libs). Momentan ist dies z.B. mit OpenVPN und CURL möglich. Man muss allerdings beachten, dass Binaries dadurch sehr gross werden, weil die OpenSSL-Libs dann ein Teil des statischen Binary sind. In diesem Fall ist es anzuraten solche Pakete mit [http://trac.freetz.org/wiki/help/howtos/common/external external] auszulagern. Auch wenn eigentlich kein Paket mehr die OpenSSL-Libs benötigt, kann es sein, dass diese immer noch ins Image gepackt werden. Das kommt daher, dass menuconfig eine automatische Abwahl nicht unterstützt. Hierfür gibt es den Befehl
''make config-clean-deps''.
{{{
oliver@ubuntu:~/fritzbox/freetz/trunk$ make config-clean-deps
Step 1: temporarily deactivate all kernel modules, shared libraries and optional BusyBox applets ... DONE
Step 2: reactivate only elements required by selected packages ... DONE
The following elements have been deactivated:
  FREETZ_BUSYBOX_BRCTL
  FREETZ_LIB_libcrypto
}}}
Vorsicht: Wie im Beispiel zu sehen werden hierbei auch Optionen deaktiviert die absichtlich gewählt aber nicht per default aktiviert sind.
=== Nach dem Flashen ist die Box nicht mehr erreichbar und/oder rebootet ständig  ===
Dies kann unterschiedlichste Gründe haben. Beheben lässt sich das Problem durch Einspielen einer anderen Firmware, in der die
problematische Funktion nicht enthalten ist. Grundsätzlich wird dies natürlich bei den Original-Firmwares von AVM der Fall sein; man 
kann aber auch durch Deaktivieren von Optionen und Neuerstellen von Freetz ausprobieren, woran es liegt. Da das Webinterface nicht 
mehr erreichbar ist, muss ein Update auf andere Weg erfolgen. Hier gibt es zwei Möglichkeiten:
*das Script tools/push_firmware.sh. Hiermit lassen sich beliebige Images einspielen.
*ein Recover-Image von AVM. Dieses spielt wieder eine Original-Firmware von AVM ein.
=== Beim Aufruf des Original-AVM-Webinterface von aussen bekomme ich trotz Portweiterleitung nur eine weisse Seite?  ===
Dies ist ein 'Sicherheitsmechanismus' von AVM. Um dies zum Umgehen, muss für den Browser eine Erweiterung installiert werden,
welche es erlaubt, den 'REFERER' auszuschalten.
=== Kann man Pakete/Patches nachinstallieren, ohne das FREETZ-Image neu zu erstellen?  ===
Nein, das ist im Normalfall und ohne Weiteres nicht möglich. Nach einer Veränderung der Konfiguration unter "menuconfig" sollte typischerweise ein "make" ausgeführt werden, welches als Ergebnis ein neues Image liefern soll. Dieses Image muss dann über Firmware- Update auf die Box gebracht werden, wenn man seine Änderungen auf der Box haben will. Einer der Gründe dafür ist das spezielle Dateisystem im Flash-Speicher der Box. Dieses Dateisystem ähnelt einer Archivdatei, ist sehr stark komprimiert und speziell für Flash- Speicher optimiert. Änderungen in einem solchen Dateisystem sind jedoch immer mit einer neuen Rearchivierung verbunden und erfordern somit den Neuaufbau des kompletten Systems.
Es gibt jedoch Ausnahmen aus dieser Regelung:
*[[External]]
Man kann nur die Binaries der ausgelagerten Pakete neu kompilieren. Somit kann man z.B. ein Paket updaten, ohne ein neues Image zu erstellen. Diese Methode ist allerdings sehr riskant, weil external typischerweise nicht alle Dateien auslagert. Somit läuft man immer Gefahr Versionsunterschiede zwischen den ausgelagerten und fest integrierten Inhalten desselben Pakets zu bekommen.
*[[Freetz chroot|USB-ROOT]]
Hier könnte man wenigstens theoretisch das komplette Dateisystem (typischerweise ext2) "on the fly" ändern und braucht dafür kein Firmwareupdate. Allerdings wird auch hier dringend empfohlen das USB-ROOT-System grundsätzlich als "read-only" zu mounten und nur bei Bedarf (z.B. fürs Update) es kurzzeitig beschreibbar zu machen.
== Freetz Updaten, aber wie&nbsp;:  ==
=== Ich habe momentan eine Laborversion installiert. Kann ich Freetz einfach darüber flashen&nbsp;?  ===
  Es ist ratsam die Box zunächst zu recovern. Anschliessend den letzten Finalrelease aufspielen und die Einstellungen exportieren
  über das FB Webinterface. WICHTIG: Vor dem Recovern die aktuellen Zugangsdaten bereithalten. Diese findet man z.B. im 1und1
  Controllcenter unter "Zugangsdaten"
=== Ich habe eine alte Freetz-Firmware auf der Box  ===
==== Update von Freetz-Version XY auf Freetz-VersionYZ:  ====
In diesem Fall muß '''nur''' ein neues Freetz kompiliert / gebaut werden. Wie das geht ist [http://trac.freetz.org/wiki/help/howtos/common/install#Durchführung hier] oder [http://trac.freetz.org/wiki/help/howtos/common/newbie_start#Newbie-AnleitungzumbauendeserstesFreetz-Imageinkl.SAMBAundVSFTP hier für Newbies] beschrieben.
==== Wenn AVM wieder mal eine neue Firmware auf den Markt bringt:  ====
In diesem Fall muß Freetz ebenfalls neu gebaut werden, jedoch muß man eine Freetz-Version benutzen die dieses neue AVM-Firmware bereits unterstützt. Welche Firmware-Versionen von welcher Freetz Version unterstützt wird kann man hier nachgelesen&nbsp;: [http://trac.freetz.org/wiki/FAQ#WelcheBoxenundwelcheFirmwareswerdendurchFreetzunterstützt: Unterstützte Firmewares in den unterschiedlichen Freetz-Versionen]
== Konfiguration  ==
=== Wo landen die diversen Konfigurationen auf der Fritzbox?  ===
Sämtliche Konfigurationen auf der Fritzbox liegen unter /tmp/flash. Dies ist zu beachten, wenn man eine Freetz-FW baut, da die
Konfigurationen damit nicht im festen Firmware-Teil im Image liegen. Alles unter /tmp/flash wird daher beim FW-Update auch nicht 
verändert, so dass die diversen Konfigurationen nach einem FW-Update auch erhalten bleiben. Wichtig ist, dass man nach Änderungen an 
Konfigurationsdateien unter /tmp/flash noch das Kommando "modsave" in der Konsole aufruft, damit sie auch gespeichert werden.
<br>
== Entfernen von Freetz und anderen Modifikationen  ==
Im Ordner tools/images befindet sich ein uninstall image, das wie eine Firmware übers Webinterface geflasht wird und die Konfigurationsdateien entfernt. Da hiermit nur die Konfigurationsdateien entfernt werden ist natürlich auch noch eine original Firmware einzuspielen. Das "Update" sollte vor einem Neustart erfolgen, da die Konfigurationsdateien ansonsten wieder angelegt werden. Am Einfachsten ist der Weg über ein AVM Recover (Dateien gibts für jede Box auf dem AVM-FTP). Auch hier werden sämtliche Konfigurationsdateien von Freetz gelöscht.
== Anleitungen  ==
=== Freetz Image erstellen  ===
[[Freetz Image erstellen]]
=== Freetz flashen bis zum CS Server einrichten  ===
[[Anleitung Freetz flashen bis zum CS Server einrichten]]
== Quellennachweise  ==
*[http://trac.freetz.org/ freetz.org]
== Wichtige Links  ==


*[[Hardwareliste]]
[[Fritz!Box:Copyrights|Copyrights]]  
*[[Freetz Faqs]]
*[[Freetz Tips]]
*[[Freetz chroot]]
*[[Freetz & Scripte]]
*[[Fritzbox]]
*[[Speedport]]
*[[Speed-to-fritz]]
*[[Smargo Einstellungen]]
*[http://trac.freetz.org/ freetz.org]
*[http://www.zebradem.com/zd345/ ZebraDem - Bei Fragen und Problemen zu Freetz]
*[[Hauptseite|[Zurück zu Hauptseite]]]


[[Category:Fritzbox]]
*[[Hauptseite|Zurück zu Hauptseite]]
</div> </div>
[[Category:Freetz]] [[Category:Fritzbox]]

Aktuelle Version vom 14. Dezember 2014, 06:27 Uhr