diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2016-05-21 21:41:35 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2016-05-21 21:41:35 +0200 |
| commit | 555e95319513c7c8289ffe9d188ca1899e5cf70d (patch) | |
| tree | 261d25f66986f42ae7f8ac6455011191cd14c423 /content/post/raspberrypi-bootstrapping.md | |
| download | blog-555e95319513c7c8289ffe9d188ca1899e5cf70d.tar.gz blog-555e95319513c7c8289ffe9d188ca1899e5cf70d.zip | |
migrate to hugo
Diffstat (limited to 'content/post/raspberrypi-bootstrapping.md')
| -rw-r--r-- | content/post/raspberrypi-bootstrapping.md | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/content/post/raspberrypi-bootstrapping.md b/content/post/raspberrypi-bootstrapping.md new file mode 100644 index 0000000..20ca0d8 --- /dev/null +++ b/content/post/raspberrypi-bootstrapping.md @@ -0,0 +1,109 @@ +--- +categories: +- embedded +date: 2016-01-30 +title: Installing Arch Linux ARM on a Raspberry Pi +--- + +My cheat sheet for deploying multiple Arch Linux machines, Raspberry Pis here. +Installs `pacserve`, `rngd` and `yaourt` in a btrfs subvolume `root`. To allow local users to poweroff, `polkit` is also installed. + +# Filesystem setup +See also the [Archlinux ARM guide](http://archlinuxarm.org/platforms/armv6/raspberry-pi). + +Change `sdx` to `sdb`/`sdc`/… +``` bash +sudo fdisk /dev/sdx +sudo mkfs.btrfs /dev/sdx2 +sudo mkfs.vfat /dev/sdx1 +mkdir -p tmp/{r,b}oot +cd tmp +sudo mount /dev/sdx2 root +sudo btrfs subvolume create root/root +sudo umount root +``` + +# Copying the files +Use `ArchLinuxARM-rpi-2-latest.tar.gz` for the Raspberry Pi 2 or 3. +``` bash +wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-latest.tar.gz +sudo mount /dev/sdx1 boot +sudo mount -o subvol=root,autodefrag,compress=lzo /dev/sdx2 root +sudo su -c "bsdtar -xpf ArchLinuxARM-rpi-latest.tar.gz -C root" && sync +sudo mv root/boot/* boot +sudo umount boot +sudo mount /dev/sdx1 root/boot +``` + +# QEMU chroot +[Optional](https://wiki.archlinux.org/index.php/Raspberry_Pi#QEMU_chroot). You can skip this and power the Pi up instead. + +``` bash +sudo cp /usr/bin/qemu-arm-static root/usr/bin +sudo arch-chroot root /bin/bash +``` + +# Configuration +``` bash +echo "root=/dev/mmcblk0p2 rootflags=subvol=root,autodefrag,compress=lzo rw rootwait console=tty1 elevator=deadline" > /boot/cmdline.txt +sed -i "s/gpu_mem=64/gpu_mem=16/" /boot/config.txt + +cat << EOF >> /boot/config.txt +start_file=start_x.elf +fixup_file=fixup_x.dat +start_x=1 +EOF + +sed -i '/\[options\]/a CacheDir = /var/cache/pacman/pkg/' /etc/pacman.conf +sed -i '/\[options\]/a CleanMethod = KeepCurrent' /etc/pacman.conf +cat << EOF >> /etc/pacman.conf +[archlinuxfr] +SigLevel = Never +Server = http://repo.archlinux.fr/arm + +[xyne-any] +Server = http://xyne.archlinux.ca/repos/xyne +EOF +``` + +# Package installation +``` bash +pacman -Syu --needed pacserve git yajl rng-tools polkit archlinuxarm-keyring archlinux-keyring base-devel +systemctl enable pacserve rngd +echo 'RNGD_OPTS="-o /dev/random -r /dev/hwrng"' > /etc/conf.d/rngd +echo "alarm ALL=(ALL) ALL" >> /etc/sudoers +pacman.conf-insert_pacserve > /tmp/pacman.conf +mv /tmp/pacman.conf /etc/pacman.conf +su alarm +cd +git clone https://aur.archlinux.org/package-query.git +cd package-query +makepkg -s +mv package-query*.tar.xz /tmp +cd .. +rm -rf package-query +exit +pacman -U /tmp/package-query*.tar.xz +pacman -S yaourt +exit +``` + +`sudo umount root/boot root` or `reboot` + +# Post installation (on the Pi) +SSH into alarm with password alarm. root password is root, but SSH login for root is by default disabled. +``` bash +sudo hostnamectl set-hostname xxx +sudo timedatectl set-timezone Yourtime/zone +sudo vi /etc/systemd/timesyncd.conf +sudo timedatectl set-ntp true +sudo pacman-key --init +passwd +sudo passwd +``` + +# Troubleshooting +Can't unmount for some reason? Use the hammer (not recommended): `sudo fuser -km mntpoint || sudo umount -l mntpoint` + +# Further information +For more, see [the Arch wiki](https://wiki.archlinux.org/index.php/Raspberry_Pi). |
