In the latest Arch Linux ISO
- Set the console keyboard
loadkeys sv-latin1
- Connect to the internet Find device name
root@archiso ~ # ip addr show
2: wlan0: ...
iwctl station wlan0 scan
iwctl station wlan0 get-networks
root@archiso ~ # iwctl --passphrase <passphrase> station wlan0 connect <NetworkName>
Archinstall ships with a pre-programmed Guided Installer guiding you through the mandatory steps as well as some optional configurations that can be done.
To start the installer, run
root@archiso ~ # archinstall
Set
bootloader: grub (fallback: systemd-boot)
profile: Minimal
Filesystem: btrfs
packages: git, openssh, vi
otherwise my choice, see user_configuration_x1.json
X11 display server. Striving to improve the existing code base while maintaining backward compatibility to make X11 a viable choice for the future
Build and install from AUR, see README
mkdir repos
git clone git@github.com:holmen1/dotfiles.git
First install yay
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
then
./scripts/yay_install.sh ~/[path]/pkglist.txt
dont forget foreignpkglist.txt if any
See packages for more
pre-built binaries from the build factory:
cp /mnt/usb/st-0.9.2 /opt/st
cp /mnt/usb/xmonad-v0.18.0 /opt/xmonad/
and link to /usr/local/bin
link_x_config.sh
systemctl --user daemon-reload
systemctl --user enable system-monitor.timer
systemctl --user start system-monitor.timer- First, install xbindkeys
- Create a config file:
touch ~/.xbindkeysrc - Add brightness controls to ~/.xbindkeysrc:
# Decrease brightness "brightnessctl set 10%-" XF86MonBrightnessDown # Increase brightness "brightnessctl set +10%" XF86MonBrightnessUp # Simple ALSA Volume Controls "amixer -q set Master 5%+ unmute" XF86AudioRaiseVolume "amixer -q set Master 5%- unmute" XF86AudioLowerVolume "amixer -q set Master toggle" XF86AudioMute - Add xbindkeys to your .xinitrc:
# Launch key binding daemon xbindkeys &
Run the sanity check script to verify your installation:
~/repos/dotfiles/install/archinstall/sanity_check.shThis script verifies:
- Essential commands (git, ssh, xmonad, xterm)
- XMonad custom binary and configuration
- Screen locking (i3lock) functionality
- Power management (wheel group, passwordless shutdown)
- System monitoring services
- Key bindings and input controls
- Screenshot functionality (scrot, Downloads directory)
- Dotfile symlinks
- Git and SSH configuration
- Repository structure
- Install Haskell
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
- Build XMonad
On a Btrfs root file system with subvolumes, you have to make sure that all subvolumes are properly mounted as specified in fstab before entering chroot
root@archiso ~ # fdisk -l
/dev/nvme0n1p1 2048 2099199 2097152 1G EFI System
/dev/nvme0n1p2 2099200 1000213167 998113968 475.9G Linux root (x86-64)
# mount -o subvol=@ /dev/nvme0np2 /mnt
# mount -o subvol=@home /dev/nvme0np2 /mnt/home
# lsblk
# arch-chroot /mnt
chroot to user
[root@archiso /]# su - holmen1
[root@archiso /]# exit
# cd /
# umount --recursive /pa
Keeping a list of all explicitly installed packages can be useful to backup a system or quicken the installation of a new one
$ .repos/dotfiles/scripts/export_packages.sh ~/repos/linuxinstall/arch/packages/
creates files pkglist.txt and foreignpkglist.txt in the packages directory
Important:
Starting with linux-firmware >= 20250613.12fe085f-5, the package was split and the NVIDIA firmware layout changed. Upgrading from an earlier version may cause errors like:
linux-firmware-nvidia: /usr/lib/firmware/nvidia/ad103 exists in filesystem
...
-
Download new firmware packages before removing the old one (to avoid losing WiFi):
sudo pacman -Sw linux-firmware -
Remove the old package (this does NOT delete firmware files from disk):
sudo pacman -Rdd linux-firmware -
Upgrade and reinstall:
sudo pacman -Syu linux-firmware
Note: Removing
linux-firmwarewith-Rddonly removes the package from the database. The actual firmware files remain on disk, so your WiFi and other hardware should keep working during the upgrade.
References:
If you lose WiFi connectivity during a linux-firmware upgrade and cannot restore it from your installed system, you can use the Arch Linux ISO (live environment) to repair your system:
-
Boot from the latest Arch Linux ISO (USB/DVD).
-
Connect to the internet using a wired (Ethernet) connection if possible.
If WiFi is unavailable, Ethernet is the most reliable option. -
Mount your root partition and (if needed) other subvolumes:
# mount -o subvol=@ /dev/<root-partition> /mnt # mount -o subvol=@home /dev/<root-partition> /mnt/home(Replace
<root-partition>with your actual device, e.g.,nvme0n1p2.) -
Mount other necessary filesystems:
# mount /dev/<efi-partition> /mnt/boot # mount --bind /dev /mnt/dev # mount --bind /proc /mnt/proc # mount --bind /sys /mnt/sys -
Chroot into your installed system:
# arch-chroot /mnt -
Update and reinstall firmware packages:
# pacman -Syu linux-firmware(Add any other firmware packages you need, e.g.,
linux-firmware-nvidia-gsp.) -
Exit chroot and reboot:
# exit # reboot
Your system should now have the latest firmware and, if supported, WiFi should work again.
Tip:
If you need to download packages on another machine, you can copy them to /mnt/var/cache/pacman/pkg/ before installing with pacman -U.
References:
$ systemctl status NetworkManager