I always wanted to be able to customize and add to Arch Linux ARM embedded installs.
The goal here is to have a set of playbooks that generates an SD card that's supposed to boot and already be usable for a particular application (ex: the alarm setup for my guitar, or MiSTerArch).
- Ansible
- qemu-user-static in order to chroot from x86 into an arm system.
- arch-chroot in $PATH from package arch-install-scripts.
pikaur -S ansible qemu-user-static binfmt-qemu-static arch-install-scriptssudo apt-get install ansible qemu-user-static arch-install-scripts arch-install-scriptsDefine your inventory (at least for the machine settings), see inventory_template.yml for more details on how or where to put them.
alarm/ansible% sudo ansible-playbook -i inventory.yml *.play*.yml -vAfter the first successful run, you can probably narrow the --tags you're
running, some might be desired to be ran standalone. You can also --skip-tags.
--list-tags will give you a complete list of how plays are tagged.
Some tags of interest:
chroot_aquire- creates chroot. It won't clobber it if already there, but should be skipped in order to save time if it is.chroot_inventory- if you already have a chroot setup, this is required (add as the first task in the arguments) to add the "chroot" host to the ram based inventory so other tasks can operate on it.update- various updates: arch packages
These chroot_aquire tasks will check validity of the archlinuxarm archive
(that it can only download over http) using GPG. The signature accepted is
stored, checked in this folder, as archlinuxarm.gpg.
To verify it, compare gpg archlinuxarm.gpg output with
https://archlinuxarm.org/about/package-signing:
% gpg archlinuxarm.gpg
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub rsa4096 2014-01-18 [SC]
68B3537F39A313B3E574D06777193F152BDBE6A6
uid Arch Linux ARM Build System <builder@archlinuxarm.org>
sub rsa4096 2014-01-18 [E]