Headless-Installation eines Raspberry Pi Zero W
mit Arch Linux…
Der neu angeschaffte RP0W
wird anstelle des mitgelieferten Noobs nun mit Arch Linux installiert. Die MicroSD in den Kartenleser und los gehts… sdX
wie immer durch das tatsächliche Laufwerk ersetzen.
Aktuelle Partitionierung (Noobs)
sudo fdisk -l /dev/sdX
Disk /dev/sdX: 14,86 GiB, 15931539456 bytes, 31116288 sectors
Disk model: USB SD Reader
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000b624d
Device Boot Start End Sectors Size Id Type
/dev/sdX1 8192 3232421 3224230 1,6G e W95 FAT16 (LBA)
/dev/sdX2 3232422 31116287 27883866 13,3G 5 Extended
/dev/sdX5 3235840 3301373 65534 32M 83 Linux
/dev/sdX6 3301376 3825661 524286 256M c W95 FAT32 (LBA)
/dev/sdX7 3825664 31116287 27290624 13G 83 Linux
Neu partitionieren
Für Archlinux legen wir 2 Partitionen auf der MicroSD an.
sudo fdisk /dev/sdX
sudo fdisk -l /dev/sdX
Disk /dev/sdX: 14,86 GiB, 15931539456 bytes, 31116288 sectors
Disk model: USB SD Reader
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc7d94423
Device Boot Start End Sectors Size Id Type
/dev/sdX1 2048 206847 204800 100M c W95 FAT32 (LBA)
/dev/sdX2 206848 31116287 30909440 14,8G 83 Linux
Dateisysteme anlegen - VFAT für die Boot-Partition und EXT4 für Archlinux.
sudo mkfs.vfat /dev/sdX1
sudo mkfs.ext4 /dev/sdX2
ArchLinux installieren
mkdir _zero && cd $_
mkdir root
sudo mount /dev/sdX2 ./root
sudo mkdir -p root/boot
sudo mount /dev/sdX1 ./root/boot
curl -# -L -o ArchLinuxARM-rpi-latest.tar.gz http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz
sudo bsdtar -vxpf ArchLinuxARM-rpi-latest.tar.gz -C root
WLAN einrichten
cat << EOF | sudo tee ./root/etc/systemd/network/wlan0.network
[Match]
Name=wlan0
[Network]
DHCP=yes
EOF
cat << EOF | sudo tee ./root/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
country=AT
ctrl_interface=DIR=/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=1
EOF
WLAN SSID und Passwort setzen…
SSID='myssid' PASS='mypass' sh -c 'wpa_passphrase "${SSID}" "${PASS}"' | sudo tee -a ./root/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
sudo sed -i '/#psk/d' ./root/etc/wpa_supplicant/wpa_supplicant-wlan0.conf
ln -s \
/usr/lib/systemd/system/wpa_supplicant@.service \
./root/etc/systemd/system/multi-user.target.wants/wpa_supplicant@wlan0.service
Alles auf der microSD speichern, unmounten und neu starten…
sync
sudo umount root/boot
sudo umount root
SSH Login
Der RP0W sollte nun booten und sich im WLAN einloggen - die IP via DHCP. Die Standardpasswörter sind alarm
/alarm
und root
/root
.
ssh -l alarm 192.168.0.105
Welcome to Arch Linux ARM
Website: http://archlinuxarm.org
Forum: http://archlinuxarm.org/forum
IRC: #archlinux-arm on irc.Freenode.net
uname -a
Linux alarmpi 4.19.75-2-ARCH #1 SMP PREEMPT Tue Oct 1 00:34:07 UTC 2019 armv6l GNU/Linux
hostnamectl
Static hostname: alarmpi
Icon name: computer
Machine ID: 00000000000000000000000000000000
Boot ID: 00000000000000000000000000000000
Operating System: Arch Linux ARM
Kernel: Linux 4.19.75-2-ARCH
Architecture: arm
System-Update
Mangels installiertem+konfiguriertem sudo
arbeiten wir nun als root
su
Paketmanager initialisieren, alle User dürfen sudo
(TESTSYSTEM!) und reboot…
pacman-key --init
pacman-key --populate archlinuxarm
pacman -Syu
pacman -S --needed base-devel git sudo
echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers
reboot
uname -a
Linux alarmpi 4.19.83-1-ARCH #1 SMP PREEMPT Wed Nov 13 02:54:13 UTC 2019 armv6l GNU/Linux
Raspi-Config installieren
Raspi-Config installieren, um z.B. den Memory-Split einzustellen.
mkdir -p ~/build && cd $_
sudo pacman -S xorg-xrandr libnewt
git clone https://aur.archlinux.org/raspi-config.git && cd raspi-config
makepkg -i
sudo raspi-config
Benchmark
zum UnixBench