Skip to main content

Base Install

This blog is for my notes on setting up Arch from scratch to my liking. I use KDE Plasma as my desktop and my computers have a NVIDIA GPU (my Asus laptop also has an additional integrated GPU). I am not going to cover downloading the ISO, putting it on a USB, booting from the USB or running the Archinstall installer (selecting the Plasma desktop).

Get WIFI running
iwctl
station wlan0 connect xxxxxxx

May need: sudo mkfs -t ext4 /dev/nvme1n1 if you have btrfs on old installation

When running the arch installer:

1. Don't have a /home partition added! 
2. Don't forget desktop!
3. Install both linux and linux-zen kernels
4. Add additional packages:  wget git micro duf base-devel kde-applications

to log in the first time it may be helpful to create /usr/lib/modprobe.d/nvidia.conf with "options nvidia_drm modeset=1 fbdev=1"   (although cachyos-settings will overwrite later)

Apparmor 

  1. Add the following kernel parameters to your Boot Manager, see Boot Manager Configuration for reference

    lsm=landlock,lockdown,yama,integrity,apparmor,bpf
  2. Install apparmor and apparmord (Set of over +1500 profiles) packages

    Terminal window
    sudo pacman -S apparmor apparmor.d-git
  3. Enable/Start AppArmor service

    Terminal window
    systemctl enable --now apparmor.service
  4. Enable caching for AppArmor profiles

    /etc/apparmor/parser.conf
    ## Add the following lines:
    write-cache
    Optimize=compress-fast

    Save the file and reboot.

Example (/boot/limine.conf):

/boot/limine.conf
timeout: 5
default_entry: 2 # Points directly to the 'linux-cachyos' entry below
/+CachyOS # Entry 1: A directory (use /+ to expand by default)
//linux-cachyos # Entry 2: The actual bootable entry
protocol: linux
kernel_path: boot():/vmlinuz-linux-cachyos
cmdline: quiet splash root=UUID=... rw # Basic kernel parameters
module_path: boot():/initramfs-linux-cachyos.img

put apparmor kernel options after splash in cmdline:

Also:
Edit the configuration file: Modify the KERNEL_CMDLINE variables in /etc/default/limine. You can set default parameters for all kernels or specific parameters for certain kernel names (e.g., linux-cachyos).
/etc/default/limine
# Default parameters for most kernels
KERNEL_CMDLINE[default]="quiet splash rd.udev.log_priority=3"
# Specific parameters for the 'linux-cachyos' kernel
KERNEL_CMDLINE["linux-cachyos"]="quiet splash mitigations=off"
# Parameters for fallback entries (if generated)
# KERNEL_CMDLINE[fallback]="..."

Installing yay

sudo pacman -S --needed base-devel git 
cd ~/Downloads
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Snapper support:

  1. Create the file /etc/default/limine if it doesn’t already exist.
  2. Make sure to manually set ESP_PATH=/boot in this file.
  3. Try sudo limine-snapper-sync in a terminal, does it work?
  4. If works, enable the service systemctl enable --now limine-snapper-sync.service

yay -Syu btrfs-assistant 

Probably reboot and then run Btrfs-assistant

Gnome fractional scaling  
set org.gnome.mutter experimental-features '["scale-monitor-framebuffer"]' https://wiki.archlinux.org/title/HiDPI#Wayland

Warp terminal

download zst from preview site and do a sudo pacman U ./xxxx.zst file

Install cachyos mirrors

wget https://mirror.cachyos.org/cachyos-repo.tar.xz
tar xvf cachyos-repo.tar.xz && cd cachyos-repo
sudo ./cachyos-repo.sh

You will want to run Cachy's
sudo chwd -a 
to auto detect hardware

Install All Packages (from prior installs)

Using a previously created package list from prior installs (pacman -Qqet > pkglist.txt), type yay -S --needed --noconfirm  - < YOURPKGLIST.txt with the downloaded package list below.  Current list: https://gist.github.com/whelanh/28f620a1f0890d73f2be251344658f9a

Check if Nvidia really installed

sudo cat /sys/module/nvidia_drm/parameters/modeset
 
systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service

Install Cachyos kernel

yay -S systemd-boot-manager
yay -S cachyos-sysctl-manager
sudo sdboot-manage
Usage: /usr/bin/sdboot-manage [OPTIONS]... [ACTION]

Actions:
  gen     Generates entries for systemd-boot based on installed kernels
  remove  Removes orphaned systemd-boot entries
  setup   Installs systemd-boot and generate initial entries
  update  Updates systemd-boot

sudo pacman -S linux-cachyos linux-cachyos-headers
reboot
if you use systemd-boot-manager (in the Cachyos Repos....not AUR), it will create the boot entries for you
 



Comments

Popular posts from this blog

Install Windows 11 on Virt-Manager

 Virt-Manager will have been installed in base install.  But to enable it (make sure SVM, or whatever virtualization is called in your BIOS is enabled). From https://computingforgeeks.com/install-kvm-qemu-virt-manager-arch-manjar/ sudo pacman -S qemu-full virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat dmidecode ip tables libguestfs edk2-ovmf swtpm Then enable and start libritd.service sudo systemctl enable libvirtd.service sudo systemctl start libvirtd.service sudo micro /etc/libvirt/libvirtd.conf Set the UNIX domain socket group ownership to libvirt, (around line 85 ) unix_sock_group = "libvirt" Set the UNIX socket permissions for the R/W socket (around line 102 ) unix_sock_rw_perms = "0770" Add your user account to libvirt group.   sudo usermod -a -G libvirt $(whoami) newgrp libvirt Restart libvirt daemon. sudo systemctl restart libvirtd.service Section below is quoted directly from https://linustechtips.com/topic/1379063-windows-11-in-virt-mana...

Getting rtcwake working on Bluefin

#!/bin/bash # User systemd setup for auto suspend/wake on Bluefin #Please run these two commands manually: #1. First, create the sudo rule: echo "$( whoami ) ALL=(ALL) NOPASSWD: /usr/bin/rtcwake" | sudo tee /etc/sudoers.d/rtcwake-nopasswd #bash #2. Then set the correct permissions: sudo chmod 440 /etc/sudoers.d/rtcwake-nopasswd #bash #After you've run those commands, we can test if passwordless sudo works: sudo rtcwake -m show #❯ sudo rtcwake -m show #alarm: off # Create user service directory mkdir -p ~/.config/systemd/user # Create helper script for suspend + rtcwake mkdir -p ~/bin cat > ~/bin/rtc-suspend.sh << 'EOF' #!/bin/bash # Helper script to suspend and set RTC wake time # Usage: rtc-suspend.sh "wake_time_description" if [ $# -ne 1 ]; then echo "Usage: $0 'wake_time_description'" echo "Example: $0 '15:00 today'" exit 1 fi wake_time="$1" wake_timestamp=$(date -d ...