# Install Scripts for Void Linux on Pinebook Pro Before using either of the scripts in this repository, read through them to clearly understand what they do. They are very opinionated and specifically written to cater to my own needs (for example the use of `sudo`, other people might have different setups). It is, however, easy to change things around. By default, the `bootstrap` script creates a minimal installation on the emmc storage, with full disk encryption (with an unencrypted boot partition) via lvm on luks. Two volumes `swap` and `root` are created, the latter is formatted with an xfs filesystem. Additionally one user is created (with access to sudo via the wheel group) and keymap, hostname and timezone get set. This gets you to a booting system, going on from there is out of scope here as there are many ways to do that (for myself, I use `stow` to set up everything). An important thing to keep in mind is that not all commands in the `bootstrap` script are idempotent, that makes it all the more important to understand what they do and to be sure to backup all important data. Pre-built images can be downloaded from the [releases](https://code.vanwa.ch/sebastian/void-linux-installer/-/releases) page (those might be outdated though). # Scripts ## mk_pbp_img Create a live image to boot void linux on the pinebook pro. Needs to be run on an existing void linux system (docker might be possible with a working buildx and some adaptions with the mounting of filesystems). A copy of the [void-mklive](https://github.com/void-linux/void-mklive.git) repository is downloaded next to the script into `.void-mklive` and used for building the image. The script assumes it is running on an `x86_64` architecture, if that is not the case, it needs to be changed (this applies to the use of `qemu-aarch64-static` to get a chroot). The following tools need to be accessible in `PATH`: - git - make - qemu-aarch64-static - sudo - xz If there is an argument provided to the script, it is treated as the folder to where the compressed image is written, if no argument is given, the current working directory is used. After a successful build, the finished image can be found in the directory described above with a filename of `void-pbp.img.xz` Write it to a microSD card as such: - `xz -d < void-pbp.img.xz | sudo dd of=/dev/mmcblk0 bs=4M status=progress` - `sudo sync` Be ***very*** careful to get the parameter for `of` right, otherwise you can destroy your system. MicroSD cards can be fickle, it sometimes is helpful to not take them out immediately, even after running `sync`. If booting from the card hangs, write the image again onto it or use a different card. ## bootstrap Install void linux to the internal mmc storage of the pinebook pro or use it for some maintenance task. Be aware that the time needs to be set in *UTC*, otherwise package installation might not work. If running on a pinebook pro with an ISO keyboard, run `loadkeys uk` to load the correct keymap. Run it in either of two ways: ### non-interactive `bootstrap full` Run a full installation, this will overwrite all data on the storage. Runs the `full_install` command internally. ### interactive `bootstrap` Run `help` to get a list of commands you can run and quit interactive mode with typing `exit`. A useful thing to do here is the `repair` command. Sets up all the needed filesystems and opens a chroot. Again, it is highly recommended to read what the respective commands do and to adapt them to your own needs.