Integration smbd/nmbd in die Fritz!Box-Firmware, Teil 2
Heute hat die 3070 ihre Steckerleiste für das Serial-Interface spendiert bekommen. Ein passendes, RS232 auf USB-Kabel, basierend auf dem Prolific PL2303 Serial Interface, welches ursprünglich wohl ein Siemens Handy-Datenkabel war
, stand mir zum Anschluß zur Verfügung. Das Kabel ist schnell auf der Box aufgesteckt, während ich nebenbei Minicom installiere und konfiguriere.
Sofort fällt mir auf, daß die Meldungen des Urladers andere sind als die schon an anderer Stelle dokumentierten:
(AVM) EVA Revision: 1.99 Version:1099
(C) Copyright 2005 AVM Date: Jul 28 2005 Time: 16:26:23 2 0-11
……..done
Während der Ausgabe der Punkte bis zum done ist Gelegenheit, sich mittels FTP an der Box anzumelden und die Firmware zu Recovern. Wenn nun die angepasste Firmware auf der Box installiert ist, passiert folgendes, und danach nichts mehr:
(AVM) EVA Revision: 1.99 Version:1099
(C) Copyright 2005 AVM Date: Jul 28 2005 Time: 16:26:23 2 0-11
……..done
start kernel
Launching kernel decompressor.
Starting LZMA Uncompression Algorithm.
Copyright (C) 2003 Texas Instruments Incorporated; Copyright (C) 1999-2003 Igor Pavlov.
Compressed file is LZMA format.
Kernel decompressor was successful … launching kernel.
Die Box crasht einfach, wenn versucht wird, den Linux-Kernel zu starten.
Mir ist aufgefallen, daß der Danisahne-Mod ein “kernel-ohio-4mb.bin” Kernelimage benutzt (was auch immer das ohio zu bedeuten hat). Für die 7050 wird hier das dem Mod ebenfalls mitgelieferte “kernel-4mb.bin” (ohne ohio-Zusatz) eingebunden. Aus Neugierde habe ich den ohio-Kernel einfach durch den “normalen” Kernel ersetzt, eine neue Firmware erzeugt, und diese geflasht.
Launching kernel decompressor.
Starting LZMA Uncompression Algorithm.
Copyright (C) 2003 Texas Instruments Incorporated; Copyright (C) 1999-2003 Igor Pavlov.
Compressed file is LZMA format.
Kernel decompressor was successful … launching kernel.LINUX started…
Config serial console: ttyS0,38400
prom_init: local_env_buffer 912 used (max 2048)
CPU revision is: 00018448
Primary instruction cache 16kb, linesize 16 bytes (4 ways)
Primary data cache 16kb, linesize 16 bytes (4 ways)
Number of TLB entries 16.
Linux version 2.4.17_mvl21-malta-mips_fp_le (daniel@powerwiesel) (gcc version 3.3.2) #1 Mo Jan 30 08:23:52 CET 2006
Reset Status: HW reset
DEBUG: Bring MDIO out of reset.
Determined physical RAM map:
memory: 14000000 @ 00000000 (reserved)
memory: 00020000 @ 14000000 (ROM data)
memory: 01fe0000 @ 14020000 (usable)
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line:
calculating r4koff… 000b71b0(750000)
CPU frequency 150.00 MHz
…
…
Der Kernel bootet jetzt, somit habe ich jetzt eine Fritz!Box 3070 Firmware mit integrierten Samba-Binaries!
Jetzt fehlt nur noch der automatische Start der Dienste beim Hochfahren/Einschalten der Box. Die Konfigurationsdatei (smb.conf) ist im Danisahne-Mod-Verzeichnis schnell unter root/etc abgelegt. In den Original-Firmware-Dateien ist mir dann aufgefallen, daß in “rc.net” in /etc/init.d offenbar bereits Vorkehrungen für einen Samba-Start geschaffen wurden (wird AVM etwa mit einem späteren Update von sich aus Samba mitliefern?), welche lediglich auskommentiert wurden. Entsprechende Zeilen sind schnell entkommentiert und mit einer Zeile “hostname fritzbox” ergänzt, da die Box ansonsten als “(none)” in der Netzwerkumgebung erscheint…
In rc.net steht also jetzt Folgendes:
#we have the samba cfg in /var, so crate them there
sambastart()
{
cd /
tar xf /var.tar
hostname fritzbox
/usr/bin/nmbd -D -s /etc/smb.conf
/usr/bin/smbd -D -s /etc/smb.conf
}
Weiterhin ist ein paar Zeilen weiter unten der Aufruf zu “sambastart” auskommentiert.
Beim nächsten Neustart der Box wird Samba jetzt mitgestartet.
Bemerkungen:
Samba läuft auf der Box recht stabil, der Hauptspeicher wird vor allem bei mehreren gleichzeitigen Zugriffen von unterschiedlichen Clients aus zwar hart an die Grenzen getrieben, der Daemon (und alle anderen) stürzt aber nicht ab! Das reine Durchbrowsen der Verzeichnisse auf dem USB-Massenspeicher ist sehr zügig, der Datendurchsatz lässt allerdings stark zu wünschen übrig (bei grösseren Dateien werden im Schnitt nicht mehr als 150-200kb/s erreicht), was aber auf das USB1.1-Interface und dessen Anbindung zurückzuführen sein dürfte, da der smbd nie mehr als 4% CPU-Zeit benötigt.