# raspberry pi setup using Arch linux ARM
![logo](https://i.imgur.com/N0Y4vco.png)
Tested on RPi3
# Get Arch on it
* **download** pre-prepared **image**, aarch64, if not terribly out of date
[https://github.com/andrewboring/alarm-images/releases](https://github.com/andrewboring/alarm-images/releases)
* **flash** the image to to an sd card using [etcher](https://etcher.balena.io/#download-etcher)
* **boot** the rpi with it, login root//root
Or follow [the official instructions.](https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3)
With manual partitioning, and extracting and moving but everything is latest.
# Get Arch in to working state
* check space used and assigned `df -h` and `lsblk`
if root partition is too small
* `cfdisk /dev/mmcblk0` or whatever is your drive path,
and resize the partition, write changes
* `resize2fs /dev/mmcblk0p2` or whatever is the path to the partition
* since the image can be older update might not be just `pacman -Syu`
* update keyring `pacman -Sy archlinux-keyring`, `pacman -Sy archlinuxarm-keyring`
if it refuses - `pacman-key --init`; `pacman-key --populate`
Can take some time.
* update the system `pacman -Syu`
* create a new user and set the password
* `useradd -m -G wheel bastard`
* `passwd bastard`
* edit sudoers to allow users of the group wheel to sudo
`EDITOR=nano visudo`
`%wheel ALL=(ALL) ALL`
* install sudo `pacman -S sudo`
* try login as the new user
# Run prepared ansible
[This ansibe playbooks repo](https://github.com/DoTheEvo/ansible-arch)
setup some stuff for arch.
But for arm based stuff it needs some adjustment.
#### Locale
Ansible needs utf8 [locale](https://wiki.archlinux.org/title/locale) set.
* run `locale`, if its already UTF-8 then we are done here
* `sudo nano /etc/locale.gen`
`en_US.UTF-8 UTF-8` uncomment
* `locale-gen` - generates locale
* `localectl set-locale LANG=en_US.UTF-8` - sets locale
* logout, login, check `locale` again
#### YAY and Reflect
`playbook_core.yml` installs lot of basic packages. It works for most,
except for `yay` and `reflector` as they throw an error
cuz of ARM archiceture.
So before running `playbook_core.yml` or after experiencing any error,
just edit the `playbook_core.yml` and delete the responsible section, and run again.
`playbook_zsh.yml` and `playbook_docker.yml` worked without any issues.
After its done uninstall ansible stuff - `sudo pacman -Rns ansible`
The raspberry is now ready.
![neofetch](https://i.imgur.com/Eha3bOX.png)