Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
software:linux:emdebian:rootfs_erstellen [2014-10-08 16:34] – graf | software:linux:emdebian:rootfs_erstellen [2014-10-09 11:51] – graf | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
Der Speicherort des Root-Filesystems ist im Kernel fix einprogrammiert und lässt sich ändern mit //rdev//. Zum Root-Filesystem gehören einige wenige Toplevel-Verzeichnisse und die darin enthaltenen Unterverzeichnisse. | Der Speicherort des Root-Filesystems ist im Kernel fix einprogrammiert und lässt sich ändern mit //rdev//. Zum Root-Filesystem gehören einige wenige Toplevel-Verzeichnisse und die darin enthaltenen Unterverzeichnisse. | ||
- | <box red right 35% | **Wichtig**> | + | <box red right 60% | **Wichtig**> |
- | Ein Root-Filesystem kann mit Multistrap sehr einfach und elegant erstellt werden. Allerdings sind die Speicheranforderungen relativ hoch. | + | Ein Root-Filesystem kann mit Multistrap sehr einfach und elegant erstellt werden. Allerdings sind die Speicheranforderungen relativ hoch. Mit Buildroot reduziert sich die Grösse stark, allerdings bedingt das einen grösseren Aufwand (siehe weiter unten). Die Unterschiede werden in diesem [[http:// |
</ | </ | ||
Zeile 25: | Zeile 25: | ||
==== Erstellen ==== | ==== Erstellen ==== | ||
- | FIXME Achtung: Problem mit Ubuntu: siehe [[https:// | + | - Multistrap-Konfiguration im aktuellen Arbeitsverzeichnis erstellen (Achtung: Problem mit Ubuntu: siehe [[https:// |
- | - Multistrap-Konfiguration im aktuellen Arbeitsverzeichnis erstellen: < | + | |
... | ... | ||
Zeile 53: | Zeile 52: | ||
groups=sbuild</ | groups=sbuild</ | ||
- Untere Adresslimitierung für Qemu deaktivieren: | - Untere Adresslimitierung für Qemu deaktivieren: | ||
- | - Qemu-Binary in das eben erstellte Root-Filesystem kopieren: | + | - Qemu-Binary in das eben erstellte Root-Filesystem kopieren |
- | - chroot Umgebung betreten: < | + | - chroot Umgebung betreten |
- | - Konfigurationsskipt ausführen: | + | - Konfigurationsskipt ausführen: < |
- Root Passwort festlegen: < | - Root Passwort festlegen: < | ||
- APT Cache löschen: < | - APT Cache löschen: < | ||
Zeile 78: | Zeile 77: | ||
- Die Zeile: < | - Die Zeile: < | ||
- Ersetzen durch: < | - Ersetzen durch: < | ||
- | - Qemu-Binary im erstellten Root FS wieder löschen: < | + | - Qemu-Binary im erstellten Root FS wieder löschen |
- | - Device Node Tabelle erstellen: < | + | - Device Node Tabelle |
/ | / | ||
- | /dev/ | + | ...</file> |
- | #/ | + | |
- | /dev/loop b 640 0 0 7 0 0 1 8 | + | <WRAP center round tip 80%> |
- | /dev/mem c 640 0 15 1 1 0 0 - | + | Man kann das Image mit etwas Handarbeit verkleinern, |
- | /dev/null c 666 0 0 1 3 0 0 - | + | </WRAP> |
- | /dev/pts d 755 0 0 - - - - - | + | |
- | /dev/random c 666 0 0 1 8 0 0 - | + | |
- | /dev/tty c 666 0 0 5 0 0 0 - | + | |
- | /dev/tty c 666 0 0 4 0 0 1 6 | + | |
- | /dev/urandom c 666 0 0 1 9 0 0 - | + | |
- | /dev/zero c 666 0 0 1 5 0 0 - | + | |
- | /dev/mtdblock2 b 666 0 6 31 2 0 0 - | + | |
- | /dev/ttyPSC0 | + | |
==== Automatisches Build Skript ==== | ==== Automatisches Build Skript ==== | ||
- | Das folgende Skript erstellt automatisch ein neues RootFS-Image. | + | Ein Root-Filesystem kann auch mit einem automatischen Build-Script erstellt werden. Das folgende {{: |
- | <code bash> | + | |
- | # | + | |
- | + | ||
- | MULTISTRAP_CONFIG=myConfig.grip.multistrap # give name of configuration file | + | |
- | ROOTFS_DIR=/ | + | |
- | ROOTFS_IMG=rootfs.jffs2 # choose a suitable file system format | + | |
- | FILE_DIR=files | + | |
- | DEV_TABLE=device_table | + | |
- | + | ||
- | set -e | + | |
- | + | ||
- | echo " | + | |
- | if [ ! -d $ROOTFS_DIR ]; then mkdir -p $ROOTFS_DIR; | + | |
- | export MULTISTRAP_OUTPUT_DIR=$ROOTFS_DIR | + | |
- | multistrap -f $MULTISTRAP_CONFIG | + | |
- | + | ||
- | echo " | + | |
- | if [ ! -d $ROOTFS_DIR/ | + | |
- | if [ ! -d $ROOTFS_DIR/ | + | |
- | if [ ! -d $ROOTFS_DIR/ | + | |
- | if [ ! -d $ROOTFS_DIR/ | + | |
- | if [ ! -d $ROOTFS_DIR/ | + | |
- | if [ ! -d $ROOTFS_DIR/ | + | |
- | if [ ! -d $ROOTFS_DIR/ | + | |
- | if [ ! -d $ROOTFS_DIR/ | + | |
- | # more folders ... | + | |
- | + | ||
- | echo " | + | |
- | cp -v $FILE_DIR/ | + | |
- | cp -v $FILE_DIR/ | + | |
- | cp -v $FILE_DIR/ | + | |
- | touch $ROOTFS_DIR/ | + | |
- | # more config files ... | + | |
- | + | ||
- | echo " | + | |
- | cp -v $FILE_DIR/ | + | |
- | cp -v $FILE_DIR/ | + | |
- | cp -v $FILE_DIR/ | + | |
- | cp -v $FILE_DIR/ | + | |
- | # more scripts ... | + | |
- | + | ||
- | echo " | + | |
- | if [ ! -L $ROOTFS_DIR/ | + | |
- | if [ ! -L $ROOTFS_DIR/ | + | |
- | if [ ! -L $ROOTFS_DIR/ | + | |
- | if [ ! -L $ROOTFS_DIR/ | + | |
- | + | ||
- | echo " | + | |
- | mkfs.jffs2 -n -e 0x20000 -p 0x20000 -D $DEV_TABLE -l -d $ROOTFS_DIR -o $ROOTFS_IMG | + | |
- | echo "All done!" | + | ===== Buildroot ===== |
- | </code> | + | Wir benutzen [[http:// |
+ | TODO |