Firmwarebau mit andLinux
Aus open7x0.org
Inhaltsverzeichnis |
Die Installation von andLinux
Hier soll kurz ein Weg beschrieben werden, wie man ohne große Linuxkenntnisse seine eigene Firmware für die Siemens Box bauen kann.
Es gibt auch die Möglichkeit dies mit einer VMWare zu tun, ich habe aber festgestellt, dass dies nicht sehr komfortabel ist und die Geschwindigkeit ist auch nicht besonders. Deshalb hier eine andere Möglichkeit.
Voraussetzung ist ein Windows-PC mit ca. 6 GB Festplattenplatz. (es reicht ein Verzeichnis)
Hier http://www.andlinux.de/ kann man sich erst mal kundig machen und
hier Beta1 final - Der WIKI bezieht sich auf diese Version!
Beta2 final Achtung geändertes Setup - der WIKI bezieht sich auf die Version Beta1 final!
kann man sich die Setupdatei herunterladen. Es gibt noch eine Version mit KDE, die ist aber nicht nötig. Vor der Installation sollte man sich ein neues Verzeichnis anlegen, in das man andLinux installiert. Unterhalb dieses Verzeichnisses Legt man sich einen Ordner an, der dann als Austauschordner zwischen Windows und Linux dient. Dann ruft man die heruntergeladene Datei andlinux-beta1-minimal.exe auf. Für die Installation wählt man den neu angelegten Ordner. Die folgenden Dialoge beantwortet man folgendermaßen:
Die Auswahl ist natürlich abhängig vom vorhandenen Arbeitsspeicher, jedoch sollten hier mindestens 192 MB gewählt werden.
Wer Sound möchte, kann hier natürlich auch mit „yes“ antworten, ist aber für unser Vorhaben nicht nötig.
Wer ständig mit andLinux arbeiten will kann hier andLinux auch als Dienst starten lassen.
Hier wird der oben angesprochene Austauschordner eingerichtet, CoFS ist die einfachste Variante.
Hier wird der Ordner ausgewählt.
Hier noch die Einstellungen für die anzulegenden Icons, diese Einstellung sollte reichen.
Damit ist die Installation auch schon abgeschlossen. Wichtig ist der Neustart!!
Der erste Start
Nach dem Neustart folgt ein Doppelklick auf das neue Symbol „Start andLinux“.
Der erste Start dauert etwas, da das Dateisystem überprüft wird. Nach erfolgreichem Start sollte folgendes Panel erscheinen:
Ein Klick auf die linke Schaltfläche sollte sich eine Shell öffnen.
Jetzt erst mal alles wieder beenden, dazu auf den Panel ganz rechts die Schaltfläche anklicken und
„Quit andLinux“ auswählen.
Vorbereiten des Systems für das Kompilieren
Um jetzt mit dem Firmwarebau los zulegen brauchen wir mehr Plattenplatz, denn andLinux legt standardmäßig nur eine Rootpartition von 2GB an. Dafür gibt es im andLinuxordner eine Datei ImageResizeTool.zip, diese bitte entpacken. Im entpackten Ordner befindet sich eine Datei toporesize.bat. Diese mit einem Doppelklick aufrufen, es erscheint folgendes Fenster:
Hier „find File“ auswählen, im folgenden Dialog die Datei base.drv aus dem Ordner Drives auswählen:
Den Schieberegler auf ca. 6 GB schieben (4 GB reichen auch, werden aber auch schnell knapp)
Achtung: Das Dateisystem muß Dateigrößen größer 2GB unterstützen, z.B. NTFS
Dann auf „Resize file“ klicken. Es folgt eine Überprüfung des Dateisystems und dann wird die Größe geändert. Bei Fehlermeldungen reicht entweder der Festplattenplatz nicht aus, oder das Dateisystem ist nicht in Ordnung – Platz schaffen und nochmals wiederholen.
Wenn alles ohne Fehlermeldungen durchgelaufen ist, sollte die Datei base.drv die neue Größe haben.
AndLinux wieder starten und eine Shell öffnen df eingeben und ENTER drücken:
[root@andLinux ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/cobd0 2064208 511384 1468940 26% /
Wenn die Dateierweiterung erfolgreich war sollte die Größe hier auch angezeigt werden. Es kann aber auch sein, dass das Filesystem von der Erweiterung noch nichts weiß, dann folgendes eingeben:
resize2fs -p /dev/cobd0 <ENTER>
[root@andLinux ~]# resize2fs -p /dev/cobd0 resize2fs 1.40.2 (12-Jul-2007) Filesystem at /dev/cobd0 is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/cobd0 to 1539072 (4k) blocks. The filesystem on /dev/cobd0 is now 1539072 blocks long. [root@andLinux ~]#
Jetzt sollte einiges an Plattenaktivität zu verzeichnen sein, nach einiger Zeit sollte dieser Vorgang abgeschlossen sein. Ein erneutes df sollte dann folgendes zeigen:
[root@andLinux ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/cobd0 6059592 511592 5301840 9% /
So, jetzt haben wir Platz, aber uns fehlen noch einige Packete und Einstellungen. Als erstes brauchen wir den en_US.UTF-8 und den de_DE.UTF-8 Zeichensatz. Dafür folgendes eingeben:
apt-get update <ENTER>
Damit bringen wir die Paketdatenbank auf den neuesten Stand
apt-get install language-pack-en-base <ENTER>
mit y bestätigen
apt-get install language-pack-de-base <ENTER>
mit y bestätigen, fertig.
Jetzt müssen noch die benötigten Pakete nachinstalliert werden, dafür folgendes eingeben.
apt-get install subversion make bzip2 autoconf gcc gcc-3.4 g++ gettext texinfo libmpfr-dev patch zlib1g-dev <ENTER>
unter debian zusätzlich
apt-get install libgmp3-dev libmpfr-dev bison <ENTER>
mit y bestätigen, ein
apt-get upgrade <ENTER>
bringt unsere Installation auf den neuesten Stand.
mit y bestätigen
Damit ist unser System für das Bauen der Firmware fertig.
Das Kompilieren der Firmware
Zuerst ein Homeverzeichnis anlegen,
mkdir /home/vdr <ENTER>
wechseln in dieses Verzeichnis
cd /home/vdr <ENTER>
Quellcode holen
svn co svn://open7x0.org/uclibc_build_env/branches/experimental Firmware
dies sollte mit folgender Meldung abgeschlossen sein:
Checked out revision 399.
wechseln in das neu angelegte Verzeichnis (Groß- / Kleinschreibung beachten!)
cd Firmware <ENTER>
jetzt muss noch die Datei .config kopiert
cp configs/default-config .config <ENTER>
und angepasst werden:
nano .config
hier die Datei entsprechend anpassen, dann mit <Control>-<O> speichern und mit <Control>-<X> beenden. (am Ende befindet sich meine .config)
Wichtig ist das Anpassen des Boxtypes:
CONFIG_M7X0_TYPE = m740
Zum Abschluß sollte man nun noch die conf-Dateien nach den eigenen Wünschen anpassen, hierzu gehören z.B.:
| Pfad | Einstellungen |
|---|---|
| /home/vdr/Firmware/buildin/base-gambler/common/etc/rc.conf | IP Adresse, Gateway, DHCP |
| /home/vdr/Firmware/buildin/base-gambler/common/etc/rc.local.conf | Video-Dir, Plugin-Dir, Conf-Dir |
| /home/vdr/Firmware/buildin/base-gambler/common/etc/fstab | Mountpoints |
| /home/vdr/Firmware/prg-fw-configs/vdr-m7x0/m740/etc/vdr/channels.conf | Kanalliste 740 |
| /home/vdr/Firmware/prg-fw-configs/vdr-m7x0/m750s/etc/vdr/channels.conf | Kanalliste 750s |
dazu wie oben beschrieben z.B.
nano /home/vdr/Firmware/buildin/base-gambler/common/etc/rc.conf <ENTER>
eingeben, Daten ändern und dann mit <Control>-<O> speichern und mit <Control>-<X> beenden.
Nähere Erläuterungen zu den conf-Dateien siehe im Wiki - [Konfiguration]
Hiermit sind alle Voraussetzungen geschaffen um die Firmware zu bauen.
Ein einfaches
make <ENTER>
startet den Build.
Zuerst wird die Toolchain „gebaut“ und dann die Firmware selbst. Das ganze sollte je nach Rechnerleistung 2-3 Stunden dauern.
Bemerkung: Beim ersten Aufruf von "make" wird die komplette Toolchain "gebaut", deswegen dauert dieser Prozess auch so lange!
Abgeschlossen und erfolgreich ist der Build, wenn folgende Meldung auf dem Bildschirm erscheint:
Finished, we are ready to rumble...
Je nach Einstellung in der .config sollten jetzt im Firmwareverzeichnis zwei Dateien liegen:
open7x0.org-m740.ofi
open7x0.org-m740.wsw
mit
cp open7x0.org-m740.* /mnt/and/Transfer/ <ENTER>
werden die Dateien in das oben angelegte „Transferverzeichnis“ kopiert, so dass wir von Windows aus zugreifen können. Nun noch flashen und viel Spass mit der neuen Firmware.
Firmware aktualisieren
Zum aktualisieren der Firmware braucht man dann nur noch folgende Schritte auszuführen:
cd /home/vdr svn up svn://open7x0.org/uclibc_build_env/branches/experimental Firmware cd Firmware make
und schon nach wenigen Minuten hat man eine aktuelle Firmware.
Beispiel für eine .config
# CONFIG_PREFIX is not set CONFIG_BOOTLOADER = y CONFIG_GENERATE_ROOTFS_DIR = y # CONFIG_ROOTFS_DIR is not set # CONFIG_GENERATE_EXT2_ROOTFS_IMAGE is no set # CONFIG_EXT2_ROOTFS_SIZE is not set # CONFIG_EXT2_ROOTFS_IMG is not set CONFIG_GENERATE_CRAM_ROOTFS_IMAGE = y CONFIG_CRAMFS_NEEDS_SWAP = y # CONFIG_CRAM_ROOTFS_IMG is not set # CONFIG_GENERATE_SQUASH_ROOTFS_IMAGE is not set # CONFIG_SQUASH_ROOTFS_IMG is not set # type is m740 or m750s CONFIG_M7X0_TYPE = m740 CONFIG_BUSYBOX = y CONFIG_GDB = n CONFIG_ZLIB = y # CONFIG_ZLIB_STATIC is not set CONFIG_READLINE = n CONFIG_NCURSES = n CONFIG_BASH = n CONFIG_DOSFSTOOLS = y CONFIG_E2FSPROGS = y CONFIG_LIRC = y CONFIG_PURE-FTPD = y # CONFIG_MINI-SENDMAIL is not set CONFIG_SSMTP = y CONFIG_EGCS = y CONFIG_VDR = y CONFIG_VDR_TREE = gambler-unstable # CONFIG_VDR_LOCAL_PATH is not set CONFIG_VDR-PLUGINS = unstable/epgsearch unstable/filebrowser unstable/streamdev unstable/hdspace unstable/skinenigmang unstable/sleeptimer unstable/scheduler unstable/pictures CONFIG_VDR-PLUGINS-LIBS = epgsearch filebrowser epgsearchonly conflictcheckonly quickepgsearch hdspace sleeptimer scheduler pictures CONFIG_USBAUTOMOUNTER = y CONFIG_M7X0-MODULES = y CONFIG_SIEMENS-LINUX-KERNEL = y CONFIG_GENERATE_SIEMENS-LINUX-KERNEL-IMG = y # CONFIG_SIEMENS-LINUX-KERNEL-IMG is not set CONFIG_GENERATE_WSW-IMG = y # CONFIG_WSW-IMG is not set CONFIG_GENERATE_OFI-IMG = y # CONFIG_OFI-IMG is not set CONFIG_SCRIPT_BASE = base-gambler CONFIG_LIBOSD = y CONFIG_O7O_FLASHER = y CONFIG_TOOL-BOX = y CONFIG_WEBIF = y CONFIG_WEBIF_TREE = testing CONFIG_BOOTMENU = y CONFIG_DROPBEAR = y
Tips für Fortgeschrittene
Sicherung der Installation
Man kann mit "andLinux" mehrere Konfigurationen verwalten. Wenn man z.B. eine funktionierende Installation aufheben möchte, beendet man andLinux und kopiert die Datei base.drv aus dem Ordner Drives und gibt der Kopie einen anderen Namen z.B. base_sic.drv.
Nun kann man die Dateien bei Bedarf wieder umbenennen, oder man editiert die Datei settings.txt im "andLinux" Ordner wie folgt.
mem=512 root=/dev/cobd0 initrd=initrd.gz kernel=vmlinux #cobd0=Drives\base.drv cobd0=Drives\base_sic.drv cobd1=Drives\swap.drv eth0=slirp eth1=tuntap,"TAP-Colinux",00:11:22:33:44:55 cofs0=V:\andLinux\Transfer
Mit cobd0=<Pfad> kann eine andere Base angegeben werden. Sie kann auch auf einen anderen Laufwerk liegen.
Für alle die wenig Festplattenplatz haben - wenn man die base.drv mit WinRAR packt hat sie nur noch eine sehr geringe Größe und man kann sie auf CD oder DVD brennen.











