Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:emdebian:rootfs_erstellen [2014-10-08 17:07] grafsoftware:linux:emdebian:rootfs_erstellen [2014-11-12 10:47] (aktuell) – Buildroot Link hinzugefügt abajric
Zeile 4: Zeile 4:
  
 <box red right 60% | **Wichtig**> <box red right 60% | **Wichtig**>
- 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://mind.be/content/Presentation_Emdedded-distro-shootout.pdf|Artikel]] gut gezeigt.+ 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:linux:buildroot:start|hier]]). Die Unterschiede werden in diesem [[http://mind.be/content/Presentation_Emdedded-distro-shootout.pdf|Artikel]] gut gezeigt.
 </box> </box>
  
Zeile 25: Zeile 25:
  
 ==== Erstellen ==== ==== Erstellen ====
-FIXME Achtung: Problem mit Ubuntu: siehe [[https://bugs.launchpad.net/ubuntu/+source/multistrap/+bug/1313787]] +  - Multistrap-Konfiguration im aktuellen Arbeitsverzeichnis erstellen (Achtung: Problem mit Ubuntu: siehe [[https://bugs.launchpad.net/ubuntu/+source/multistrap/+bug/1313787]], ''/usr/sbin/multistrap'' muss abgeändert werden): <code>nano myBoard.multistrap</code> <file - myBoard.multistrap> [General]
-  - Multistrap-Konfiguration im aktuellen Arbeitsverzeichnis erstellen: <code>nano myBoard.multistrap</code> <file - myBoard.multistrap> [General]+
 ... ...
  
Zeile 53: Zeile 52:
 groups=sbuild</file> groups=sbuild</file>
   - Untere Adresslimitierung für Qemu deaktivieren: <code>echo 0 > /proc/sys/vm/mmap_min_addr</code>   - Untere Adresslimitierung für Qemu deaktivieren: <code>echo 0 > /proc/sys/vm/mmap_min_addr</code>
-  - Qemu-Binary in das eben erstellte Root-Filesystem kopieren: FIXME<code>cp /usr/bin/qemu-ppc-static /opt/multistrap/usr/bin/</code>+  - Qemu-Binary in das eben erstellte Root-Filesystem kopieren (Achtung: hier muss das passende Binary ausgewählt werden): <code>cp /usr/bin/qemu-ppc-static /opt/multistrap/usr/bin/</code>
   - chroot Umgebung betreten (in Arbeitsverzeichnis ausführen): <code>schroot -c my-emdebian-grip</code>   - chroot Umgebung betreten (in Arbeitsverzeichnis ausführen): <code>schroot -c my-emdebian-grip</code>
-  - Konfigurationsskipt ausführen: FIXME<code>(my-emdebian-grip)$ /autoconfig.sh</code>+  - Konfigurationsskipt ausführen: <code>(my-emdebian-grip)$ /autoconfig.sh</code>
   - Root Passwort festlegen: <code>(my-emdebian-grip)$ passwd</code>   - Root Passwort festlegen: <code>(my-emdebian-grip)$ passwd</code>
   - APT Cache löschen: <code>(my-emdebian-grip)$ apt-get clean</code>   - APT Cache löschen: <code>(my-emdebian-grip)$ apt-get clean</code>
Zeile 78: Zeile 77:
     - Die Zeile: <code>PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '</code>     - Die Zeile: <code>PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '</code>
     - Ersetzen durch: <code>PS1='[MY_TARGET] \u@\h:\w\$ '</code>     - Ersetzen durch: <code>PS1='[MY_TARGET] \u@\h:\w\$ '</code>
-  - Qemu-Binary im erstellten Root FS wieder löschen: <code>rm /opt/multistrap/usr/bin/qemu-ppc-static</code>+  - Qemu-Binary im erstellten Root FS wieder löschen (Achtung: hier muss wiederum das passende Binary ausgewählt werden): <code>rm /opt/multistrap/usr/bin/qemu-ppc-static</code>
   - Device Node Tabelle im aktuellen Arbeitsverzeichnis erstellen (board-spezifisch): <code># nano device_table</code> <file - device_table># name type mode uid gid major minor start inc count   - Device Node Tabelle im aktuellen Arbeitsverzeichnis erstellen (board-spezifisch): <code># nano device_table</code> <file - device_table># name type mode uid gid major minor start inc count
 /dev/console c 600 0 0 5 1 0 0 - /dev/console c 600 0 0 5 1 0 0 -
 ...</file> ...</file>
   - Dateisystemabbild erzeugen: <code># mkfs.jffs2 -n -e 0x40000 -p 0x40000 -b -d /opt/multistrap -D device_table -o my-rfs.jffs2</code>   - Dateisystemabbild erzeugen: <code># mkfs.jffs2 -n -e 0x40000 -p 0x40000 -b -d /opt/multistrap -D device_table -o my-rfs.jffs2</code>
 +<WRAP center round tip 80%>
 +Man kann das Image mit etwas Handarbeit verkleinern, indem vor dem Erzeugen des Images z.B. folgende Verzeichnisse gelöscht werden: ''/var/cache/'', ''/var/lib/dpkg/info/'', ''/usr/share/zoneinfo/'', ''/usr/share/perl/'', ''/usr/share/perl5/'', ''/usr/share/doc/''.
 +</WRAP>
 +
  
 ==== Automatisches Build Skript ==== ==== Automatisches Build Skript ====
-Ein Root-Filesystem kann auch mit einem automatischen Build-Script erstellt werden. Das folgende {{:software:linux:emdebian:mpc5200b.dtsi|Skript}} zeigt ein Beispiel.+Ein Root-Filesystem kann auch mit einem automatischen Build-Script erstellt werden. Das folgende {{:software:linux:emdebian:buildscript.sh|Skript}} zeigt ein Beispiel.
  
-===== Buildroot ===== 
-Wir benutzen [[http://buildroot.uclibc.org/|Buildroot]] für die Erstellung eines Root-Filesystems. 
- --- //[[urs.graf@ntb.ch|Graf Urs]] 2014-10-08 16:59// --- //[[urs.graf@ntb.ch|Graf Urs]] 2014-10-08 16:59//