Hacking the Fritz!Box – Oder wie man dem Fritz!Box Mediaserver beibringt ein anderes Verzeichnis zu benutze

To my english readers

Todays blog entry is in german, since its about a piece of hardware which as far as i know is only sold to the german market.
If i’m wrong, and you own a Fritz!Box Fon WLAN 7320, and you don’t understand german, feel free to leave a comment, i will translate the post then.

WICHTIG! Zuerst lesen!

Dieser Blogeintrag beschaeftigt sich damit die Fritz!Box 7320 dazu zu bringen, mit dem eingebauten Mediaserver ein bestimmtes Verzeichnis auf einer angeschlossenen USB Festplatte zu verwenden.

Die hier gezeigte “loesung” ist ein Hack, der nicht von unerfahrenen Anwendern gemacht werden sollte. Im laufe des ganzen wird die Konfiguration im Flash Speicher der Fritz!Box modifiziert,
wer da nicht dabei einen groben fehler macht, z.b. weil er sich nicht mit der Materie auskennt riskiert das Ding ausser Gefecht zu setzen. Ich selbst bin bereits viele Jahre mit Linux-Systemen vertraut, und traue mir daher zu das Risiko fuer mein Geraet zu tragen, aber ich uebernehme keine Verantwortung falls jemand sein Geraet damit unbrauchbar macht – wer dem hier erklaerten Weg folgt traegt allein selbst die Verantwortung!

Warum eigentlich

Ich habe gestern meine Fritz!Box im Rahmen meines DSL Vertrages erhalten, zwar wird meine Leitung erst naechste Woche geschaltet, aber irgendwie konnt ich meine Finger nicht von dem Geraet lassen.

Die Fritz!Box kommt mit einem eingebauten, sehr rudimentaeren upnp medienserver, der – so er denn eingeschaltet ist – per default die ganze Platte indexiert und alle Medienfiles mit denen er etwas anfangen kann sucht.
hat man nun den Wunsch vieleicht nicht alle Verzeichnisse im Medienserver haben zu wollen, z.b. weil man auf der Platte auch seine webpage sourcen liegen hat und nicht alle bilder von da auch im medienserver haben will, so hat man keine Moeglichkeit das ueber die Weboberflaeche einzustellen.

Eine Suche nach einer Loesung hat mich zwar auf das grandiose Wiki von wehavemorefun.de gestossen, wie auch auf viele Foren (in denen diverse Leute nach Loesungen suchten), aber leider auf keine Antwort. Also hab ich halt dokus gewaelzt, die Kommandozeile bemueht, etc. und siehe da, die Loesung ist nah!

Ein paar Informationen, die hilfreich sein koennten

  • Die Fritz!Box laeuft auf einem embeded Linux namens BusyBox.
  • Auf der BusyBox laeuft ASH als shell (Achtung, unterschiede zu denen die Bash gewohnt sind!)
  • Fuer die Flash-Configs sieht man zwar Dateien unter /var/flash, diese habe ich aber mit regulaeren tools nicht oeffnen koennen
  • Die Pfade koennen auf anderen Firmware Versionen abweichen, oder auch auf anderen Fritz!Box Geraeten, es empfiehlt sich daher zu pruefen was wo ist bevor man blind Kommandos ausfuehrt!

Vorbereitung

Um auf die Shell der Fritzbox zu kommen muss man zunaechst Telnet einschalten, dazu gibt es zwei Loesungen, eine per angeschlossenem Telefon, und eine die den Updatemechanismus der Firmware missbraucht, beide sind im Wiki von wehavemorefun.de beschrieben.

Der Akt

Das erste was getan werden muss ist die config aus dem Flash auszulesen und in eine Datei zu schreiben, dazu gibt es je nach Konfigurationsfile das man anpassen moechte ein entsprechendes Tool auf der Fritz!Box.
In unserem Fall wollen wir die USB Konfiguration aendern, denn hier wird der versteckte homedir key in der media sektion gespeichert. Dieser ist per default “”, also ein leerer String.

Einen einzelnen key aus der Flash-Konfiguration auszulesen (es ist immer eine gute Idee das vorher und auch das nachher zu pruefen) geht wie folgt:

echo media.homedir | usbcfgctl -s

Daher, wir pipen den string “media.homedir” auf das kommando usbcfgctl -s. In diesem Fall sollten wir als Ergebnis “” bekommen.

Auf diese weise einen Key setzen koennen wir allerdings nicht, daher laden wir uns die ganze Konfiguration in eine Datei, mit folgendem Kommando:

usbcfgconv -o /var/media/NEW_LINK/usb.cfg

nach diesem Kommando sollte eine usb.cfg im obersten Verzeichnis unserer externen USB Platte liegen. ACHTUNG: Vorher mit ls pruefen ob der Symlink /var/media/NEW_LINK/ vorhanden ist und tatsaechlich
auf die Festplatte zeigt. Unter umstaenden muss die Platte noch in der Weboberflaeche aktiviert werden, oder der Link traegt einen anderen Namen (einige Forum Posts nennen NEW-LINK oder NEWLINK), auch weiss ich nicht wie sich das ganze bei mehreren Angeschlossenen Platten verhaelt.
Dieses Verzeichnis ist auch fuer den weiteren Verlauf noch wichtig!

Der naechste Schritt ist die neu angelegte Datei zu oeffnen, entweder mit dem vi der auf der Fritz!Box installiert ist, oder mit einem Editor der Ueber einen Netzwerkmount auf die Festplatte zugreift.

In Datei befinden sich mehrere Sektionen, die die uns interessiert sieht in etwa wie folgt aus:

media {
        media_server_enabled = yes;
        homedir = "";
}

