Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:linux:emdebian:rootfs_erstellen [2014-10-08 16:26] – graf | software:linux:emdebian:rootfs_erstellen [2014-11-12 10:47] (aktuell) – Buildroot Link hinzugefügt abajric | ||
---|---|---|---|
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 [[software: |
</ | </ | ||
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 66: | Zeile 65: | ||
* Editieren von ''/ | * Editieren von ''/ | ||
* Sicherstellen, | * Sicherstellen, | ||
- | - Netzwerkkonfiguration (passend für NTB-Netz): < | + | - Netzwerkkonfiguration (passend für NTB-Netz): < |
iface lo inet loopback | iface lo inet loopback | ||
Zeile 74: | Zeile 73: | ||
| | ||
| | ||
- | - Hostname konfigurieren: | + | - Hostname konfigurieren: |
+ | - Bash primary promt string (PS1-String) anpassen: < | ||
+ | - Die Zeile: < | ||
+ | - Ersetzen durch: < | ||
+ | - Qemu-Binary im erstellten Root FS wieder löschen (Achtung: hier muss wiederum das passende Binary ausgewählt werden): < | ||
+ | - Device Node Tabelle im aktuellen Arbeitsverzeichnis erstellen (board-spezifisch): | ||
+ | / | ||
+ | ...</ | ||
+ | - Dateisystemabbild erzeugen: < | ||
+ | <WRAP center round tip 80%> | ||
+ | Man kann das Image mit etwas Handarbeit verkleinern, | ||
+ | </ | ||
==== 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!" | ||
- | </ |