Sway on Laptop

From Alpine Linux
Revision as of 22:37, 17 February 2024 by Quq (talk | contribs)

Quq's guide for installing Alpine with Sway, for latitude 7370.

Download Alpine Linux, verify checksum then

 dd if=alpine-extended.iso of=/dev/sdb

Known issues: screen sharing appears to be broken.

More details forth-coming.

Press f12 at boot to enter Setup, wipe disk under Maintenance>Data Wipe. Check Wipe on Next Boot check box. Exit.

Plug in external storage device with alpine extended on it. Let it boot.

Login as root. There is no password.

Set up internet connection

 # -r is needed for starting the network after configuration
 setup-interfaces -r
 Initialize: wlan0
 Enter SSID: my net
 Password, DHCP.

Set up SSH server:

  setup-sshd
  # example:
  ssh server:        openssh
  allow root:        "prohibit-password" or "yes"
  ssh key:           "none" or "<public key>"

Configurations set here will be copied verbatim to the installed system.

Set root password or /root/.ssh/authorized_keys. Choose a strong root password, as it will be copied to the installed system. However, authorized_keys is not copied.

Set up time:

 setup-ntp chrony

Set up repos:

 setup-apkrepos -c
  # show mirror list, then select geographically nearest mirror
  # -c argument enables community repo

Larger font for high res screen:

 apk add terminus-font

Partition the disk:

 apk add parted cryptsetup e2fsprogs
 parted --script --align=optimal /dev/sda -- mklabel gpt mkpart EFI 1MiB 4GiB mkpart alpine 4GiB -1MiB set 1 esp on
 mkfs.vfat /dev/sda1
 cryptsetup luksFormat --type luks2 /dev/sda2
 cryptsetup luksOpen /dev/sda2 alpine-luks
 mkfs.ext4 /dev/mapper/alpine-luks

Mount.

 mount -t ext4 /dev/mapper/alpine-luks /mnt
 mkdir /mnt/boot
 mount -t vfat /dev/sda1 /mnt/boot

Generate Unified Kernel Image as Bootloader

 apk add secureboot-hook gummiboot-efistub efibootmgr
 apk add efi-mkkeys

Install system:

 BOOTLOADER=none setup-disk -m sys -k edge -s 0 /mnt

Blkid:

 ROOTUUID=$(blkid /dev/sda2 | sed 's|.*UUID="||' | sed 's|".*||')
 CRPTUUID=$(blkid /dev/mapper/alpine-luks | sed 's|.*UUID="||' | sed 's|".*||')

Cmdline:

 echo cmdline=\"root=UUID=$CRPTUUID cryptroot=UUID=$ROOTUUID  cryptdm=root rootfstype=ext4 modules=sd-mod,usb-storage,ext4\" >> /mnt/etc/kernel-hooks.d/secureboot.conf

Disable mkinitfs trigger:

 echo 'disable_trigger=yes' >> /mnt/etc/mkinitfs/mkinitfs.conf

Enable cryptroot in mkinitfs:

  sed -i 's|nvme|nvme cryptsetup|' /mnt/etc/mkinitfs/mkinitfs.conf

Chroot again:

 chroot /mnt /bin/sh

Create dummy efi keys:

 efi-mkkeys -s "Your Name" -o /etc/uefi-keys

Generate image:

 apk fix kernel-hooks

Exit chroot and power off:

 exit
 poweroff