From c48ca9d31adc42d74f065e9206f116a1655b03bd Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Wed, 25 Sep 2024 17:59:51 -0400 Subject: [PATCH 1/9] installation/guides/arm-devices: mention images use growpart now images also aren't 2GB now (more like 700MB but 1G is close enough) --- src/installation/guides/arm-devices/index.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/installation/guides/arm-devices/index.md b/src/installation/guides/arm-devices/index.md index d7e82f13..afbb04b4 100644 --- a/src/installation/guides/arm-devices/index.md +++ b/src/installation/guides/arm-devices/index.md @@ -27,10 +27,11 @@ thoroughly. ### Pre-built images -The pre-built images provided are prepared for 2GB SD cards. After [downloading -and verifying](../../index.md#downloading-installation-media) an image, it can -be uncompressed with [unxz(1)](https://man.voidlinux.org/unxz.1) and written to -the relevant media with [cat(1)](https://man.voidlinux.org/cat.1), +The pre-built images provided are prepared for 1GB storage devices. After +[downloading and verifying](../../index.md#downloading-installation-media) an +image, it can be uncompressed with [unxz(1)](https://man.voidlinux.org/unxz.1) +and written to the relevant media with +[cat(1)](https://man.voidlinux.org/cat.1), [pv(1)](https://man.voidlinux.org/pv.1), or [dd(1)](https://man.voidlinux.org/dd.1). For example, to flash it onto an SD card located at `/dev/mmcblk0`: @@ -40,8 +41,13 @@ $ unxz -k .img.xz # dd if=.img of=/dev/mmcblk0 bs=4M status=progress ``` -After flashing, the root partition can optionally be expanded to fit the storage -device with [cfdisk(8)](https://man.voidlinux.org/cfdisk.8), +On first boot, the root partition and filesystem will automatically expand to +fill available contiguous space in the storage device using +[growpart(1)](https://man.voidlinux.org/man1/growpart.1). This can be disabled +by commenting out `ENABLE_ROOT_GROWPART=yes` in `/etc/default/growpart`. + +This can also be done manually after flashing with +[cfdisk(8)](https://man.voidlinux.org/cfdisk.8), [fdisk(8)](https://man.voidlinux.org/fdisk.8), or another partitioning tool, and the filesystem can be resized to fit the expanded partition with [resize2fs(8)](https://man.voidlinux.org/resize2fs.8). From 9de4b6b5bc099190bf4f135062cd556e95305105 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Sat, 21 Dec 2024 14:37:16 -0500 Subject: [PATCH 2/9] installation/live-images/index: mention other bootloader hotkeys ref: void-linux/void-mklive 380f0fd3c4ea64b3feff4b8ffd1978def98b2af5 --- src/installation/live-images/index.md | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/installation/live-images/index.md b/src/installation/live-images/index.md index 7d7f5a4a..1195ca7f 100644 --- a/src/installation/live-images/index.md +++ b/src/installation/live-images/index.md @@ -50,14 +50,22 @@ the base system, without any additional packages included on the live image. All Void installer images support the console screenreader [espeakup](https://man.voidlinux.org/espeakup.8) and the console braille display -driver [brltty](https://man.voidlinux.org/brltty.1). These services can be -enabled at boot by pressing `s` in the bootloader menu to enable accessibility -support. On UEFI-based systems, GRUB is the bootloader, and it will play a -two-tone chime when the menu is available. On BIOS-based systems and UEFI -systems in legacy/compatibility mode, SYSLINUX is the bootloader, and no chime -is played. SYSLINUX also requires pressing the enter key after pressing `s`. The -hotkey `r` will also boot with accessibility support, but will load the live ISO -into RAM. +driver [brltty](https://man.voidlinux.org/brltty.1). On UEFI-based systems, GRUB +is the bootloader, and it will play a two-tone chime when the menu is available. +On BIOS-based systems and UEFI systems in legacy/compatibility mode, SYSLINUX is +the bootloader, and no chime is played. + +Several hotkeys exists in the bootloader, which will select different entries: + +- `s` will boot with screenreader enabled +- `r` will boot with screenreader enabled and will load the live ISO into RAM +- `g` will boot with screenreader enabled and graphics disabled +- `m` will enter `Memtest86+` (if supported) +- `f` will enter the UEFI firmware setup interface (if supported) +- `b` will reboot the computer +- `p` will power off the computer + +SYSLINUX requires pressing enter after pressing a hotkey. After booting into the installer image with accessibility support enabled, if there are multiple soundcards detected, a short audio menu allows for the From 200fa6dfec285c1bf301d80b769a28839e09c3b2 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Sun, 22 Dec 2024 18:54:48 -0500 Subject: [PATCH 3/9] installation/guides: simplify chroot/fde guides with xgenfstab --- src/installation/guides/chroot.md | 98 ++++++++----------------------- src/installation/guides/fde.md | 44 +++++++------- 2 files changed, 47 insertions(+), 95 deletions(-) diff --git a/src/installation/guides/chroot.md b/src/installation/guides/chroot.md index e8922236..ec48ecfa 100644 --- a/src/installation/guides/chroot.md +++ b/src/installation/guides/chroot.md @@ -73,7 +73,8 @@ System Partition: ``` Initialize swap space, if desired, using -[mkswap(8)](https://man.voidlinux.org/mkswap.8). +[mkswap(8)](https://man.voidlinux.org/mkswap.8), and enable it with +[swapon(8)](https://man.voidlinux.org/swapon.8). ## Base Installation @@ -133,33 +134,40 @@ Unpack the tarball into the newly configured filesystems: # tar xvf void-<...>-ROOTFS.tar.xz -C /mnt ``` +ROOTFS images generally contain out of date software, due to being a snapshot of +the time when they were built, and do not come with a complete `base-system`. +Update the package manager and install `base-system`: + +``` +# xbps-install -r /mnt -Su xbps +# xbps-install -r /mnt -u +# xbps-install -r /mnt base-system +# xbps-remove -r /mnt -R base-container-full +``` + ## Configuration -With the exception of the section "Install base-system (ROOTFS method only)", -the remainder of this guide is common to both the XBPS and ROOTFS installation +The remainder of this guide is common to both the XBPS and ROOTFS installation methods. -### Entering the Chroot +### Configure Filesystems -[xchroot(1)](https://man.voidlinux.org/xchroot.1) (from `xtools`) can be used to -set up and enter the chroot. Alternatively, this can be [done -manually](../../config/containers-and-vms/chroot.md#manual-method). +The [fstab(5)](https://man.voidlinux.org/fstab.5) file can be automatically +generated from currently mounted filesystems using +[xgenfstab(1)](https://man.voidlinux.org/xgenfstab.1) (from `xtools`). ``` -# xchroot /mnt /bin/bash +# xgenfstab -U /mnt > /mnt/etc/fstab ``` -### Install base-system (ROOTFS method only) +### Entering the Chroot -ROOTFS images generally contain out of date software, due to being a snapshot of -the time when they were built, and do not come with a complete `base-system`. -Update the package manager and install `base-system`: +[xchroot(1)](https://man.voidlinux.org/xchroot.1) (from `xtools`) can be used to +set up and enter the chroot. Alternatively, this can be [done +manually](../../config/containers-and-vms/chroot.md#manual-method). ``` -[xchroot /mnt] # xbps-install -Su xbps -[xchroot /mnt] # xbps-install -u -[xchroot /mnt] # xbps-install base-system -[xchroot /mnt] # xbps-remove base-container-full +# xchroot /mnt /bin/bash ``` ### Installation Configuration @@ -191,60 +199,6 @@ To set a root password, run: [xchroot /mnt] # passwd ``` -### Configure fstab - -The [fstab(5)](https://man.voidlinux.org/fstab.5) file can be automatically -generated from currently mounted filesystems by copying the file `/proc/mounts`: - -``` -[xchroot /mnt] # cp /proc/mounts /etc/fstab -``` - -Remove lines in `/etc/fstab` that refer to `proc`, `sys`, `devtmpfs` and `pts`. - -Replace references to `/dev/sdXX`, `/dev/nvmeXnYpZ`, etc. with their respective -UUID, which can be found by running -[blkid(8)](https://man.voidlinux.org/blkid.8). Referring to filesystems by their -UUID guarantees they will be found even if they are assigned a different name at -a later time. In some situations, such as booting from USB, this is absolutely -essential. In other situations, disks will always have the same name unless -drives are physically added or removed. Therefore, this step may not be strictly -necessary, but is almost always recommended. - -Change the last zero of the entry for `/` to `1`, and the last zero of every -other line to `2`. These values configure the behaviour of -[fsck(8)](https://man.voidlinux.org/fsck.8). - -For example, the partition scheme used throughout previous examples yields the -following `fstab`: - -``` -/dev/sda1 /boot/efi vfat rw,relatime,[...] 0 0 -/dev/sda2 / ext4 rw,relatime 0 0 -``` - -The information from `blkid` results in the following `/etc/fstab`: - -``` -UUID=6914[...] /boot/efi vfat rw,relatime,[...] 0 2 -UUID=dc1b[...] / ext4 rw,relatime 0 1 -``` - -Note: The output of `/proc/mounts` will have a single space between each field. -The columns are aligned here for readability. - -Add an entry to mount `/tmp` in RAM: - -``` -tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0 -``` - -If using swap space, add an entry for any swap partitions: - -``` -UUID=1cb4[...] swap swap rw,noatime,discard 0 0 -``` - ### Enable services Services can be [enabled](../../config/services/index.md#enabling-services) @@ -262,7 +216,7 @@ to install GRUB onto your boot disk. install GRUB to. For example: ``` -[xchroot /mnt] # xbps-install grub +[xchroot /mnt] # xbps-install -S grub [xchroot /mnt] # grub-install /dev/sda ``` @@ -272,7 +226,7 @@ optionally specifying a bootloader label (this label may be used by your computer's firmware when manually selecting a boot device): ``` -[xchroot /mnt] # xbps-install grub-x86_64-efi +[xchroot /mnt] # xbps-install -S grub-x86_64-efi [xchroot /mnt] # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Void" ``` diff --git a/src/installation/guides/fde.md b/src/installation/guides/fde.md index eff0c011..f177ea1e 100644 --- a/src/installation/guides/fde.md +++ b/src/installation/guides/fde.md @@ -115,6 +115,7 @@ meta-data=/dev/voidvm/home isize=512 agcount=4, agsize=2359040 blks ... # mkswap /dev/voidvm/swap Setting up swapspace version 1, size = 2 GiB (2147479552 bytes) +# swapon /dev/voidvm/swap ``` ## System installation @@ -162,9 +163,23 @@ command for a UEFI system will be as follows. # xbps-install -Sy -R https://repo-default.voidlinux.org/current -r /mnt base-system cryptsetup grub-x86_64-efi lvm2 ``` -When it's done, we can enter the chroot with -[`xchroot(1)`](https://man.voidlinux.org/xchroot.1) (from `xtools`) and finish -up the configuration. Alternatively, entering the chroot can be [done +## Configuration + +### Filesystem Configuration + +The [fstab(5)](https://man.voidlinux.org/fstab.5) file can be automatically +generated from currently mounted filesystems using +[xgenfstab(1)](https://man.voidlinux.org/xgenfstab.1) (from `xtools`). + +``` +# xgenfstab /mnt > /mnt/etc/fstab +``` + +### Entering the Chroot + +We can enter the chroot with [`xchroot(1)`](https://man.voidlinux.org/xchroot.1) +(from `xtools`) and finish up the configuration. Alternatively, entering the +chroot can be [done manually](../../config/containers-and-vms/chroot.md#manual-method). ``` @@ -175,7 +190,9 @@ manually](../../config/containers-and-vms/chroot.md#manual-method). [xchroot /mnt] # echo voidvm > /etc/hostname ``` -and, for glibc systems only: +### System Locale (glibc only) + +For glibc systems only, generate locale files with: ``` [xchroot /mnt] # echo "LANG=en_US.UTF-8" > /etc/locale.conf @@ -183,25 +200,6 @@ and, for glibc systems only: [xchroot /mnt] # xbps-reconfigure -f glibc-locales ``` -### Filesystem configuration - -The next step is editing `/etc/fstab`, which will depend on how you configured -and named your filesystems. For this example, the file should look like this: - -``` -# -tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0 -/dev/voidvm/root / xfs defaults 0 0 -/dev/voidvm/home /home xfs defaults 0 0 -/dev/voidvm/swap swap swap defaults 0 0 -``` - -UEFI systems will also have an entry for the EFI system partition. - -``` -/dev/sda1 /boot/efi vfat defaults 0 0 -``` - ### GRUB configuration Next, configure GRUB to be able to unlock the filesystem. Add the following line From 04884417b60771d95468faad7fc858978765bf0d Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Wed, 1 Jan 2025 15:46:47 -0500 Subject: [PATCH 4/9] installation/guides/arm-devices: split platforms into a file per platform also note that aarch64 live isos exist --- book.toml | 1 + src/SUMMARY.md | 5 ++++- src/installation/guides/arm-devices/index.md | 17 +++++++++++------ src/installation/live-images/index.md | 4 ++++ 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/book.toml b/book.toml index 86bdf9b8..ba9914dd 100644 --- a/book.toml +++ b/book.toml @@ -14,6 +14,7 @@ edit-url-template = "https://github.com/void-linux/void-docs/edit/master/{path}" "/about-this-handbook.html" = "/about/about-this-handbook.html" "/config/man.html" = "/config/package-documentation/man.html" "/config/gnupg.html" = "/config/openpgp.html#gnupg" +"/installation/guides/arm-devices/platforms.html" = "/installation/guides/arm-devices/raspberry-pi.html" [output.latex] optional = true diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 85adf3a2..aa2f3e1a 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -15,7 +15,10 @@ - [Full Disk Encryption](./installation/guides/fde.md) - [Root on ZFS](./installation/guides/zfs.md) - [ARM Devices](./installation/guides/arm-devices/index.md) - - [Supported Platforms](./installation/guides/arm-devices/platforms.md) + - [Lenovo Thinkpad + X13s](./installation/guides/arm-devices/thinkpad-x13s.md) + - [Pinebook Pro](./installation/guides/arm-devices/pinebook-pro.md) + - [Raspberry Pi](./installation/guides/arm-devices/raspberry-pi.md) - [musl](./installation/musl.md) - [Configuration](./config/index.md) - [Package Documentation](./config/package-documentation/index.md) diff --git a/src/installation/guides/arm-devices/index.md b/src/installation/guides/arm-devices/index.md index afbb04b4..aa5a7c33 100644 --- a/src/installation/guides/arm-devices/index.md +++ b/src/installation/guides/arm-devices/index.md @@ -11,19 +11,25 @@ on such devices can be done in several ways: that can be extracted to a previously prepared partition scheme; and - [Chroot installation](#chroot-installation): follows most of the steps outlined in [the chroot guide](../chroot.md). +- [Live images](../../live-images/index.md) (for aarch64 UEFI devices only). This guide also outlines [configuration steps](#configuration) that are mostly specific to such devices. +Platform-specific documentation is available for: + +- [Lenovo ThinkPad X13s](./thinkpad-x13s.md) +- [Pinebook Pro](./pinebook-pro.md) +- [Raspberry Pi](./raspberry-pi.md) + Since most of the commands in this guide will be run on external storage, it is important to run [sync(1)](https://man.voidlinux.org/sync.1) before removing the device. ## Installation -If you are installing Void Linux on one of the ARM devices covered in the -"[Supported platforms](./platforms.md)" page, make sure to read its section -thoroughly. +If you are installing Void Linux on one of the officially supported ARM devices, +make sure to read its page thoroughly. ### Pre-built images @@ -103,9 +109,8 @@ using [tar(1)](https://man.voidlinux.org/tar.1): #### Chroot installation It is also possible to perform a [chroot installation](../chroot.md) using the -appropriate architecture and base packages, some of which are listed in the -"[Supported Platforms](./platforms.md)" section. Make sure to [prepare your -storage medium](#custom-partition-layout) properly for the device. +appropriate architecture and base packages. Make sure to [prepare your storage +medium](#custom-partition-layout) properly for the device. If doing this from a computer with an incompatible archtecture (such as x86_64), install `binfmt-support`, enable the `binfmt-support` service, and install the diff --git a/src/installation/live-images/index.md b/src/installation/live-images/index.md index 1195ca7f..d3525c04 100644 --- a/src/installation/live-images/index.md +++ b/src/installation/live-images/index.md @@ -7,6 +7,10 @@ function properly. There are `x86_64` images for both `glibc` and `musl` based systems. There are also images for `i686`, but only `glibc` is supported for this architecture. +Live images are provided for `aarch64` in both `glibc` and `musl` variants, but +they only support UEFI-capable devices. Live images for `aarch64` do not support +`void-installer`. + Live installers are not provided for other architectures. Users of other architectures will need to use rootfs tarballs, or perform an installation manually. From 82be38be8e8f88728db8a80c7ce7cf193590f646 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Wed, 1 Jan 2025 15:47:49 -0500 Subject: [PATCH 5/9] installation/guides/arm-devices/raspberry-pi: update for new kernel - should now support 500/CM5 (as of 6.6.67 at least) - audio/video config.txt lines should now be uncommented by default - memcg no longer required with new config --- .../{platforms.md => raspberry-pi.md} | 43 ++++++++----------- 1 file changed, 18 insertions(+), 25 deletions(-) rename src/installation/guides/arm-devices/{platforms.md => raspberry-pi.md} (79%) diff --git a/src/installation/guides/arm-devices/platforms.md b/src/installation/guides/arm-devices/raspberry-pi.md similarity index 79% rename from src/installation/guides/arm-devices/platforms.md rename to src/installation/guides/arm-devices/raspberry-pi.md index 23efd1c7..94408ac2 100644 --- a/src/installation/guides/arm-devices/platforms.md +++ b/src/installation/guides/arm-devices/raspberry-pi.md @@ -1,6 +1,4 @@ -# Supported Platforms - -## Raspberry Pi +# Raspberry Pi The `rpi-kernel` packages for all Raspberry Pi variants are built from the Raspberry Pi Foundation's kernel tree, which should enable all special @@ -16,20 +14,20 @@ kernel are in the `/boot/cmdline.txt` file. Some of the relevant parameters are documented in the [official documentation](https://www.raspberrypi.com/documentation/computers/configuration.html#the-kernel-command-line). -### Supported Models +## Supported Models -| Model | Architecture | -|---------------------------------------------|--------------| -| 1 A, 1 B, 1 A+, 1 B+, Zero, Zero W, Zero WH | armv6l | -| 2 B | armv7l | -| 3 B, 3 A+, 3 B+, Zero 2W, 4 B, 400, CM4, 5 | aarch64 | +| Model | Architecture | +|------------------------------------------------------|--------------| +| 1 A, 1 B, 1 A+, 1 B+, Zero, Zero W, Zero WH | armv6l | +| 2 B | armv7l | +| 3 B, 3 A+, 3 B+, Zero 2W, 4 B, 400, CM4, 5, 500, CM5 | aarch64 | > It is possible to run the armv7l images on an RPi 3, as the RPi 3's CPU > supports both the Armv8 and Armv7 instruction sets. The difference between > these images is that the armv7l image provides a 32-bit system while the > aarch64 image provides a 64-bit system. -### Raspberry Pi 5 Kernel +## Raspberry Pi 5 Kernel The `rpi5-kernel` and `rpi5-kernel-headers` packages provide a kernel and headers optimized for the Raspberry Pi 5 with 16KB pages. To switch from the @@ -40,7 +38,7 @@ replace it with `rpi5-kernel`. > View any known issues and report any compatibility problems found in the > [tracking issue](https://github.com/void-linux/void-packages/issues/48260). -### Enabling hardware RNG device +## Enabling hardware RNG device By default, the [HWRNG](https://en.wikipedia.org/wiki/Hardware_random_number_generator) device @@ -52,14 +50,17 @@ In order to fix this, install the `rng-tools` package and [enable](../../../config/services/index.md#enabling-services) the `rngd` service, which uses the `/dev/hwrng` device to seed `/dev/random`. -### Graphical session +## Graphical session The `mesa-dri` package contains drivers for all the Raspberry Pi variants, and can be used with the [modesetting Xorg driver](../../../config/graphical-session/xorg.md#modesetting) or [Wayland](../../../config/graphical-session/wayland.md). -### Hardware +You may also need to uncomment the `dtoverlay=vc4-kms-v3d` line in +`/boot/config.txt`. + +## Hardware More configuration information can be found in the Raspberry Pi Foundation's [official @@ -67,11 +68,12 @@ documentation](https://www.raspberrypi.com/documentation/computers/configuration The `raspi-config` utility isn't available for Void Linux, so editing the `/boot/config.txt` file is usually required. -#### Audio +### Audio -To enable the soundchip, add `dtparam=audio=on` to `/boot/config.txt`. +To enable audio, you may need to uncomment `dtparam=audio=on` in +`/boot/config.txt`. -#### Serial +### Serial To enable serial console logins, [enable](../../../config/services/index.md#enabling-services) the @@ -101,12 +103,3 @@ configuration. It should show: $ i2cdetect -l i2c-1i2c bcm2835 I2C adapter I2C adapter ``` - -### Memory cgroup - -The kernel from the `rpi-kernel` package [disables the memory cgroup by -default](https://github.com/raspberrypi/linux/commit/28aec65bb1743c9bfa53b036999f9835c889704e). - -This breaks workloads which use containers. Therefore, if you want to use -containers on your Raspberry Pi, you need to enable memory cgroups by adding -`cgroup_enable=memory` to `/boot/cmdline.txt`. From 04c2e01f23b2f164117c89f5017a162d378e3485 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Wed, 1 Jan 2025 15:48:31 -0500 Subject: [PATCH 6/9] installation/guides/arm-devices: add x13s page --- .../guides/arm-devices/thinkpad-x13s.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/installation/guides/arm-devices/thinkpad-x13s.md diff --git a/src/installation/guides/arm-devices/thinkpad-x13s.md b/src/installation/guides/arm-devices/thinkpad-x13s.md new file mode 100644 index 00000000..f6549d59 --- /dev/null +++ b/src/installation/guides/arm-devices/thinkpad-x13s.md @@ -0,0 +1,41 @@ +# Lenovo ThinkPad X13s + +The Lenovo ThinkPad X13s Snapdragon-based laptop is supported on kernel 6.8 and +higher, with some caveats. See [jhovold's +wiki](https://github.com/jhovold/linux/wiki/X13s) for the current feature +support status. + +## Installation + +Before installing, update the UEFI firmware to at least version 1.59 from +Windows, then disable "Secure Boot" and enable "Linux Boot" in the UEFI +firmware. + +Boot an aarch64 Void Linux live ISO using one of the "Void Linux for Thinkpad +X13s" menu entries in GRUB. + +To install, follow the [chroot install guide](../chroot.md), using the "XBPS +method", observing the following modifications: + +For the base installation, install both `base-system` and `x13s-base`. This +package provides important configurations and installs the necessary +dependencies. + +Before running `grub-install`, append the following to `/etc/default/grub`: + +``` +GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT arm64.nopauth clk_ignore_unused pd_ignore_unused" +GRUB_DEFAULT_DTB="qcom/sc8280xp-lenovo-thinkpad-x13s.dtb" +``` + +> Note: if using another bootloader, ensure the kernel cmdline arguments +> `arm64.nopauth clk_ignore_unused pd_ignore_unused` are used. + +## WWAN (LTE) + +To enable the WWAN modem, install `ModemManager` and unlock it: + +``` +# mkdir -p /etc/ModemManager/fcc-unlock.d +# ln -s /usr/share/ModemManager/fcc-unlock.available.d/105b /etc/ModemManager/fcc-unlock.d/105b:e0c3 +``` From 4ca4169e61054d8349854edb70fd91a68f686126 Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Wed, 1 Jan 2025 15:48:54 -0500 Subject: [PATCH 7/9] installation/guides/arm-devices: add pinebook-pro page --- .../guides/arm-devices/pinebook-pro.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/installation/guides/arm-devices/pinebook-pro.md diff --git a/src/installation/guides/arm-devices/pinebook-pro.md b/src/installation/guides/arm-devices/pinebook-pro.md new file mode 100644 index 00000000..1ace9895 --- /dev/null +++ b/src/installation/guides/arm-devices/pinebook-pro.md @@ -0,0 +1,34 @@ +# Pinebook Pro + +The Pinebook Pro is a Rockchip RK3399-based laptop. + +See Pine64's [documentation](https://pine64.org/documentation/Pinebook_Pro) for +more information. + +## Installation + +The live ISO provided by Void is generic and does not have U-Boot integrated. +You need to provide your own firmware installed on the internal SPI flash, eMMC, +or an SD card, such as +[Tow-Boot](https://tow-boot.org/devices/pine64-pinebookPro.html) or +[rk2aw](https://xnux.eu/rk2aw/). + +Boot an aarch64 Void Linux live ISO using one of the "Void Linux for Pinebook +Pro" menu entries in GRUB. + +To install, follow the [chroot install guide](../chroot.md), using the "XBPS +method", observing the following modifications: + +For the base installation, install both `base-system` and `pinebookpro-base`. +This package provides important configurations and installs the necessary +dependencies. + +Before running `grub-install`, append the following to `/etc/default/grub`: + +``` +GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT console=ttyS2,115200 video=eDP-1:1920x1080x60" +GRUB_DEFAULT_DTB="rockchip/rk3399-pinebook-pro.dtb" +``` + +> Note: if using another bootloader, ensure the kernel cmdline arguments +> `console=ttyS2,115200 video=eDP-1:1920x1080x60` are used. From 3dd92040610a1472ac0062a9de37b4e04717d1dd Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Wed, 22 Jan 2025 01:39:03 -0500 Subject: [PATCH 8/9] installation/guides/arm-devices/apple-silicon: add page Co-authored-by: dkwo --- src/SUMMARY.md | 2 + .../guides/arm-devices/apple-silicon.md | 50 +++++++++++++++++++ src/installation/guides/arm-devices/index.md | 1 + 3 files changed, 53 insertions(+) create mode 100644 src/installation/guides/arm-devices/apple-silicon.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index aa2f3e1a..969193fa 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -15,6 +15,8 @@ - [Full Disk Encryption](./installation/guides/fde.md) - [Root on ZFS](./installation/guides/zfs.md) - [ARM Devices](./installation/guides/arm-devices/index.md) + - [Apple Silicon + (Asahi)](./installation/guides/arm-devices/apple-silicon.md) - [Lenovo Thinkpad X13s](./installation/guides/arm-devices/thinkpad-x13s.md) - [Pinebook Pro](./installation/guides/arm-devices/pinebook-pro.md) diff --git a/src/installation/guides/arm-devices/apple-silicon.md b/src/installation/guides/arm-devices/apple-silicon.md new file mode 100644 index 00000000..e54c41d7 --- /dev/null +++ b/src/installation/guides/arm-devices/apple-silicon.md @@ -0,0 +1,50 @@ +# Apple Silicon + +Void's Apple Silicon support is based on Asahi Linux. See their +[website](https://asahilinux.org) and +[documentation](https://github.com/AsahiLinux/docs/wiki) for more information. + +## Installation + +Before installing, use the Asahi Linux install script to install "UEFI +environment only" from macOS: + +``` +macos $ curl https://alx.sh > alx.sh +macos $ sh ./alx.sh +``` + +Then, [create a Live USB](../../live-images/prep.md) using an [Apple Silicon +Void Linux ISO](https://voidlinux.org/download/#arm%20platforms). U-Boot +(installed by the Asahi installer) should show the external USB as a boot +option. If it does not, run these commands in the U-Boot prompt to boot: + +``` +U-Boot> setenv boot_targets "usb" +U-Boot> setenv bootmeths "efi" +U-Boot> boot +``` + +To install, follow the [chroot install guide](../chroot.md), using the "XBPS +method", observing the following modifications: + +For the base installation, install `base-system`, `asahi-base`, and +`asahi-scripts`. These packages provide important configurations and install the +necessary dependencies. When running `grub-install`, add the `--removable` flag. + +To use another bootloader with `m1n1`, ensure it installs the bootloader EFI +executable at `EFI\BOOT\BOOTAA64.EFI` within the EFI system partition. `m1n1` +can also be configured to boot a kernel and initramfs directly, without a +bootloader. To do this, change the `PAYLOAD` in `/etc/default/m1n1-kernel-hook` +to `kernel`. + +## Audio + +The `asahi-audio` package is required for audio. Ensure the speakersafetyd +service is [enabled](../../../config/services/index.md#enabling-services), and +set up [pipewire and wireplumber](../../../config/media/pipewire.md). + +## Firmware + +Firmware can be updated with `asahi-fwupdate` from `asahi-scripts`. It is +recommended to do so whenever the `asahi-firmware` package is updated. diff --git a/src/installation/guides/arm-devices/index.md b/src/installation/guides/arm-devices/index.md index aa5a7c33..0ddf7454 100644 --- a/src/installation/guides/arm-devices/index.md +++ b/src/installation/guides/arm-devices/index.md @@ -18,6 +18,7 @@ specific to such devices. Platform-specific documentation is available for: +- [Apple Silicon](./apple-silicon.md) - [Lenovo ThinkPad X13s](./thinkpad-x13s.md) - [Pinebook Pro](./pinebook-pro.md) - [Raspberry Pi](./raspberry-pi.md) From 9d101494373f2e9ae03e5a3060539534a4aff1be Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Sat, 25 Jan 2025 13:39:36 -0500 Subject: [PATCH 9/9] installation/guides/arm-devices/apple-silicon: fix for LaTeX build --- src/installation/guides/arm-devices/apple-silicon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/installation/guides/arm-devices/apple-silicon.md b/src/installation/guides/arm-devices/apple-silicon.md index e54c41d7..17a15de2 100644 --- a/src/installation/guides/arm-devices/apple-silicon.md +++ b/src/installation/guides/arm-devices/apple-silicon.md @@ -33,7 +33,7 @@ For the base installation, install `base-system`, `asahi-base`, and necessary dependencies. When running `grub-install`, add the `--removable` flag. To use another bootloader with `m1n1`, ensure it installs the bootloader EFI -executable at `EFI\BOOT\BOOTAA64.EFI` within the EFI system partition. `m1n1` +executable at `EFI/BOOT/BOOTAA64.EFI` within the EFI system partition. `m1n1` can also be configured to boot a kernel and initramfs directly, without a bootloader. To do this, change the `PAYLOAD` in `/etc/default/m1n1-kernel-hook` to `kernel`.