Hier muessen wir nun lediglich die homedir Variable anpassen.
Doch Achtung der Pfad hier ist ein Stolperstein, denn es muss ein Pfad im busybox linux sein, welcher relativ zu /var/media/ftp/ liegt.
Unter /var/media/ftp/ ist die USB Platte, und auch andere Storage Einheiten gemounted, Ich habe eine Toshiba USB Platte, daher habe ich einen Pfad “/var/media/ftp/Toshiba-StorEHDD-01″, moechte ich also das das verzeichnis “mediastuff” auf meiner USB Platte verwendet wird, so koennte ich homedir auf “Toshiba-StorEHDD-01/mediastuff/” setzen.

Ich persoenlich habe zwei USB Platten von verschiedenen Herstellern, davon aber jeweils eine angeschlossen – nun moechte ich nicht jedesmal wenn ich die Platte wechsel die ganz Konfiguration anpassen – daher habe ich mich entschieden als Pfad “../NEW_LINK/mediastuff/” zu verwenden.

Achtung: Fallstrick, niemals einen absoluten Pfad eingeben, oder der mediaserver wird nicht starten!

Nun da die Konfiguration angepasst ist, wird es Zeit diese wieder in den Flashspeicher zurueck zu schreiben, das geht mit dem selben Tool das wir auch zum auslesen verwendet haben:

usbcfgconv -O /var/media/NEW_LINK/usb.cfg

Der unterschied ist das wir statt -o wie output -O wie Overwrite verwenden. Nun sollten wir ueberpruefen ob die aenderung funktioniert hat.

echo media.homedir | usbcfgctl -s

Sollte in meinem Fall nun “../NEW_LINK/mediastuff” ausgeben. (das Verzeichnis mediastuff auf der Festplatte sollte man spaetestens jetzt erzeugen!).

Der letzte Schritt den wir nun ausfuehren ist ein reboot der Fritz!Box

reboot

andernfalls ueberschreibt die Weboberlaeche unsere aenderungen am Flash-Speicher, und die ganze Muehe war umsonst. Ist die Fritz!Box fertig mit dem booten, so sollte der Mediaserver das von uns genannte Verzeichnis verwenden. (Wenn nicht zurueck auf die Konsole, Flash-Konfiguration mit usbcfgctl etc. durchchecken, ueberpruefen, ob pfade vorhanden sind und Logik in dem /sbin/start_mediaserver Script nachverfolgen!

Nachtrag

Ich habe kurz darueber nachgedacht die Anleitung in das Wiki von dem ich Mehrfach gesprochen habe einzustellen, aber irgendwie kann ich mich nicht dazu aufraffen mich fuer einen Eintrag zu registrieren. Solltest du einen Account dort haben, fuehl dich frei den Blogeintrag rueber zu kopieren, und mir (Peter Petermann) einen kleinen Gruss zu hinterlassen!

Noch ein Nachtrag

Ja, es ist moeglich das ganze auf andere Weise zu loesen, wenn man eine eigene / andere Firmware auf die Fritz!Box aufspielt – aber das ist nicht noetig um zu diesem Ergebnis zu kommen, und auch eher etwas fuer ausgemachte Fritz!Box-Bastler.

und noch einer

seit gestern abend Zeigt die Fritz!Box mir in der Weboberfläche folgende Meldung “Vom Hersteller nicht unterstützte Änderungen: Weitere Informationen.” – der Betrieb scheint davon aber nicht gestoert.

living in 2010

Living in the year 2010.

One thing i love about 2010

During my youth my friends and i used to bring our PC’s together to create a local area network,
so we could share files and play games together.
While moving our Computers arround on a hand barrow we where dreaming of a networked world,
without the need of us moving the computers arround, with the ability to send instant messages to eachother
and much more.
Much sooner than we thought this became the reallity of our daily life. Nowadays most people, most jobs wouldn’t
function properly without this network.

When i woke up this morning, with a song in my head, i bought it on my ipod, and was able to listen to it
at my way to work – did you think about this back in 1995? thats just 15 years ago! – i love it.

One thing i hate about 2010

I can remember the fall of the Berlin Wall, and what we perceived as the end of the cold war.
After that there was a quite positive mood in this Country – remember the Loveparade in the 90′s?,
(No not the late joke in the last few years).
We all thought the world would change to a more peaceful and free place.
A hope that died in large parts on September 11th 2001 (9 years ago).
Ever since alot of our world is living in constant fear. Here in germany we got arround this fear
for a while, but now our government and the media are pushing that fear, to put through laws which
restrict our very own freedom.
Today, when we go to a railwaystation, we have to see heavy-armed policemen again, i hate it.

random update… oh, and a new page

yeah i know i know, i haven’t posted in a while,
thats mostly because i haven’t done much stuff thats worth writing about.

however i’ve put a bit of time into a webpage for the king23 framework, and if you want to you can check out a first (very small) version at http://king23.net.
if i manage to find a bit more time i should probably start in writing a bit more docs then the inline docs and the tutorial posts on this blog.

I’ve been toying arround a bit with the idea of adding a bit of tools to integrate with hookbox, but i haven’t had a good idea on what i want to try it out, so that will have to wait a bit.

wtf google?

so i started my browser, expecting to see my dear google the way i like it..
and what do i see? a background image showing trees!
seriously, wtf?
since im no treehugger, i had a look how to change it back,
guess what – i didnt find an option to make it look like it used to.

Now i have a grey background, not exactly the way i like my google,
but still better than the trees.

And a new Blog… again..

It wasn’t that long ago that i announced having my new blog at googles blogger, but, well having looked at wordpress i just have to say it s so more compfortable and better looking that i just had to switch over..

I’ll also try to fill this up with a bit of content, so i hope i’ll get more readers again.

regards,
PP