Raspberry Pi: Arch Linux installieren
Neben Raspbian sollte man sich für den Raspberry Pi auch die Arch Linux Distribution ansehen. Arch wurde nach dem KISS-Prinzip aufgebaut, welches besagt, eine möglichst einfache Lösung eines Problems zu finden. Der daraus resultierende minimalistische Ansatz der Distribution hat zur Folge, dass es wesentlich schlanker als andere Systeme seiner Art ist. Dies bringt mit sich, dass man ein flottes Betriebssystem bekommt, jedoch alles, was man sich wünscht selbst installieren muss. Deutlich wird das auch an der Größe der Images für den Raspberry Pi: Arch Linux ist im Vergleich zu Raspbian ca. nur ein viertel so groß. Wie man Arch Linux auf dem Raspberry Pi installiert und einrichtet, erkläre ich in diesem Artikel.
Zunächst müssen wir das Arch Linux Image herunterladen. Die .img.zip-Datei müssen wir entpacken, um das Arch Linux Image zu erhalten. Dazu benötigen wir unter Windows Win32DiskImager und unter Linux bzw. Mac OS X sollte sichergestellt sein, dass das Programm dd installiert ist.
Step 2
Windows
Wir öffnen die gerade heruntergeladene Win32DiskImager.exe. In dem Programm wählen wir in dem Feld Image File das Arch Linux Image an und bei Feld Device geben wir den Laufwerksbuchstaben zu der SD-Karte an, auf der das Image installiert werden soll. Wenn alles sicher richtig eingestellt ist, klicken wir auf Write und das Image wird auf die SD-Karte geschrieben.
Linux/Mac OS X
Mit dem kleinen Helfer dd in der Konsole können wir Images ganz leicht überspielen. Dazu führen wir folgendes Kommando aus, wobei [IMG] durch den Pfad zum Image und [DEVICE] durch den Pfad zur SD-Karte ersetzt werden muss. Das Überspielen des Images kann ein paar Minuten dauern in der keine weitere Ausgabe zu sehen ist.
dd bs=1M if=[IMG] of=[DEVICE]
Step 3
Nun stecken wir die SD-Karte in den Raspberry Pi und starten diesen. Ob wir den Raspberry Pi über einen Bildschirm (HDMI/FBAS) steuern oder über SSH im Netzwerk ist für folgende Schritte gleichgültig.
Step 4
Wenn der Raspberry Pi gestartet ist und ggf. eine SSH Verbindung hergestellt ist, müssen wir uns einloggen. Der Standard-Benutzer ist root mit dem Passwort root.
Step 5
Zunächst sollten wir mittels folgenden Kommandos das Passwort ändern, da wir uns mit dem Root-Benutzer einloggen, der volle Rechte genießt. Nach dem Absenden des Kommandos wird man zweimal aufgefordert, das neue Passwort einzugeben, welches man je mit Enter bestätigt. Das eingegebene Passwort wird, wie bei Linux Systemen typisch, nicht angezeigt.
passwd
Step 6
Nun können wir das Tastaturlayout anpassen, sodass wir zukünftig mit der deutschen Belegung tippen. Dies können wir mit folgendem Kommando bewerkstelligen.
echo LANG=de_DE.UTF-8 > /etc/locale.conf
echo LC_COLLATE=C >> /etc/locale.conf
echo KEYMAP=de-latin1 > /etc/vconsole.conf
Step 7
Jetzt können wir die richtige Zeitzone einstellen. Dazu müssen wir einen Link erzeugen, der auf die Datei der Zeitzone verweist. Im Beispiel stelle ich Europe/Berlin als Zeitzone ein.
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
Step 8
Damit das System auch alle seit dem erscheinen des Images veröffentlichten Updates bekommt, müssen wir es über folgendes Kommando aktualisieren. Der Paketmanager in Arch Linux heißt pacman, im Gegensatz zu Raspbian, wo er auf den Namen APT (apt-get) hört.
pacman -Syu
Optional: Package-Signing aktivieren
Es besteht die Möglichkeit, über das sogenannte Package Signing die Pakete zu verifizieren, um zum Beispiel die Installation manipulierter Pakete erkennen zu können. Diese Funktion ist optional und ist daher nur selten vorkonfiguriert eingerichtet. Um zunächst die Voraussetzungen zu prüfen, muss kontrolliert werden, ob der Dienst haveged läuft. Diese Informationen lassen sich über das Programm systemctl abrufen.
systemctl status haveged
Es ist möglich, dass haveged noch nicht installiert wurde. In diesem Falle kann mit den folgenden drei Befehlen der Dienst installiert gestartet und aktiviert werden. Sollte haveged schon installiert worden sein, kannst du diese Befehle natürlich überspringen!
pacman -S haveged
systemctl start haveged
systemctl enable haveged
Wenn haveged nun installiert ist, sollte der sogenannte Keyring initialisiert werden. Hierfür steht der Befehl
pacman-key --init
zur Verfügung. Der Keyring ist eine Art Schlüsselbund, der für die Arbeit mit Signaturen notwendig ist. Im nächsten Schritt muss noch der Schlüsselbund für die Arch Linux ARM Pakete installiert und mit dem zuvor initialisierten Schlüsselbund „bekannt gemacht“ werden.
pacman -S archlinuxarm-keyring
pacman-key --populate archlinuxarm
Zum Schluss muss die Paketprüfung mittels Signaturen nur noch in pacman selbst aktiviert werden.
Z. B. lässt sich die Datei /etc/pacman.conf mit dem Editor nano bearbeiten:
nano /etc/pacman.conf
In dieser Datei sollten folgende Zeilen entweder aktiviert (indem das „#“-Zeichen davor entfernt wird), oder falls noch nicht vorhanden, hinzugefügt werden.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
Nun werden die Pakete auch mit einer Signatur verifiziert. Weitere Informationen zu diesem Thema gibt es auf einer eigenen Infoseite der Arch Linux ARM-Entwickler.
Step 9
In dem installierten Image ist die Partition des Betriebssystems (nutzbarer Speicher) auf 1,7 GB definiert und somit auf eine 2 GB SD-Karte ausgelegt. Wenn wir eine größere Speicherkarte verwenden, sollten wir die Partition ausweiten. Dies ist nicht ganz so einfach wie in Raspbian, da wir dies manuell durchführen müssen.
Zunächst rufen wir über folgendes Kommando das Programm fdisk auf. In diesem erhalten wir über die Eingabe von p eine Liste der Partitionen. Dabei ist für uns die Partition /dev/mmcblk0p2 von Relevanz. Wir müssen uns aus dieser Zeile die Zahl der Spalte Start merken. Anschließend löschen wir durch die Eingabe von d (delete) und anschließend bei der Wahl der Partition 2 (/dev/mmcblk0p2) die Partition.
Mit der Eingabe von n erstellen wir nun wieder eine neue Partition. Dies soll eine extended (e) Partition sein, welche die Nummer 2 trägt. Bei First sector müssen wir nun die oben notierte Zahl aus der Spalte Start angeben. Bei Last sector können wir einfach mit Enter bestätigen und somit den Standard-Wert (bis zum Ende der SD-Karte) bestätigen. Nun müssen wir erneut mittels n eine Partition erstellen. Diesmal vom Typt logical (l). Sowohl bei First sector als auch bei Last sector können wir den Standard Wert mittels Enter übernehmen.
Abschließend müssen wir w (write) eingeben, damit die Änderungen geschrieben werden. Die Fehlermeldung Re-reading the partition table failed.: Device or resource busy ist völlig in Ordnung.
fdisk /dev/mmcblk0
Step 10
Damit die Änderungen umgesetzt werden, müssen wir den Raspberry Pi nun einmal neustarten.
reboot
Step 11
Abschließend müssen wir die Vergrößerung der Speicherkapazität noch mittels folgenden Befehls fertigstellen.
resize2fs /dev/mmcblk0p5
Geschafft! Arch Linux sollte nun soweit auf dem Raspberry Pi eingerichtet sein und der Installation von den gewünschten Programmen steht nichts mehr im Weg.
39 Kommentare. Hinterlasse eine Antwort
Die Werte für die Timezone, Hostname und Locale können auch über die entsprechenden Programme timedatectl, hostnamectl und localectl gesetzt werden.
Nachem ich die Partition neu erstellt habe, bootet mein PI nicht mehr. Was soll ich tun? Ich habe alles richtig gemacht.
Ich würde tippen, dass du den Start-Point falsch aufgeschrieben hast und folglich die Partitionstabelle zerschossen hast. Versuchs doch einfach noch einmal.
Hallo Jan!
Klasse Blog, hab bzgl. dem Umgang mit Debian Systemen hier schon viel lernen können. Ein großes Danke dafür! Da ich nun seit ein paar Wochen Linux Manjaro absolut zufrieden nutze (auch zum zocken), ist es an der Zeit nun auch meinen Piauf Arch umzurüste, damit ich mit einer einheitlichen Syntax arbeiten kan. 🙂
http://archlinuxarm.org/platforms/armv6/raspberry-pi
Dort steht sehr gut beschrieben wie man sich sehr einfach eine bootfähige SD erstellen kann, und dabei dir root partition gleich auf eine beliebigeGröße setzen kann. 😉
Würde mich sehr freuen mehr von dir aus dem Linux Arch bereich zu hören!
Grüße,
Tripout
Leider ist auf der http://www.raspberrypi.org/downloads/ Seite keine ArchLinux mehr erhältlich… Kurz gegoogelt finde ich nur http://archlinuxarm.org/platforms/armv6/raspberry-pi
Leider habe ich kein Linuxbertriebssystem hier… Nur mehrere Windows-Rechner. Hat jemand eine Idee, wie ich nun auf ein Raspberry ArchLinux bekomme?
Danke für den Hinweis. Habe den Artikel entsprechend angepasst.
Echt jetzt?
Okay, der Kommentar war etwas undeutlich! Aber man sollte kurz gegenprüfen ob das eigentlich so geht, wie ich (du) es beschrieben hast… Denn dann würde dir auffallen, das im ArchLinuxARM-rpi-latest.tar.gz einzelne Dateien stecken und kein img…
Also zu meiner Frage, wie bekomme ich nun die Dateien mit einem Windowsrechner auf die SD-Karte mit den entsprechenden Partitionen?
Grauenvoll, da stimme ich dir vollstens zu. Bei einer Änderung eines Linkes spielt der Autor nicht noch mal das ganze Tutorial durch, und nimmt sich dafür Stunden Zeit – für mehr als hundert Artikel wäre das ja auch kein Problem jeden Monat zu machen. Insbesondere wenn man unterwegs ist. Ach mist, da habe ich vergessen mein mobiles Netzwerk samt Raspberry Pi mitzunehmen 😛 Und dafür zahlt man auch noch nichts. Siehe Hinweis im Artikel.
Hallo Plath
Das einfachste ist hier, wenn Du mit einer Live-Linux-Cd arbeiten würdest (gparted, partedmagic, linux Mint, knoppix ….) dann kannst Du die Schritte auf
http://archlinuxarm.org/platforms/armv6/raspberry-pi
einfach nachvollziehen.
Hallo Jan,
super danke! Allerdings musste ich auch Partition 5 (/dev/mmcblk0p5) löschen, ansonsten konnte ich keine logische Partition erstellen….
Viele Grüsse
Andreas
…muss es dann nicht auch heißen „resize2fs /dev/mmcblk0p2“ und nicht 5 ?
Hast du unter Arch auch schon ein IR Sensor it LIRC oder ein LCD Display angeschlossen? Ich teste gerade runeaduio mit HiFiBerry.
Ich persönlich nutze Debian/Raspbian, da ich mich in dieser Umgebung deutlich besser auskenne.
Erst Passwort setzen, dann Tastaturlayout umstellen? Wie gemein… 😀
Das vergrößern der Partition mit fdisk hat bei mir die partition gelöscht.
ich habe das Image neu aufgespielt und dann direkt mit gparted von meinem PC aus die 2te Partition auf die Größe der SD-Karte angepasst.
das hat gut geklappt.
Ich habe nach der Installation das Problem, dass scheinbar keine Schreibrechte vorhanden sind.
[root@alarmpi ~]# makepkg
==> ERROR: You do not have write permission to create packages in /root.
Aborting…
ist das vielleicht auch ein Hinweis darauf?
[root@alarmpi boot]# mount
/dev/mmcblk0p5 on / type ext4 (ro,relatime,data=ordered)
Über Hilfe würde ich mich freuen.
Puh, root und nicht genug Rechte würde mir einzig chattr dazu einfallen. Unter dem Stichwort solltest du ausführlichere Informationen finden.
Danke für die schnelle Hilfe.
Ich habe gestern noch einen Hinweis gefunden der mir weitergeholfen hat.
„In cmdline.txt, add rw just before rootwait“
Danach hatte ich ein rw.
Könntest du noch package signing mit aufnehmen:
http://archlinuxarm.org/about/package-signing
Danke für den Hinweis, der Artikel wurde entsprechend ergänzt!
Hallo Jan,
man kann problemlos noch folgendes Image nutzen (Wenn man einen RPi 1 B oder B+ benutzt): http://downloads.raspberrypi.org/arch/images/arch-2014-06-22/
Leider bootet der Pi nach der Partitionierung nicht mehr. Auch wenn man die p5 löscht.
Hat jemand ne Idee woran das liegt und wie man das gefixt bekommt?
Ansonsten super Artikel
Gruß Markus
Das sollte auf allen Raspberry Pi 1 Modellen einwandfrei laufen, wenn du so wie im Artikel beschrieben vorgehst. Evl. ein Download-/Entpackfehler? Versuch dir das Image doch noch einmal herunterzuladen.
Ich habe das selbe Problem. Habe es mehrfach verucht um auszuschließen das es an mir liegt ….
raspi b+, 64gb microSDXC
normalerweise flackert ja die grüne LED des raspi, schon das passiert nicht
erneutes downloaden des image habe ich auch versucht, erfolglos
hat noch jemand eine Idee woran es liegen kann?
ich selber bin leider nicht sehr bewandert mit linux, genau deshalb habe ich mich für die distribution entschieden (lernen lernen lernen 🙂 )
mit raspbian weezy geht man nahezu den gleichen weg, erstellt aber eine logische partition und keine extended.
kann das problem hier liegen oder liegt das an den verschiedenen derivaten?
Update:
habe eine Lösung gefunden
Package-Signing habe ich weg gelassen
trotzdem konnte ich resize2fs nicht ausführen ….
folgender Befehl hat es dann ermöglicht:
mount -n -o remount -t Linux /dev/mmcblk0p5 /
Hallo, ich nochmal 😉
ich habe die gesamte Anleitung nochmal durchgespielt, hier die Änderungen die ich Vorgenommen habe:
– Nach Schritt 8 habe ich zwei Befehle honzu gefügt:
pacman-db-upgrade
systemctl daemon-reload
ersterer wird empfohlen, wenn man pacman -Syu ein zweites mal ausführen will, der zweite soll ausgeführt werden damit systemctl status haveged eine saubere ausgabe anzeigt.
– in Schritt 9 kann nach Erzeugung der extension kein l für logische partition eingegeben werden, diese auswahl wird automatisch getroffen
– zwischen reboot und resize2fs muss
mount -n -o remount -t Linux /dev/mmcblk0p5 /
eingegeben werden, sonst kommt man von dem alten kleinen image nicht weg
Ich hoffe die Bemerkungen helfen dem nächsten der sich völlig ohne Vorahnung an ein Linux ohne GUI rantrauen will 🙂
Noch an den Autor:
Vielen dank für diese Anleitung! Sie hat mir den Einstieg deutlich erleichtert und hat mich gleichzeitig dazu gezwungen mich mit diesem System auseinander zusetzen!
Wenn gewünscht können die Anmerkungen direkt in die Anleitung eingearbeitet werden, dann kann der Post hier auch weg 😉
Ich lasse deine Anregung einfach mal als Kommentar stehen, damit diese optional umgesetzt werden können 😉
Für all die bei denen der RasPi2 einfach nicht booten will: http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2
damit hats geklappt.
Hallo, ich habe folgendes Problem:
downgeloaded und mit Win32DiskImager installiert (ArchLinuxARM-2014.06-rpi.img)
Raspi bootet und kann mittels SSH bearbeitet werden (habe ich schon 4 mal durchgeführt –> frust…)
Nämlich nach dem pacman -Syu und anschliessendem reboot kann ich nicht mehr mit root root einloggen –> access denied kommt dann ( hatte das passwd noch nicht durchgeführt gehabt aber sonst alle anderen Schritte lt. der guten Beschreibung bis auf Partition ändern Step9 will ich erst später machen).
Während des updates kamen 2 oder 3 Fragen die ich mit y beantortet hatte alle Prozentangaben wurden mit 100% installiert.
Was nun? eine Idee? Habe die Raspi B Version.
Mit pacman -Syu führst du ein Update vom sshd (SSH-Daemon) durch. Dort haben sich die Default-Einstellungen geändert. Schließe einfach einen Monitor/Tastatur an dein RasPi an: jetzt kannst du dich einloggen. Dann die Datei /etc/ssh/ssh_config (oder so ähnlich) bearbeiten, z.B. mit nano. Dort gibt es eine auskommentierte Option namens PermitRootLogin. Diese musst du einfach auf yes setzen und den Kommentar natürlich entfernen, d.h. PermitRootLogin yes.
Anschließend die Datei speichern und mit systemctl restart sshd.service den Service neu starten (alternativ einfach rebooten). Danach müsste SSH mit dem root-User wieder gehen.
Hallo,
seit neuestem enthält die Latest-Version nur noch 2 Partitionen mmcblk0p1 und mmcblk0p2. Die Schritte sind eigentlich identisch, d.h. mit fdisk die 2. Partition löschen und wieder neu erstellen (primär!). Dabei sind die Default-Werte für Start/Ende schon richtig. Alles andere funktionierte bei mir nicht, leider.
Hallo
Erst mal vielen Dank für die tollen tuturuials. Also ich hatte bis vor kurzem noch raspberrian auf meinen PI irgendwann wollte ich mal Linux ausprobieren und so bin ich hier gelandet aber ich komme nur so weit das ich das image auf die sd karte geschrieben habe denn wenn ich die sd Karte in den PI stecke startet er nicht hat aber strom, ich weiß das es sehr schwer mit dieser durftigen beschreibung aber hättest du irgendeine Idee?
Christian
ich entschuldige mich für diese Rechtschreibung schon mal
Hallo Jan
schönes Tutorial nur ist deine Quelle des Images total veraltet, solltest diese mal austauschen zu http://de5.mirror.archlinuxarm.org/os/ die ist meistens aktueller als die von raspberrypi.org 😉
Noch ein Hinweis.
Nachdem man ein Update aller Pakete durchfgeführt hat, kann man sich nicht mehr als root einloggen.
Man muss erst in der
/etc/ssh/sshd_config
den Zugriff wieder erlauben:
PermitRootLogin no
Noch ne Frage dazu:
was muss denn bei
PermitRootLogin nun stehen?
no – keine Erlaubnis – Anmeldung nicht möglich
yes – Anmeldung als root möglich, aber keine Schreibrechte
Original steht dort
# PermitRootLogin prohibit-password
Hi,
ich bin wieder auf Debian geswitcht..aber trotzdem
Aber du musst „yes“ eingeben, weil du dich sonst vom System ausgesperrt hast.
Kann auch sein, dass es geht, wenn man vorher nen anderen User anlegt und sich mit dem einloggt.
Das wurde bei Arch geändert aus Sicherheitsgründen …. ich hab mich auch erst mal ausgesperrt 😉
Schreibrechte hast du doch trotzdem. Wo steht denn, dass du als root keine Schreibrechte haben sollst?
Viel Erfolg
Tamara
Also irgend was mach ich noch falsch
Aber was?
weil mit PermitRootLogin yes
erhalte ich:
———————————–
Last login: Mon Mar 13 20:24:26 2017 from 10.0.0.48
[root@alarmpi ~]# mkdir /home/motion
mkdir: cannot create directory ‚/home/motion‘: Read-only file system
[root@alarmpi ~]#
———————————–
Hast du noch ne Idee?
Gruß
Armin
Also eigentlich solltest du als root vollen Zugriff haben.
Schreib mal noch ein „sudo“ davor.
Wobei die Fehlermeldung schon komisch ist. Ein „permission denied“ würde ich noch verstehen.
Aber warum das filesystem nur read-only gemountet sein sollte ist mir nicht ganz klar.
Mal offen gefragt: Brauchst du Arch? Sonst gehst eben auch auf Raspian. Ist auf debian gebaut und finde ich deutlich stabiler. Hast auch ne grössere Community die helfen kann.
Tamara
Hab das Image über Mac mithilfe von etcher rübergezogen(16 GB SD class 10)
Aber der Raspberry bootet nicht.
Woran könnte das liegen?
Vielen Dank im Voraus 👍🏻