Pos-Installation
Double Checking
To check the timesyncd
service, run:
timedatectl status
To refresh the entire system:
sudo pacman -Syyu
Make sure to have some basic system packages installed:
sudo pacman -S --needed base-devel bash curl gcc git ncurses xz zstd
Installing Some Compilers
Install clang
:
sudo pacman -S clang
Install go
:
sudo pacman -S go
Install lua
:
sudo pacman -S lua
Install rustup
:
sudo pacman -S rustup
rustup update stable
Graphic Drivers
OpenGL
Install mesa
:
sudo pacman -S mesa
AMD
For Vulkan support:
sudo pacman -S vulkan-radeon
Nvidia
Install the nvidia
package:
sudo pacman -S nvidia
UKI
Busybox
Install busybox
to enable an emergency shell in case of a panic during the
boot process:
sudo pacman -S busybox
Microcode
Install amd-ucode
or intel-ucode
according with your CPU.
sudo pacman -S amd-ucode
sudo pacman -S intel-ucode
Booster
Install booster
:
sudo pacman -S booster
Set the configuration file accordingly:
sudo nano /etc/booster.yaml
extra_files: busybox,fsck,fsck.ext4
modules_force_load: amdgpu,hid_generic,usbhid
Note: the modules_force_load: amdgpu,hid_generic,usbhid
line is not obligatory.
For NVIDIA
you can replace amdgpu
with the following:
modules_force_load: nvidia,nvidia_modeset,nvidia_uvm,nvidia_drm
Ukify
Install systemd-ukify
:
sudo pacman -S systemd-ukify
Set the configuration accordingly:
sudo nano /etc/ukify.conf
[UKI]
Linux=/boot/vmlinuz-linux
Initrd=/boot/amd-ucode.img /boot/booster-linux.img
Cmdline=@/etc/kernel/cmdline
OSRelease=@/etc/os-release
Splash=/usr/share/systemd/bootctl/splash-arch.bmp
Note: probably this configuration isn't required because it will be replaced by
the kernel-install
one.
Kernel-install
Set the install.conf
file:
sudo nano /etc/kernel/install.conf
layout=uki
uki_generator=ukify
Set the ukify
configuration in the uki.conf
file:
sudo nano /etc/kernel/uki.conf
[UKI]
Linux=/boot/vmlinuz-linux
Initrd=/boot/amd-ucode.img /boot/booster-linux.img
Cmdline=@/etc/kernel/cmdline
OSRelease=@/etc/os-release
Splash=/usr/share/systemd/bootctl/splash-arch.bmp
To verify the current kernel-install
paths and parameters configuration, run:
kernel-install inspect
Kernel Command Line
To check the parameters your system was booted up with, run:
cat /proc/cmdline
To include new kernel parameters to the UKI
, for example nvme_load=YES
, nowatchdog
, quiet
, splash
, etc. use the /etc/kernel/cmdline
file:
sudo nano /etc/kernel/cmdline
rEFInd
Install refind
package:
sudo pacman -S refind
Install it with the refind-install
script:
refind-install
Note: for comfort I will use the su
command that launches an interactive shell
as root.
To add the catppuccin theme, create a
themes
directory inside refind installation path:
cd /efi/EFI/refind
mkdir themes
Clone the repo inside the themes
folder:
cd themes
git clone https://github.com/catppuccin/refind.git catppuccin
It requires a include themes/catppuccin/mocha.conf
line to be appended to the
end of refind.conf
file.
To go back to the refind
directory:
cd /efi/EFI/refind
We can now customize the refind.conf
by adding a new menuentry
for the
systemd-boot
boot loader. Although it might seem a bit contradictory to use
rEFInd to launch systemd-boot, rEFInd's role here is to provide a simple and
customizable interface that can handle a dual-boot scenario for different
available distros.
nano refind.conf
menuentry "Arch Linux" {
icon /EFI/refind/themes/catppuccin/assets/mocha/icons/os_arch.png
volume "ARCHIE"
loader /EFI/systemd/systemd-bootx64.efi
}
include themes/catppuccin/mocha.conf
Note the catppuccin theme being included in the last line.
For more info, check rEFInd official documentation
To exit the interactive shell simply run exit
.
Package Manager
Pacman
Update pacman
configuration file:
sudo nano /etc/pacman.conf
# Misc options
#UseSyslog
Color
ILoveCandy
#NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
An example can be found on EndeavourOS repo
Yay
First, create and cd
into an apps
directory:
mkdir apps && cd apps
To install yay
:
git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
Additional Pacman Hooks
Install extra pacman hooks for the kernel-install
:
yay -S pacman-hook-kernel-install
Pacman Utilities
Install the pacman-contrib
package:
sudo pacman -S pacman-contrib
Enable the paccache.timer
to periodically clean the pacman
cache:
systemctl enable paccache.timer
Generating the UKI
Reinstall the kernel package to trigger the kernel-install
in order to
generate the unified kernel image:
sudo pacman -S linux
To list the current available boot entries which have been configured, run:
sudo bootctl list
If everything seems correct, reboot the system:
reboot