Firmwarebau mit andLinux

Aus open7x0.org

Wechseln zu: Navigation, Suche


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:

Bild:Setup_andLinux_1.png

Die Auswahl ist natürlich abhängig vom vorhandenen Arbeitsspeicher, jedoch sollten hier mindestens 192 MB gewählt werden.

Bild:Setup_andLinux_2.png

Wer Sound möchte, kann hier natürlich auch mit „yes“ antworten, ist aber für unser Vorhaben nicht nötig.

Bild:Setup_andLinux_3.png

Wer ständig mit andLinux arbeiten will kann hier andLinux auch als Dienst starten lassen.

Bild:Setup_andLinux_4.png

Hier wird der oben angesprochene Austauschordner eingerichtet, CoFS ist die einfachste Variante.

Bild:Setup_andLinux_5.png

Hier wird der Ordner ausgewählt.

Bild:Setup_andLinux_6.png

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:

Bild:AndLinux_Panel_1.png

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

Bild:AndLinux_Panel_2.png

„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:

Bild:Toporesize_1.png

Hier „find File“ auswählen, im folgenden Dialog die Datei base.drv aus dem Ordner Drives auswählen:

Bild:Toporesize_2.png

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.

Persönliche Werkzeuge