Gentoo op de Framework: deel 1

Nu ik een Intel en AMD versie van de Framework 13 heb, heb ik besloten om op de Intel versie Gentoo Linux weer eens te installeren/proberen.

De laatste keer dat ik een installatie van Gentoo deed was op de “Trashcan” Mac Pro, en dat is alweer een paar jaar geleden.

In deze serie blogs ga ik bijhouden wat ik doe en waar ik eventueel tegenaan loop, met oplossingen en tips en trucs.

Het ruwe plan:

Het maken van de installatie stick

Voor je dit kunt doen heb je 2 dingen nodig:

  1. Een lege USB stick
  2. De Gentoo installatie ISO via de website van Gentoo

Daarna is het een kwestie van uitzoeken hoe je USB stick heet als je deze inprikt. Op Linux kan dit op vele manieren, ik gebruikte GNOME disks en zag dat mijn stick /dev/sdc heette. Met die kennis in het achterhoofd:

sudo dd if=~/Downloads/install-amd64-minimal-<tab tab>.iso of=/dev/sdc bs=4M status=progress oflag=sync

Als dit klaar is de USB stick uit de PC pluggen en in de Framework pluggen. Om te booten vanaf USB op een Framework de F12 toets indrukken tijdens het starten van de laptop. Je krijgt dan, als je dit goed doet, een keuze menu met bootbare opties.

Krijg je een melding of waarschuwing dat de stick niet geboot kan worden door secure boot instellingen, sluit de laptop dan af en boot in de UEFI om dit uit te zetten. Dat doe je door F2 in te drukken tijdens het starten van de laptop.

Als dit goed gegaan is zie je Gentoo. Je krijgt een tweetal vragen (taal en toetsenbord), beiden waren voor mij standaard goed (Engels en US/English).

Schijf partitioneren

De installatiehandleiding van Gentoo komt dan aan bij het partitioneren van de schijf. Deze specificatie volg ik, met één uitzondering: mijn / partitie gaat geen XFS worden, maar BTRFS.

Verder nog één klein detail, de handleiding spreekt van /dev/sda als schijf, maar in de Framework zit een NVME schijf, dus dat is /dev/nvme0n1.

Het detailoverzicht:

Volg de handleiding tot aan de sectie Creating file systems. Hier komt een aanpassing omdat ik gebruik maak van BTRFS.

Als de / partitie geformatteerd is met BTRFS (mkfs.btrfs /dev/nvme0n1p3) is het een kwestie eerst de 2 subvolumes aan te maken die ik nodig heb:

mount /dev/nvme0n1p3 /mnt/gentoo
cd /mnt/gentoo
btrfs subvolume create root
btrfs subvolume create home
cd /
umount /mnt/gentoo

Configuratie van de USE variabele

De rest van de handleiding tot nu toe heeft geen aanpassingen of tweaks voor mijn setup nodig. Tot je bij de USE (zie ook de handleiding hiervoor) variabele aankomt. Deze stel ik voor mijn Framework als volgt in:

USE="-X -kde -qt5 -dvd -alsa -cdr -gnome wayland gtk pulseaudio dbus"

Lees ook de volgende pagina(’s) uit het Gentoo Handbook door:

Configuratie van de VIDEO_CARDS variabele

Voor de Framework 13 is dit intel i915. Dus niet alleen intel of i915, maar een combinatie van de twee. Vraag me niet waarom.

Configuratie voor systemd-boot

Om ervoor te zorgen dat het systeem kan booten heeft systemd een aantal vlaggen nodig:

mkdir -p -v /etc/portage/package.use/sys-apps/
echo "sys-apps/systemd boot kernel-install boot kernel-install ukify policykit" | tee /etc/portage/package.use/sys-apps/systemd

En om het systeem alvast klaar te maken om te booten met UKIs:

touch /etc/kernel/install.conf
echo layouut=uki | tee /etc/kernel/install.conf
echo uki_generator=ukify | tee -a /etc/kernel/install.conf

En

touch /etc/kernel/uki.conf
echo '[UKI]' | tee /etc/kernel/uki.conf
echo 'Cmdline=root=PARTUUID=<partuuid van je / partitie> ro rootflags=subvol=root quiet' | tee -a /etc/kernel/uki.conf

Een tip, installeer sys-kernel/installkernel-systemd om het automatisch te laten genereren van een UKI en het plaatsen hiervan in de juiste map (/efi of /boot/efi) te automatiseren.

Installatie systemd-boot

Dit is een oneliner: bootctl install. Dit plaatst de boot code in de juiste map (/efi of /boot/efi) en plaatst de juiste configuratiebestanden in de juiste map(pen).

Configuratie kernel

Voor de configuratie van de kernel heeft Gentoo tegenwoordig 3 methods:

  1. Distribution kernels
  2. Genkernel
  3. Doe het zelf

Ik heb gekozen voor de 3e methode. Volg de stappen in de handleiding, maar let op de volgende zaken:

Let op dat je hiervoor het pakket linux-firmware moet installeren om de benodigde firmware bestanden beschikbaar te maken.

Ik heb er hier ook voor gekozen deze in de kernel in te bakken in plaats van de beide delen (i915 en iwlwifi) als kernelmodules te compileren. Dit heb ik gedaan vanwege de snelheidswinst.

Als je dit gedaan hebt is het een kwestie van de rest van de handleiding volgen. Als je de tip hierboven hebt gevolgd en het pakket sys-kernel/installkernel-systemd hebt geïnstalleerd zal make install ukify aanroepen en een UKI maken en deze op de juiste plek op de schijf wegschrijven, zodat je dit niet zelf hoeft te doen.

Aanmaken gebruiker

De handleiding heeft het hier over het instellen van het root wachtwoord. Zelf doe ik dit liever niet en laat ik de root account “op slot”.

Om toch op het systeem te kunnen werken doe ik de volgende dingen:

De gebruiker aanmaken

Dat is te doen met useradd -c Sebastiaan -m -G wheel,users,pipewire -s /bin/bash sebastiaan en vergeet niet het wachtwoord in te stellen met passwd sebastiaan.

sudo configureren en installeren

Standaard heeft sudo de optie aanstaan om mailtjes te versturen als een gebruiker te vaak een wachtwoord fout intikt. Dat is iets wat ik niet wil en niet nodig heb, dus dit schakel ik uit. Als ik toch bezig ben schakel ik de optie in om sudo me te laten uitschelden:

mkdir -p /etc/portage/package.use/app-admin/
echo "app-admin/sudo -sendmail offensive" | tee /etc/portage/package.use/app-admin/sudo

Daarna installeer je sudo emerge --ask app-admin/sudo. Hierna moet je met visudo zorgen dat de groep wheel ook commando’s mag uitvoeren met sudo. Standaard staat deze regel uit. Pas dit aan en sla de wijzigingen op.

Vervolgstappen

Volg de rest van het handbook. De vervolgstappen komen in een volgende blog. Dit is voor nu genoeg informatie, meer maakt dit alleen maar lastiger te lezen.

Wat zijn de vervolgstappen?