[meta] source_os = "linux" target_distro_family = "arch" # Fedora/RHEL/CentOS user on their first Arch install. # Body text assumes DNF, SELinux, and RPM Fusion familiarity. [log_paths] pacman = "/var/log/pacman.log" steam = "~/.local/share/Steam/logs/content_log.txt" proton = "~/.local/share/Steam/logs/proton_log.txt" lutris = "~/.cache/lutris/logs/lutris.log" # ── pacman / AUR ───────────────────────────────────────────────────────────── [[patterns]] id = "pacman-db-lock" sources = ["journald", "applog:pacman"] match_text = "could not lock database: File exists" severity = "warn" title = "pacman database locked" body = "Lock file left from a crashed pacman run — like a dnf transaction that got killed. Remove if nothing is running: sudo rm /var/lib/pacman/db.lck — check first: fuser /var/lib/pacman/db.lck" [[patterns]] id = "partial-upgrade-warning" sources = ["applog:pacman"] match_text = "warning: database file for" severity = "info" title = "Package database out of sync" body = "Arch rule #1 coming from Fedora: never run pacman -Sy (sync only). On Fedora, dnf check-update is safe; on Arch, syncing the database without upgrading breaks the system. Always: pacman -Syu" [[patterns]] id = "pacman-dep-conflict" sources = ["journald", "applog:pacman"] match_text = "conflicting dependencies" severity = "warn" title = "Dependency conflict" body = "Unlike dnf which auto-resolves most conflicts, pacman puts the choice on you. Read the conflict — typically one package is being replaced (e.g. pipewire-pulse replaces pulseaudio). Remove the old one first." [[patterns]] id = "aur-build-failure" sources = ["journald", "applog:pacman"] match_text = "error: failed to build" severity = "warn" title = "AUR package build failed" body = "The AUR is source-only — no binary RPM equivalent. makepkg compiles from a PKGBUILD. Read the build output; check the package's AUR comments page. paru/yay handle makedepends automatically." [[patterns]] id = "aur-pgp-key" sources = ["journald", "applog:pacman"] match_text = "unknown public key" severity = "warn" title = "PGP key not in keyring" body = "Import the key: gpg --recv-keys — different from RPM's --import; this is GnuPG's own keyring used by makepkg." [[patterns]] id = "chaotic-aur-sig-fail" sources = ["journald", "applog:pacman"] match_text = "signature from" severity = "warn" title = "Package signature verification failed" body = "Chaotic-AUR key not trusted. Import: sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com && sudo pacman-key --lsign-key 3056513887B78AEB" # ── SELinux → no SELinux ────────────────────────────────────────────────────── [[patterns]] id = "selinux-remnant" sources = ["journald"] match_text = "type=AVC" severity = "info" title = "SELinux audit entry (ignored on Arch)" body = "Arch doesn't ship SELinux by default — if you see this, you may have carried over a journal from a Fedora partition, or installed selinux-utils manually. No action needed unless you intentionally set up SELinux on Arch." # ── Kernel / DKMS ───────────────────────────────────────────────────────────── [[patterns]] id = "dkms-build-fail" sources = ["journald"] match_text = "Error! Build of" severity = "warn" title = "DKMS module failed to build" body = "A kernel module didn't compile after a kernel update. More frequent on Arch's rolling kernel than on Fedora's slower cadence. Check: dkms status — reinstall the failing module package." [[patterns]] id = "kernel-driver-firmware" sources = ["kmsg"] match_text = "firmware: failed to load" severity = "warn" title = "Firmware file missing" body = "sudo pacman -S linux-firmware — covers most hardware. Some chips need AUR packages (similar to RPM Fusion nonfree on Fedora)." # ── System ──────────────────────────────────────────────────────────────────── [[patterns]] id = "locale-not-set" sources = ["journald"] match_text = "Cannot set LC_ALL to default locale" severity = "info" title = "Locale not generated" body = "Unlike Fedora where locale is configured in the installer, Arch requires manual setup. Edit /etc/locale.gen, uncomment your locale, run: sudo locale-gen — then set LANG in /etc/locale.conf." [[patterns]] id = "oom-killer" sources = ["kmsg"] match_text = "Out of memory: Kill process" severity = "warn" title = "OOM killer fired" body = "A process was killed for RAM. Fedora enables zswap by default; Arch doesn't. Add zram: sudo pacman -S zram-generator" [[patterns]] id = "disk-io-error" sources = ["kmsg"] match_text = "Buffer I/O error on device" severity = "warn" title = "Disk I/O error" body = "Check SMART: sudo smartctl -a /dev/sdX — install smartmontools: sudo pacman -S smartmontools" # ── Audio ───────────────────────────────────────────────────────────────────── [[patterns]] id = "pipewire-connect-fail" sources = ["journald"] match_text = "Failed to connect to PipeWire" severity = "warn" title = "PipeWire not responding" body = "Both Fedora and Arch ship PipeWire by default. Restart: systemctl --user restart pipewire pipewire-pulse wireplumber" [[patterns]] id = "bluetooth-rfkill-blocked" sources = ["journald"] match_text = "Blocked through rfkill" severity = "warn" title = "Bluetooth rfkill blocked" body = "rfkill unblock bluetooth — check: rfkill list to distinguish hard vs soft block." # ── GPU / display ───────────────────────────────────────────────────────────── [[patterns]] id = "gpu-hang" sources = ["kmsg"] match_text = "GPU HANG" severity = "warn" title = "GPU hang" body = "GPU stopped responding. On Arch, AMD uses mesa (pacman -S mesa); NVIDIA uses nvidia-dkms. Unlike Fedora where RPM Fusion handles NVIDIA, on Arch install from the official repos." [[patterns]] id = "xwayland-crash" sources = ["journald"] match_text = "XWayland server terminated unexpectedly" severity = "warn" title = "XWayland crashed" body = "X11 apps dead until session restart. Fedora GNOME also defaults to Wayland; the behavior is the same." # ── Network ─────────────────────────────────────────────────────────────────── [[patterns]] id = "networkmanager-activation-fail" sources = ["journald"] match_text = "Activation failed" severity = "info" title = "NetworkManager: connection failed" body = "nmcli device status — same NetworkManager as Fedora. If a wifi adapter is missing, check dmesg for firmware errors." # ── Gaming ──────────────────────────────────────────────────────────────────── [[patterns]] id = "proton-runtime-missing" sources = ["applog:proton"] match_text = "wine: cannot find" severity = "warn" title = "Proton runtime issue" body = "Right-click game in Steam -> Properties -> Local Files -> Verify integrity."