Tipps für Arch Linux
Inhaltsverzeichnis
Warum Arch Linux?
Vorteile:
Allerdings sollte man die Nachteile auch nicht verschweigen:
-
Durch die fertigen Binärpakete verliert man etwas an
Flexibilität und installiert in der Regel Paket-Abhängigkeiten,
die man nicht benötigen würde.
-
Arch Linux unterstützt nur noch x86_64, also leider keine
alten Rechner ohne 64 Bit mehr.
-
Am 1.10.2022 bin ich mit meinem Laptop von Gentoo auf Arch
umgestiegen.
Download:
Arch Linux
Downloads
Das ISO Image nach dieser Anleitung z.B. auf einen USB Stick schreiben:
cat path/to/archlinux.iso > /dev/sdx
Installation nach Kurzfassung des
Installation Guide:
loadkeys de-latin1
passwd
systemctl start sshd
# Rest geht dann auch remote
bash
bind 'set enable-bracketed-paste off'
which vi &>/dev/null || alias vi=vim
ping -c 3 archlinux.org
timedatectl set-ntp true
timedatectl status
Mit fdisk die Partitionen für Boot, Swap und LVM anlegen, z.B.:
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 411647 409600 1G 83 Linux
/dev/sda2 411648 19286015 18874368 9G 82 Linux swap / Solaris
/dev/sda3 19286016 312581807 293295792 139.9G 83 Linux
# ACHTUNG: Darauf achten, dass die Partitions-Tabelle DOS und nicht
GPT ist!
mkfs.ext3 /dev/sda1
e2label /dev/sda1 BOOT
mkswap -L SWAP /dev/sda2
swapon -L SWAP
mkfs.ext4 /dev/sda3
e2label /dev/sda3 ROOT
tune2fs -c 0 /dev/sda3
tune2fs -i 400d /dev/sda3
mount -L ROOT /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
reflector --verbose --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
pacman -Sy
pacman -S archlinux-keyring
pacstrap /mnt base linux linux-firmware dosfstools e2fsprogs mdadm lvm2
iproute2 dhcpcd vim man-db man-pages grub intel-ucode openssh
genfstab -L /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab
echo fstab >> /mnt/etc/CHANGED-FILES
arch-chroot /mnt
alias vi=vim
echo 'set mouse=' >> ~/.vimrc
echo 'set ignorecase' >> ~/.vimrc
echo .vimrc >> ~/CHANGED-FILES
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
echo localtime >> /etc/CHANGED-FILES
hwclock --systohc
echo -ne "de_DE.UTF-8 UTF-8\nde_DE ISO-8859-1\nde_DE@euro ISO-8859-15\nen_US.UTF-8 UTF-8\nen_US ISO-8859-1\n" > /etc/locale.gen
echo locale.gen >> /etc/CHANGED-FILES
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
echo locale.conf >> /etc/CHANGED-FILES
echo "KEYMAP=de-latin1" > /etc/vconsole.conf
echo vconsole.conf >> /etc/CHANGED-FILES
echo "x2" > /etc/hostname
echo hostname >> /etc/CHANGED-FILES
vim /etc/mkinitcpio.conf
MODULES=(dm-raid raid0 raid1 raid10 raid456 virtio virtio_blk
virtio_pci virtio_net pata_atiixp)
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap block lvm2 mdadm_udev filesystems fsck)
echo mkinitcpio.conf >> /etc/CHANGED-FILES
mkinitcpio -P
passwd
grub-install --target=i386-pc /dev/sda
# Für LVM und RAID:
vim /etc/default/grub
### GRUB_PRELOAD_MODULES="... lvm mdraid09 mdraid1x"
echo grub >> /etc/default/CHANGED-FILES
grub-mkconfig -o /boot/grub/grub.cfg
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo sshd_config >> /etc/ssh/CHANGED-FILES
systemctl enable sshd
systemctl enable dhcpcd
Einstellen, dass Newline beim Cut+Paste ausgeführt wird:
echo 'set enable-bracketed-paste off' >> /etc/inputrc
echo inputrc >> /etc/CHANGED-FILES
exit
umount -R /mnt
reboot
Bis zu dieser Stelle belegt das Arch Linux nur knapp 2 GB Plattenplatz!
# CPU Microcode update prüfen:
dmesg | grep microcode
Installieren:
pacman -S pkgstats
pacman -S reflector
reflector --verbose --latest 5 --sort rate --save /etc/pacman.d/mirrorlist
# Xorg und
Intel_graphics installieren:
pacman -S xorg-server xorg xorg-apps xf86-video-intel mesa
# Xfce
installieren:
pacman -S xfce4 xfce4-goodies
# Für z.B. ZIP-Archive im Thunar:
pacman -S file-roller
# Einen Display Manager
z.B.
LXDM
installieren und aktivieren:
pacman -S lxdm
systemctl enable lxdm.service
nano /etc/lxdm/lxdm.conf
# Zeile hinzufügen: session=/usr/bin/startxfce4
systemctl start lxdm.service
User anlegen:
useradd loescher -m -c 'Stephan Loescher' -u 500
passwd loescher
Einen AUR Helper installieren:
pacman -S git
pacman -S --needed base-devel
vim /etc/makepkg.conf
# MAKEFLAGS="-j2"
echo 'loescher ALL=NOPASSWD:ALL' >> /etc/sudoers
su - loescher
cd /tmp
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
# Falls hier ein Compile-Fehler kommt, einfach: pacman -S glibc
Dann noch zusätzliche Software nach Bedarf:
pacman -S net-tools
pacman -S wireless_tools
# für pacdiff:
pacman -S pacman-contrib
pacman -S cronie
systemctl enable cronie
systemctl start cronie
pacman -S rsync
pacman -S inetutils
pacman -S bash-completion
pacman -S gnu-netcat
pacman -S netperf
pacman -S strace
pacman -S ethtool
pacman -S screen
pacman -S alsa-utils
pacman -S dmidecode
pacman -S usbutils
pacman -S subversion
pacman -S sudo
pacman -S lsof
pacman -S pciutils
pacman -S nfs-utils
Dann noch ein paar typische Desktop-Programme nach Belieben:
pacman -S firefox
pacman -S thunderbird
pacman -S libreoffice
pacman -S libreoffice-de
pacman -S tigervnc
pacman -S mpg123
pacman -S mplayer
pacman -S gimp
pacman -S dvd+rw-tools
pacman -S pwgen
pacman -S p7zip
pacman -S unrar
pacman -S fdupes
pacman -S a2ps
pacman -S evince
pacman -S meld
pacman -S texlive-most
# Suchen nach Zusatz-Paketen, z.B.:
# tlmgr info german | grep collection
# Also:
pacman -S texlive-langgerman
pacman -S cvs
pacman -S mercurial
pacman -S frozen-bubble
pacman -S ttf-droid
pacman -S libertinus-font
pacman -S ttf-dejavu
pacman -S font-bh-ttf
pacman -S ttf-bitstream-vera
pacman -S bdf-unifont
pacman -S noto-fonts ttf-croscore ttf-ibm-plex ttf-liberation
pacman -S digikam
pacman -S imagemagick
pacman -S audacious
pacman -S audacity
pacman -S cdparanoia
pacman -S mp3info
pacman -S sox
pacman -S timidity
pacman -S vorbis-tools
pacman -S ffmpeg
pacman -S mjpegtools
pacman -S rtmpdump
pacman -S vlc
pacman -S xine-ui
# https://wiki.archlinux.org/title/Hardware_video_acceleration
pacman -S libvdpau-va-gl
pacman -S libva-utils
pacman -S libva-intel-driver
# check: vainfo
pacman -S traceroute
pacman -S bind-tools
pacman -S nfs-utils
pacman -S samba
pacman -S ncftp
pacman -S fetchmail
pacman -S iperf3
pacman -S aircrack-ng
pacman -S kismet
pacman -S stellarium
pacman -S ethtool
pacman -S encfs
pacman -S htop
pacman -S iotop
pacman -S qemu
pacman -S xf86-video-qxl
pacman -S gdb
pacman -S wavemon
pacman -S xorg-xwininfo
pacman -S uudeview
pacman -S gv
pacman -S openvpn
pacman -S xsane
pacman -S clamav
pacman -S gnuchess
pacman -S pysolfc
pacman -S mdadm
# Für Aktivierung des mdadm-Monitoring muss in /etc/mdadm.conf in
MAILADDR eine Mail-Adresse (z.B. "root") eingetragen werden!
# Testen mit: mdadm --monitor --scan --oneshot --test
# Siehe: RAID - Email notifications
pacman -S dosfstools
pacman -S knights
pacman -S xorg-xdpyinfo
pacman -S hdparm
pacman -S xorg-xvinfo
pacman -S x11vnc
pacman -S xorg-twm
pacman -S netpbm
pacman -S memtest86+
pacman -S beep
# johntheripper
pacman -S john
pacman -S nmon
pacman -S exfat-utils
pacman -S cpupower
pacman -S urlwatch
pacman -S wifite macchanger wireshark-cli hcxtools hcxdumptool pyrit
# Aufruf: wifite --random-mac --kill
pacman -S powertop
pacman -S mediathekview
pacman -S xterm
pacman -S yt-dlp
# lm-sensors:
pacman -S i2c-tools
pacman -S lynx
# Voraussetzungen für Firefox::Marionette:
yay -S perl-text-csv-xs
pacman -S perl-perlio-utf8-strict perl-params-util perl-xml-parser
perl-text-csv
cpan Firefox::Marionette
pacman -S extra/perl-net-ssleay
pacman -S pandoc
pacman -S lftp
# Bildschrim-Helligkeit per Kommandozeile verstellen:
pacman -S xdotool
# xdotool key XF86MonBrightnessUp
# xdotool key XF86MonBrightnessDown
# ggf. SSD trim aktivieren,
siehe: Solid
state drive - TRIM
systemctl enable fstrim.timer
pacman -S icecast
pacman -S minidlna
pacman -S apache
pacman -S unclutter
pacman -S xorg-xinit
pacman -S unzip
pacman -S ntfs-3g
pacman -S nmap
pacman -S ddrescue
pacman -S python-html2text
# Alle Pakete mittels yay...
yay -S perl-time-parsedate
yay -S mmv
yay -S sxemacs
yay -S gqview
yay -S freefonts
yay -S artwiz-fonts
yay -S ttf-symbola
yay -S exiftags
yay -S xv
yay -S streamripper
yay -S wavbreaker
yay -S linuxtv-dvb-apps
yay -S w_scan2
yay -S dvbsnoop
yay -S dvdrip
yay -S wakeonlan
yay -S xfe
yay -S icaclient
yay -S unetbootin
yay -S jmtpfs
yay -S webex-bin
yay -S aur/teams
### TODO (compile-error): yay -S email
yay -S google-earth-pro
yay -S ssvnc-nojava
# Bildschirm per Web-Browser teilen:
yay -S deskreen-bin
# um DICOM Dateien in PNG zu wandeln:
yay -S xmedcon
# medcon -c png -f D9297517
# oder: yay -S aeskulap
yay -S ezstream
yay -S perl-net-sip
yay -S perl-text-similarity
yay -S cddb_get
# SeaTools - Seagate tool for managing hard drives:
yay -S seatools
# for f3probe, f3write, f3read, etc.
yay -S f3
yay -S sdd
Wenn man Linux-Dateinamen mit Sonderzeichen auf NTFS schreiben will,
dann muß die mount Option "windows_names" entfernt werden.
Lösung: Eintrag in /etc/udisks2/mount_options.conf:
[defaults]
ntfs_defaults=uid=$UID,gid=$GID
Das verhindert auch die Fehlermeldung: ntfs3: Unknown parameter 'windows_names'
Mailing einrichten:
pacman -S s-nail
pacman -S postfix
Weiter mit: Postfix: Mail-Client.
SMART-Mon einrichten:
pacman -S smartmontools
vi /etc/smartd.conf und das eintragen:
# DEVICESCAN -a -m root -M test
# wenn OK, dann kann man das "-M test" wieder entfernen
echo smartd.conf >> /etc/CHANGED-FILES
systemctl enable smartd.service
systemctl start smartd.service
IBM TrackPoint Einstellungen setzen:
ln -s /usr/sl/X11/20-thinkpad-trackpoint.conf /etc/X11/xorg.conf.d/
echo 20-thinkpad-trackpoint.conf >> /etc/X11/xorg.conf.d/CHANGED-FILES
Lautstärketasten? Lösung war irgendwas davon:
Keyboard volume buttons:
pacman -S pulseaudio-alsa
pacman -S pavucontrol
pacman -S xfce4-pulseaudio-plugin
Nacharbeiten (einmalig):
mkdir -p /usr/sl
cd /usr/sl
svn co svn://server/sl/trunk/bin .
# Lokale Profil-Erweiterungen:
ln -s /usr/sl/profile.local /etc/profile.d/zz-profile.local.sh
echo zz-profile.local.sh >> /etc/profile.d/CHANGED-FILES
# Backup-Skript anlegen:
cp backup-VORLAGE backup-neuer_rechner
vi backup-neuer_rechner
svn add backup-neuer_rechner
svn ci -m ''
Historisch notwendige Links legen:
cd /usr/local/bin
ln -s /usr/sl/Remote*.pm /usr/sl/slmini.pm /usr/sl/slutil.pm .
Als Root eine ~/.crontab anlegen:SHELL=/bin/bash
PATH=/usr/sl:/usr/local/bin/:/bin:/usr/bin
# /tmp zu jeder vollen Stunde aufräumen
# Dauer: 1 min.
0 * * * * /usr/sl/clean-tmp
# /delwatch zu jeder halben Stunde aufräumen
# Dauer: 1 min.
30 * * * * /usr/sl/clean-delwatch
0 1 1 * * /bin/echo Mailfunktionstest
und dann per crontab ~/.crontab aktivieren.
echo .crontab >> ~/CHANGED-FILES
Für Notebooks (siehe: Power management with systemd):
Verhindern, dass beim Deckel-Schließen ein Suspend gemacht wird:
vi /etc/systemd/logind.conf
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
Einstellen/Anzeigen des
CPU frequency scaling:
cpupower frequency-info
Oder den Governor wechseln:
cpupower frequency-set -g ondemand
# zurück auf Standard:
cpupower frequency-set -g schedutil
# Empfehlenswert, weil der noch öfter heruntertaktet:
cpupower frequency-set -g conservative
Permanent eintragen in /etc/default/cpupower:
governor='conservative'
# Dann:
systemctl enable cpupower
systemctl start cpupower
Ergebnis anschauen:
watch cat
/sys/devices/system/cpu/cpu[0-9]*/cpufreq/scaling_cur_freq
Dann kann man sich noch Powertop
anschauen.
Für Suspend-To-Disk (Hibernate) in /etc/default/grub in
GRUB_CMDLINE_LINUX_DEFAULT die Swap-Partition, also
z.B. resume=/dev/sda3 eintragen und
grub-mkconfig -o /boot/grub/grub.cfg
echo grub >> /etc/default/CHANGED-FILES
Für Unterstüztung von IBM/Lenovo Laptops, siehe:
Archlinux-Wiki Lenovo
Für WLAN:
Siehe: WLAN einrichten.
Und:
pacman -S wpa_supplicant
vi /etc/wpa_supplicant/wpa_supplicant-wls1.conf
systemctl enable wpa_supplicant@wls1.service
systemctl start wpa_supplicant@wls1.service
Tipp für den Fehler "Wifi/WLAN rfkill hard blocked" auf einem Medion
MD96360 SAM2010
nach ubuntuusers -
rfkill:
Notebook ins BIOS Setup booten, den Hardware WLAN Taster
drücken, BIOS Setup mit speichern verlassen.
Damit bleibt das WLAN dauerhaft beim Booten aktiviert.
Grundlagen Netzwerk-Konfiguration:
Arch
- Network configuration
Für z.B. einen Server eine statische IP-Adresse einstellen:
Static IP Configuration in Arch Linux
cat << EOF > /etc/systemd/network/20-wired.network
[Match]
Name=ens3
[Network]
Address=192.168.178.250/24
Gateway=192.168.178.1
DNS=192.168.178.1
EOF
echo '*' >> /etc/systemd/network/CHANGED-FILES
systemctl enable systemd-networkd.service
systemctl enable systemd-resolved.service
systemctl disable dhcpcd
systemctl stop dhcpcd
systemctl start systemd-networkd.service
systemctl start systemd-resolved.service
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
resolvectl status
resolvectl query archlinux.org
networkctl
Oder in der Regel besser das Netzwerk mit
systemd-networkd
und
Bonding zwischen LAN und WLAN
einrichten:
vi /etc/systemd/network/30-bond0.netdev
[NetDev]
Name=bond0
Kind=bond
[Bond]
Mode=active-backup
PrimaryReselectPolicy=always
MIIMonitorSec=1s
vi /etc/systemd/network/30-ethernet-bond0.network
[Match]
Name=enp0s25
[Network]
Bond=bond0
PrimarySlave=true
vi /etc/systemd/network/30-wifi-bond0.network
[Match]
Name=wls1
[Network]
Bond=bond0
vi /etc/systemd/network/30-bond0.network
[Match]
Name=bond0
[Network]
DHCP=ipv4
echo '*' >> /etc/systemd/network/CHANGED-FILES
systemctl enable systemd-networkd.service
systemctl enable systemd-resolved.service
systemctl disable dhcpcd
systemctl stop dhcpcd
systemctl start systemd-networkd.service
systemctl start systemd-resolved.service
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
resolvectl status
resolvectl query archlinux.org
networkctl
Deutsche Tastatur und deaktiviertes CAPSLOCK unter X11:
ln -s /usr/sl/X11/00-keyboard.conf /etc/X11/xorg.conf.d/
echo 00-keyboard.conf >> /etc/X11/xorg.conf.d/CHANGED-FILES
Drucker einrichten, siehe:
Drucker-Konfiguration mit CUPS.
pacman -S cups
systemctl enable cups
systemctl start cups
NTP/Chrony/systemd-timesyncd:
cat << EOF > /etc/systemd/timesyncd.conf
[Time]
NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org
EOF
echo 'timesyncd.conf' >> /etc/systemd/CHANGED-FILES
timedatectl set-ntp true
timedatectl status
timedatectl timesync-status
Damit ALSA/Sound auch für remote Benutzer funktioniert, muss man den Benutzer in die Gruppe audio aufnehmen!
pacman -S pulseaudio pulseaudio-alsa
VDR einrichten, siehe z.B.:
Notebook-HDTV-VDR
Persönliche Einstellungen:
In ~/.bashrc:
. /etc/profile
Persönliche Dateien:
echo 'set mouse=' >> ~/.vimrc
echo 'set ignorecase' >> ~/.vimrc
echo .vimrc >> ~/CHANGED-FILES
su -
mkdir /woall
cd /woall
svn co svn://server/sl/trunk/woall .
cd /etc/sudoers.d
mkdir sl
cd sl
svn co svn://server/sl/trunk/sudo .
cd ..
ln -s sl/sudoers sl-sudoers
exit
mkdir /home/loescher/.html-data
cd /home/loescher/.html-data
svn co svn://server/sl/trunk/html-data .
mkdir /home/loescher/prog
cd /home/loescher/prog
svn co svn://server/sl/trunk/prog .
mkdir /home/loescher/texte
cd /home/loescher/texte
svn co svn://server/sl/trunk/texte .
mkdir /home/loescher/media
cd /home/loescher/media
svn co svn://server/sl/trunk/media .
mkdir /home/loescher/TeX
cd /home/loescher/TeX
svn co svn://server/sl/trunk/TeX .
mkdir /home/loescher/fhem
cd /home/loescher/fhem
svn co svn://server/sl/trunk/fhem .
Dann kann sich noch massenhaft Applikationen nachinstallieren:
List of applications
-
Kurzfassung von
Upgrading the system
und
Upgrading packages
:
Backup and Upgrade:
backup-$(hostname)
mkdir -p /boot/OLD && /bin/cp /boot/i* /boot/v* /boot/OLD/
reflector --verbose --latest 5 --sort rate --save
/etc/pacman.d/mirrorlist
pacman -Syu
Check for orphans (installed as a dependency but now, no other packages depend on them):
pacman -Qtd
Read the list carefully! Then:
pacman -R $(pacman -Qtd | awk '{print $1}')
Check for dropped packages (packages may no longer be in the remote repositories):
pacman -Qm
# Upgrade AUR packages:
su - loescher
yay -Sua
Veraltete Pakete aus dem Cache löschen:
yay -Sc
Review new configuration files:
pacdiff
From Arch System maintenance:
Clean the package cache (but keep most recent three):
paccache -r
Check services and logfiles:
systemctl --failed
journalctl -p 3 -b
Sollte man ggf. ein Paket downgraden müssen, weil die aktuelle
Version Probleme macht, dann z.B. so:
pacman -U https://archive.archlinux.org/packages/l/linux-lts/linux-lts-6.1.34-1-x86_64.pkg.tar.zst
-
Was sollte man nach dem Update alles Testen? (Beispiel: Server)
- Fehler beim Start der Services:
systemctl --failed
und
journalctl -p 3 -b
- Apache: http://server/
- Subversion: Auf Client und Server: svn update
- NFS-Freigaben: Gehen die Mounts auf den Clients (eni)?
- Samba-Freigaben: Gehen die Mounts auf den Clients (Handy)?
- Cronjobs aller User (root, loescher, vdr)
- VDR-Display auf Monitor/TV als User "tv"
- NTP: timedatectl status
- Mail versenden
- Netzwerk-Durchsatz: iperf3 -i 10 -t 300 -c ZIEL
- cat /proc/mdstat
- VDR, VDR Admin
- ssh Login
- ssh-to-server
- Musiksammlung streamen
- FHEM
- nachrichten_aufnehmen
- get_edeka_smart_freies_datenvolumen
Was sollte man nach dem Update alles Testen? (Beispiel: Desktop)
- sudo -l
- clamscan .
- xemacs (Text, Perl, TeX)
- LibreOffice
- evince
- LaTeX, xdvi, dvips, gv
- subversion
- xine, ffmpeg, mplayer, vlc
- VDR
- audacious
- audacity
- mediathekview
- Alle Services: rc-status
- Drucken / CUPS (http://localhost:631/
- Firefox
- AVC (icaclient)
- WebEx
- Thunderbird
- encfs
- ssh-to-server
- Cronjobs
- Mail versenden / postfix / Als root: echo test | mail -s test root
- Gimp
- GQView
- Knights
- funktioniert das auf dem vdr: rdate -s desktop
- Scanner
- USB-Sticks
- VDR-Mount vom dlink
- wakeonlan VDR
- VDR Admin
- Youtube
- Keepvid
- Sound-Wiedergabe, z.B. mpg123
- Lautstärke-Tasten am Laptop
- xfe
- Netzwerk-Durchsatz (per ETH bzw. WLAN bzw. Bonding!):
iperf3 -i 10 -t 300 -c ZIEL
- SD-Karte bzw. USB-Stick einstecken und Automount?