====== Installation auf einen Raspberry Pi ======
NetBSD hat mit den Versionen 6.0 und 7.0 die Unterstützung der ARM-basierten Raspberry Pi Plattform aufgenommen. Einschließlich der Unterstützung des Quad-Core-Prozessors vom Raspberry Pi 2 Board.
Zum gegenwärtigen Zeitpunkt wird aber noch nicht der erst im Februar 2016 erschienene Raspberry Pi 3 unterstützt. Vermutlich wegen des neu verwendeten 64-Bit ARM Cortex A53 Prozessors.
===== Installation =====
* Die automatischen Nightly-Builds auf [[http://nyftp.netbsd.org/pub/NetBSD-daily/|nyftp.netbsd.org]] stellen die Image-Dateien für die Installation zur Verfügung.
* Das '//**evbarm-earmv6hf/binary/gzimg/**//' Verzeichnis enthält eine **rpi.img** Datei, welche als einziges Image sowohl für den Raspberry Pi der ersten als auch der zweiten Generation genutzt werden kann.
* Das '//**evbarm-earmv7hf/binary/gzimg/**//' Verzeichnis enthält eine **armv7.img** Datei, welche für den Raspberry Pi 2 optimiert ist.
Die Image-Dateien entpacken und auf die SD-Karte kopieren. Zum Beispiel:
dd if=rpi.img of=/dev/disk1
==== Benutzung der seriellen Konsole ====
* Standardmäßig ist die **rpi.img** Datei so eingestellt, dass ein HDMI-fähiger Bildschirm und eine Tastatur zur Eingabe genutzt werden kann. Um jetzt die serielle Konsole nutzen zu können, muss das rpi.img an einem anderen Rechner gemounted werden (es handelt sich um ein FAT-Dateisystem) und in der Datei **cmdline.txt** aus der ersten Zeile das "**console=fb**" entfernt werden.
* Bei den meisten USB-TTL-Serial-Adaptern wird lediglich Tx, Rx und die Masse verbunden und es gibt keine Möglichkeit die Flusskontrolle zu verbinden. Der Effekt ist, dass trotz Ausgabe keine Eingaben möglich sind. Lösung: Im Terminal-Emulator muss die Flusskontrolle abgeschaltet werden. Zum Beispiel Minicom mit **minicom -s** aufrufen und "Hardware flow control" auf "**no**" setzen.
* Die Übertragung finden bei den Pi's mit 115200 Bits und 8N1 statt.
==== Vergrößern des root-Dateisystems ====
Während des Partitionierungprozesses darf nicht die erste MS-DOS (FAT) Partition gelöscht oder formatiert werden.
* an einem anderen Rechner diese erste FAT-Partition auf der SD-Karte mounten
* die Datei //**/boot/cmdline.txt**// nach //**/boot/cmdline.txt.bak**// kopieren
* die Datei //**/boot/cmdline.txt**// mit einem Editor öffnen und und am Ende der ersten Zeile ein ' **-s**' anhängen, damit das System später erst einmal im Single-User-Mode startet
* Für die nächsten Schritte muss das root-Dateisystem lesend und schreibend (rw) eingehängt werden. Rebooten und am Prompt zur Eingabe des Shell-Pfades Return drücken.
* am **#** folgenden Befehl eingeben und bestätigen
disklabel -i ld0
* Am **partition>** Prompt "**A**" eingeben und Return drücken
Adjust disklabel sector from 4194304 to 62333952 [n]?
Type "y" and press return.
* **partition>** Prompt "**a**" eingeben und bestätigen
Filesystem type prompt, press return to use the current value (4.2BSD).
Start offset prompt, press return to use the current value.
Partition size prompt, type "$" and press return to grow the
partition to use all available free space.
* **partition>** Prompt "**W**" eingeben, um die Änderungen in das Disklabel zu speichern
Confirm this choice by typing "y" at the Label disk prompt.
Type "Q" and press return to quit disklabel.
* Am **#** Prompt (Shell) folgendes eingeben:
fsck -fy /dev/rld0a
resize_ffs -y /dev/rld0a
* Dies kann einige Minuten dauern!
fsck -fy /dev/rld0a
mount_msdos /dev/ld0e /boot
mv /boot/cmdline.txt.orig /boot/cmdline.txt
reboot
* Wenn das System bei dem Neustart wieder hochkommt, wurde das root-Dateisystem auf die gesamte SD-Karte ausgeweitet.
==== Installation mit SSH-RAM-Disk Image ====
Laut dem NetBSD-Wiki-Eintrag soll es wohl alternativ die Möglichkeit einer Installation über eine SSH-RAM-Disk geben, die wie bei einer normalen Installationsprozedur auf einem PC das menügeführte Programm **sysinst** benutzt. Leider bricht das Programm bei der Partitionierung immer ab, da er auf einen korrekten Eintrag des Master-Boot-Records beharrt. Da es sich bei eienem Raspberry Pi aber nicht um eine klassische PC-Plattform handelt, ist dieser Schritt völlig Banane. Es kann natürlich auch sein, dass ich dabei irgendwo einen Fehler mache.
==== Links ====
Quelle: https://wiki.netbsd.org/ports/evbarm/raspberry_pi/