Raspberry Pi 2 ausprobiert: Installation von Archlinux mit LXQT

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:

#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…

3 Gedanken zu „Raspberry Pi 2 ausprobiert: Installation von Archlinux mit LXQT

    1. 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.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.