Ich habe eine neue SD-Card in meinen Raspberry Pi geschubst und wollte mal eine frische Archlinux-Installation raufspielen.
Vorerst wollte ich nur LXQt und Kodi installieren, nun ist doch eine nahezu komplette Desktopumgebung daraus geworden. Und so bin ich vorgegangen:
- SD-Card mit einem laufenden Linux-Rechner vorbereiten
(Quelle: http://archlinuxarm.org/platforms/armv7/broadcom/raspberry-pi-2)
#in einen Linux-Rechner SDcard einstecken und #Device der SD-Card herausfinden sudo blkid #oder sudo lsblk #unmounten (hier im Beispiel /dev/sdi) alle Parition unmounten, SD-Card nicht auswerfen! sudo umount /dev/sdi1 #falls mehrere Partitionen vorhanden, Beispiel für Partition Nr.1 und Nr.2 sudo umount /dev/sdi{1,2}
- partitionieren und Formatieren
ACHTUNG! Alle Daten werden gelöscht!!!
WICHTIG: Device /dev/sdX (im Beispiel X=i) muss dem gefundenen Device-Namen entsprechen!!!
#SD-Card /dev/sdi partitionieren, vorhandene Partitionen aushängen s. oben sudo fdisk /dev/sdi #Im Programm fdisk, lösche alte Partitionen und erstelle zwei neue: # Drücke o. um alle Partitionen zu löschen. # Drücke p um vorhandene Partitionen anzuzeigen, es sollten keine mehr da sein. # Drücke n, dann p für primary, 1 für die erste Partition auf der SD-Card, drücke ENTER für den Standard-Startsektor, gib +100M ein für den letzten Sektor. # Drücke t, dann c um den Typ der ersten Partition auf W95 FAT32 (LBA) zu setzen. # Drücke n, dann p für primary, 2 für die zweite Partition auf der SD-Card, und dann ENTER+ENTER um ersten und letzten Standardwert zu akzeptieren. # Drücke w, um Partitionstabelle zu schreiben und fdisk zu beenden. #formatieren sudo mkfs.vfat /dev/sdi1 sudo mkfs.ext4 /dev/sdi2 #installieren mkdir mnt sudo mount /dev/sdi2 mnt sudo mkdir mnt/boot sudo mount /dev/sdi1 mnt/boot wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz sudo bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C mnt rm ArchLinuxARM-rpi-2-latest.tar.gz sync sudo umount mnt/boot mnt rmdir mnt
- Raspberry Pi mit der SD-Card starten (2,5V+network)
#ARCHLINUX Login root:root #oder ARCHLINUX ssh ssh alarm@alarmpi #password: alarm su #password: root
- erster Start – Standardeinstellungen
loadkeys de #set hostname hostnamectl set-hostname raspbpi2 #hostnamectl erweitert hostnamectl set-icon-name 'tobis raspberry pi2' hostnamectl set-chassis 'desktop' #/etc/locale.gen einstellen entkommentieren: de_DE.UTF-8 UTF-8 #to comment de_DE.UTF-8 UTF-8 out: sed -i 's/.\(de_DE.UTF-8*.\)/\1/g' /etc/locale.gen #to comment en_US.UTF-8 UTF-8 in: sed -i 's/en_US.UTF-8.*/#&/g' /etc/locale.gen #festlegen localectl set-locale LANG=de_DE.UTF-8 localectl set-keymap de locale-gen #Zeit timedatectl set-timezone Europe/Berlin timedatectl set-local-rtc false #Zeit überprüfen timedatectl status systemctl status systemd-timesyncd #ODER mit journalctl journalctl -u systemd-timesyncd.service
- Paketmanager einrichten
pacman -S archlinux-keyring pacman-key --init pacman-key --populate archlinux #pacman einrichten nano /etc/pacman.d/mirrorlist #--> entkommentiere die gewünschten Spiegelserver z.B. aus Deutschland #CTRL-X = beenden pacman -Scc pacman -Sy pacman -S wget rsync xdelta3 nano /etc/pacman.conf #-->/etc/pacman.conf bearbeiten UseDelta = 0.7 # Misc options Color TotalDownload ILoveCandy #<-- #!System aktualisieren pacman -Syu
- wichtige Systemeinstellungen
#FIX boot/config.txt cat /boot/config.txt | grep gpu #Ausgabe: gpu_mem=64 #auf gpu_mem=320 ändern+USB Stromversorgung sicherstellen nano /boot/config.txt #--> gpu_mem=320 #s. auch http://www.htpcguides.com/power-2-5-hard-drive-with-raspberry-pi-b/ #für die Stromversorgung des USB-Ports max_usb_current=1 #<-- #optional etwas übertakten #--> Medium Overclocking auskommentieren ##Modest arm_freq=800 core_freq=300 sdram_freq=400 over_voltage=0 #<-- #NEUSTART reboot
- User einrichten
#OPTIONAL User "alarm" mit der UID=1000 löschen #USER alarm löschen nicht über ssh möglich!!! #über Bildschirm (tty) als root anmelden, password: root userdel -rf alarm #USER einrichten (mit gelöschtem "alarm") useradd -m -G wheel -u 1000 -s /bin/bash tobi #ohne USER alarm löschen, mit alarm über ssh anmelden #direkt mit root über ssh anmelden wird (richtigerweise) blockiert ssh alarm@raspbpi2 #password: alarm su #password: root #USER "tobi" einrichten (ohne gelöschtem "alarm") useradd -m -G wheel -s /bin/bash tobi #Passwort für neuen USER vergeben passwd tobi #optional Gruppen vergeben (je nach Bedarf) usermod -aG games,rfkill,users tobi usermod -aG storage,network,video,audio,power,log tobi usermod -aG systemd-journal tobi #für bluetooth usermod -aG lp tobi #für kodi zusätzlich usermod -aG uucp,lock tobi #SUDO pacman -S sudo EDITOR=nano visudo #->## Uncomment to allow members of group wheel to execute any command %wheel ALL=(ALL) ALL #<--
- Neustart ohne graphische Oberfläche, Anmeldung als neuer User
#NEUSTART+login als tobi ssh tobi@raspbpi2 #Passwort: wie oben vergeben #Message-of-the-day löschen oder ändern sudo nano /etc/motd #BASH helper sudo pacman -S bash-completion #SCREEN sudo pacman -S screen #HTOP sudo pacman -S htop lsof strace #MC sudo pacman -S mc sudo pacman -S unace unarj unrar zip p7zip mtools cabextract #AUR helpers (für Arch User Repositories) #nur wichtig für (AUR)-Pakete (s. unten) #base-devel = develop Voraussetzungen (14 von 25 Paketen schon installiert gewesen) sudo pacman -S abs base-devel #packer wget https://aur.archlinux.org/cgit/aur.git/snapshot/packer.tar.gz tar zxvf packer.tar.gz cd packer makepkg -sif cd .. sudo rm -R packer
- Desktop installieren
##DESKTOP #X-org und Grafiktreiber sudo pacman -S xorg-server xf86-video-fbdev xorg-xrefresh #LXQT sudo pacman -S lxqt oxygen-icons ##DISPLAY-MANAGER # 1. Variante SDDM # (empfohlen für lxqt, schick aber etwas langsam auf dem RaspbPi2) sudo pacman -S sddm sudo sh -c "sddm --example-config > /etc/sddm.conf" #verfügbare SDDM themes auflisten ls /usr/share/sddm/themes/ #SDDM konfigurieren (optional) #ich habe die Standardeinstellungen belassen sudo mcedit /etc/sddm.conf #--> [Theme] # Current theme name Current=maui #<-- #Display-Manager starten sudo systemctl start sddm sudo systemctl enable sddm # 2a. Variante lightDM mit gtk-greeter # (geht flotter als sddm, reicht völlig, etwas altbacken) sudo pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings #greeter suchen ls -l /usr/share/xgreeters/ #konfigurieren (mit mcedit) sudo mcedit /etc/lightdm/lightdm.conf #--> [Seat:*] greeter-session=lightdm-gtk-greeter #<-- F10=beenden #greeter konfigurieren sudo mcedit /etc/lightdm/lightdm-gtk-greeter.conf #--> background=#000000 #<-- F10=beenden # 2b. Variante lightDM mit kde-greeter #(schick, simpel, leider viele KDE-Abhängigkeiten ca.200MB) sudo pacman -S lightdm lightdm-kde-greeter #KDE-greeter einstellen #konfigurieren (mit mcedit) sudo mcedit /etc/lightdm/lightdm.conf #--> [Seat:*] greeter-session=lightdm-kde-greeter #<-- F10=beenden # 2. lightDM Display-Manager starten und für Neustart aktivieren sudo systemctl start lightdm sudo systemctl enable lightdm # X-Server keymap setzen (generieren von /etc/X11/xorg.conf.d/00-keyboard.conf) sudo localectl set-x11-keymap de # keymaps anzeigen localectl status #optional: Tastaturmodell einstellen (Beispiel: Logitech Cordless Desktop) #Möglichkeiten auflisten: localectl list-x11-keymap-layouts localectl list-x11-keymap-models | grep logitech localectl list-x11-keymap-variants de localectl list-x11-keymap-options #nähere Beschreibung der Models, Varianten und Optionen cat /usr/share/X11/xkb/rules/evdev.lst | grep Logitech cat /usr/share/X11/xkb/rules/base.lst | grep de: cat /usr/share/X11/xkb/rules/base.lst #einstellen: set-x11-keymap LAYOUT [MODEL [VARIANT [OPTIONS]]] sudo localectl set-x11-keymap de logicd nodeadkeys terminate:ctrl_alt_bksp
- Netzwerkdienste und Policies anpassen
##NETWORK für graphische Tools / Network-Manager #networkmanager sudo pacman -S networkmanager dhclient #polkit-Rechte für group network #als root (standard-password = root) oder " mit \" maskieren su echo 'polkit.addRule(function(action, subject) { if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("network")) { return polkit.Result.YES; } }); ' > /etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules exit #Dienste überprüfen systemctl --type=service -a systemctl is-enabled systemd-networkd sudo systemctl stop systemd-networkd sudo systemctl disable systemd-networkd sudo systemctl start NetworkManager sudo systemctl enable NetworkManager #submit hostname über dhclient sudo sh -c 'echo "send host-name = pick-first-value(gethostname(), \"ISC-dhclient\");" > /etc/dhclient.conf' #überprüfen sudo cat /etc/dhclient.conf #WIRELESS NETWORK vorbereiten (falls vorhanden) #wireless tools sudo pacman -S iw #configure netdev - regulatory domain dmesg | grep cfg80211 sudo pacman -S crda wireless-regdb sudo iw reg set DE sudo iw reg get sudo nano /etc/conf.d/wireless-regdom #-->auskommentieren WIRELESS_REGDOM="DE" #<- #NetworkManager-Applet (zur Wifi-Konfiguration in LXQT) sudo pacman -S network-manager-applet gnome-keyring gnome-icon-theme #STORAGE policy für automatisches Einhängen #geht nur mit root, sonst nano benutzen #als root (standard-password = root) su echo 'polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("storage")) { return polkit.Result.YES; } }); ' > /etc/polkit-1/rules.d/10-enable-mount.rules exit #SSH (etwas) konfigurieren sudo mcedit /etc/ssh/sshd_config #--> Namensauflösung anschalten UseDNS yes #<-- #NEUSTART sudo reboot
- weitere Programme installieren
#wieder LOGIN ssh tobi@raspbpi2 #Pulseaudio (Sound) sudo pacman -S pulseaudio pavucontrol sudo pacman -S pulseaudio-alsa libcanberra-gstreamer #CODECS sudo pacman -S gstreamer0.10-plugins gst-libav gst-vaapi sudo pacman -S gst-plugins-good gst-plugins-ugly #LXQT Extras sudo pacman -S lxappearance obconf leafpad sudo pacman -S gksu gvfs gvfs-afc gvfs-smb gvfs-gphoto2 gvfs-mtp gvfs-nfs #more packages sudo pacman -S xscreensaver lxtask #optional dependencies of lxqt-panel sudo pacman -S libsysstat libstatgrab kguiaddons #(AUR) Terminal für LXQt ('armv7h' ergänzen, s. Notizen) packer -S qterminal #(AUR) PDF-Viewer für LXQt ('armv7h' ergänzen, s. Notizen) packer -S qpdfview #weitere nützliche Desktop-Programme sudo pacman -S xarchiver gpicview lxmusic #fehlende Packprogramme (optionale Abhängigkeiten von xarchiver) sudo pacman -S unarj lzop cpio #Kodi (ehemals XBMC) sudo pacman -S kodi-rbp kodi-rbp-eventclients kodi-addons #optional afpfs-ng: Apple shares support sudo packer -S afpfs-ng #udev-Regeln für Tastatur-Benutzung in kodi sudo sh -c 'echo "SUBSYSTEM==\"tty\", KERNEL==\"tty[0-9]\", GROUP=\"tty\", MODE=\"0660\"" > /etc/udev/rules.d/51-udev-tty.rules' sudo usermod -aG tty tobi #Firefox sudo pacman -S firefox-i18n-de #Thunderbird sudo pacman -S thunderbird-i18n-de #NTFS-support sudo pacman -S ntfs-3g #exFAT/FAT sudo pacman -S exfat-utils fuse-exfat sudo pacman -S dosfstools #BTRFS sudo pacman -S btrfs-progs #Fonts sudo pacman -S ttf-freefont ttf-oxygen xorg-fonts-{100,75}dpi #(AUR) packer -S ttf-ms-fonts #font cache update fc-cache -v -f
Was bisher nicht klappt, mich aber nicht stört:
- — jetzt nichts mehr —
Was bisher nicht klappt, mich aber stört:
- — jetzt auch nichts mehr (na gut, sddm ist langsam: habe lightDM wieder installiert) —
Notizen
Problembehandlung für Archlinux:
- Downgrade von Paketen (Beispiel Kodi)
#(AUR) downgrade packer -S downgrade downgrade kodi-rbp
Falls das Paket nicht schon installiert war, also nicht im Cache vorhanden ist oder gelöscht wurde, braucht ihr die alte Paketdatei. Sie muss für das downgrade-script an folgende Stelle kopiert werden:
sudo mv kodi-rbp-15.0-2-armv7h.pkg.tar.xz /var/cache/pacman/pkg/kodi-rbp-15.0-2-armv7h.pkg.tar.xz
- Installation von (AUR) -Paketen mit packer gibt folgende Warnung aus:
warning: armv7h missing from arch array Edit qpdfview PKGBUILD with $EDITOR? [Y/n] Y
die PKGBUILD bearbeiten und folgende Zeile mit ‚armv7h‘ vervollständigen:
arch=(‘i686’ ‘x86_64’ ‘armv7h’)
Sollte der Standard-Editor vi zu kompliziert sein, kann man temporär den Editor ändern:
EDITOR=nano packer -S qpdfview
to be continued…
Wie hast du qpdfview installiert? Ich bekomme die meldung, dass ‚armv7h‘ als Archidetkur nicht unterstützt wird….
Hi sensslen,
ja, den Hinweis wollte ich noch ergänzen:
Die AUR-Pakete werden aus dem Sourcecode kompiliert. Der Ersteller der PKGBUILD-Datei entscheidet, für welche Prozessorachitektur das Programm kompiliert werden kann. Meistens wird jedoch „armv7h“ in der Liste vergessen.
Du musst es einfach während der Installation nachtragen. Versuche Folgendes:
EDITOR=nano packer -S qpdfview
Die Bearbeitung der PKGBUILD mit „Y“ einleiten und armv7h in folgender Zeile ergänzen:
arch=(‚i686‘ ‚x86_64‘ ‚armv7h‘)
Abspeichern+Weiterinstallieren.
Noch ein Sinnvolles Paket das dieses Vorgehen erfordert ist „qterminal“. Werde ich noch im Artikel hinzufügen.
Vielen Dank für die Antwort! Hat super funktioniert!