macOS-to-Arch: +9 patterns (pacman lock, dep conflict, DKMS build fail, PipeWire, WirePlumber, Bluetooth rfkill/profile, GPU hang, XWayland crash, OOM killer, disk I/O, NetworkManager) Windows-to-Debian: +11 patterns (dpkg interrupted, PipeWire, PulseAudio, Bluetooth rfkill/profile, NTFS dirty/force flags, disk I/O, USB reset, OOM killer, GPU hang, NetworkManager, CUPS unavailable) All patterns target sources Robin actually watches: journald, kmsg, applog. match_text strings use invariant substrings from real log output.
177 lines
8.4 KiB
TOML
177 lines
8.4 KiB
TOML
[meta]
|
|
source_os = "macos"
|
|
target_distro_family = "arch"
|
|
|
|
[log_paths]
|
|
steam = "~/.local/share/Steam/logs/content_log.txt"
|
|
proton = "~/.local/share/Steam/logs/proton_log.txt"
|
|
retroarch = "~/.config/retroarch/retroarch.log"
|
|
lutris = "~/.cache/lutris/logs/lutris.log"
|
|
|
|
# ── AUR / package management ────────────────────────────────────────────────
|
|
|
|
[[patterns]]
|
|
id = "aur-build-failure"
|
|
sources = ["journald"]
|
|
match_text = "error: failed to build"
|
|
severity = "warn"
|
|
title = "AUR package build failed"
|
|
body = "A package failed to compile from source. This usually means a missing dependency or a broken AUR package. Check the output for the specific error, or look up the package comments on aur.archlinux.org."
|
|
|
|
[[patterns]]
|
|
id = "aur-pgp-key"
|
|
sources = ["journald"]
|
|
match_text = "unknown public key"
|
|
severity = "warn"
|
|
title = "Missing PGP key for AUR package"
|
|
body = "The package signature can't be verified. The key ID will be in the error — run: gpg --recv-keys <keyid>"
|
|
|
|
[[patterns]]
|
|
id = "pacman-db-lock"
|
|
sources = ["journald"]
|
|
match_text = "could not lock database: File exists"
|
|
severity = "warn"
|
|
title = "Pacman database is locked"
|
|
body = "Another pacman process left a lock file behind. If nothing is running: sudo rm /var/lib/pacman/db.lck — then retry your command."
|
|
|
|
[[patterns]]
|
|
id = "pacman-dep-conflict"
|
|
sources = ["journald"]
|
|
match_text = "conflicting dependencies"
|
|
severity = "warn"
|
|
title = "Package dependency conflict"
|
|
body = "Two packages need incompatible versions of something. On Arch this sometimes happens with AUR packages. Read the conflict message carefully — one of the packages usually has to be replaced or manually removed first."
|
|
|
|
[[patterns]]
|
|
id = "dkms-build-fail"
|
|
sources = ["journald"]
|
|
match_text = "Error! Build of"
|
|
severity = "warn"
|
|
title = "Kernel module failed to build"
|
|
body = "A DKMS kernel module didn't compile after a kernel update. This can break hardware that needs out-of-tree drivers (e.g. some wifi cards, VirtualBox, NVIDIA). Check: dkms status — then reinstall the failing module package."
|
|
|
|
# ── Audio ────────────────────────────────────────────────────────────────────
|
|
|
|
[[patterns]]
|
|
id = "pipewire-connect-fail"
|
|
sources = ["journald"]
|
|
match_text = "Failed to connect to PipeWire"
|
|
severity = "warn"
|
|
title = "Audio server not responding"
|
|
body = "An app can't reach PipeWire (the audio server). Try: systemctl --user restart pipewire pipewire-pulse — if that doesn't help, log out and back in."
|
|
|
|
[[patterns]]
|
|
id = "wireplumber-fail"
|
|
sources = ["journald"]
|
|
match_text = "Failed to activate"
|
|
severity = "warn"
|
|
title = "Audio session manager error"
|
|
body = "WirePlumber (the audio session manager) had a problem activating a device. Try: systemctl --user restart wireplumber — if audio devices keep disappearing, check that your user is in the 'audio' group: groups $USER"
|
|
|
|
# ── Bluetooth ────────────────────────────────────────────────────────────────
|
|
|
|
[[patterns]]
|
|
id = "bluetooth-rfkill-blocked"
|
|
sources = ["journald"]
|
|
match_text = "Blocked through rfkill"
|
|
severity = "warn"
|
|
title = "Bluetooth is blocked by rfkill"
|
|
body = "The system's radio kill switch is blocking Bluetooth. Run: rfkill list — if Bluetooth shows 'Hard blocked: no, Soft blocked: yes', run: rfkill unblock bluetooth"
|
|
|
|
[[patterns]]
|
|
id = "bluetooth-profile-unavailable"
|
|
sources = ["journald"]
|
|
match_text = "br-connection-profile-unavailable"
|
|
severity = "info"
|
|
title = "Bluetooth profile not available"
|
|
body = "A Bluetooth device connected but a required profile isn't available. This often means missing codecs. Try: sudo pacman -S pulseaudio-bluetooth (if using PulseAudio) or check that pipewire-bluetooth is installed."
|
|
|
|
# ── GPU / display ─────────────────────────────────────────────────────────────
|
|
|
|
[[patterns]]
|
|
id = "gpu-hang"
|
|
sources = ["kmsg"]
|
|
match_text = "GPU HANG"
|
|
severity = "warn"
|
|
title = "GPU hang detected"
|
|
body = "The graphics card stopped responding. Linux recovered, but this can cause game crashes and display glitches. Common causes: overheating, or a driver bug with the current kernel. Check GPU temperature and consider updating mesa or your GPU driver package."
|
|
|
|
[[patterns]]
|
|
id = "xwayland-crash"
|
|
sources = ["journald"]
|
|
match_text = "XWayland server terminated unexpectedly"
|
|
severity = "warn"
|
|
title = "XWayland crashed"
|
|
body = "The compatibility layer for older X11 apps crashed. Apps using X11 (not Wayland-native) will stop working until you restart your session. If this keeps happening, try running the affected app with WAYLAND_DISPLAY= cleared to force X11 mode."
|
|
|
|
# ── Hardware / kernel ─────────────────────────────────────────────────────────
|
|
|
|
[[patterns]]
|
|
id = "kernel-driver-firmware"
|
|
sources = ["kmsg"]
|
|
match_text = "firmware: failed to load"
|
|
severity = "warn"
|
|
title = "Missing firmware for hardware"
|
|
body = "Your system is missing a firmware file for a hardware component. On Arch: sudo pacman -S linux-firmware — then reboot."
|
|
|
|
[[patterns]]
|
|
id = "oom-killer"
|
|
sources = ["kmsg"]
|
|
match_text = "Out of memory: Kill process"
|
|
severity = "warn"
|
|
title = "System ran out of memory"
|
|
body = "Linux had to kill a process because RAM was exhausted. On macOS, the system compresses memory instead. On Linux you can add swap space as a safety net: consider a swapfile if your machine has limited RAM."
|
|
|
|
[[patterns]]
|
|
id = "disk-io-error"
|
|
sources = ["kmsg"]
|
|
match_text = "Buffer I/O error on device"
|
|
severity = "warn"
|
|
title = "Disk read/write error"
|
|
body = "A storage device had an I/O error. This can mean a failing drive, a bad cable, or a filesystem problem. Check the device with: sudo smartctl -a /dev/sdX — replace sdX with the device from the error."
|
|
|
|
# ── Network ──────────────────────────────────────────────────────────────────
|
|
|
|
[[patterns]]
|
|
id = "networkmanager-activation-fail"
|
|
sources = ["journald"]
|
|
match_text = "Activation failed"
|
|
severity = "info"
|
|
title = "Network connection failed to activate"
|
|
body = "NetworkManager couldn't connect to a network. Common causes: wrong wifi password, a driver issue, or the network requiring a login page. Check: nmcli device status"
|
|
|
|
# ── Media ────────────────────────────────────────────────────────────────────
|
|
|
|
[[patterns]]
|
|
id = "missing-codec"
|
|
sources = ["journald"]
|
|
match_text = "GStreamer: Failed to find plugin"
|
|
severity = "info"
|
|
title = "Missing media codec"
|
|
body = "A media codec isn't installed. On Arch: sudo pacman -S gst-plugins-good gst-plugins-bad gst-libav"
|
|
|
|
# ── Gaming ────────────────────────────────────────────────────────────────────
|
|
|
|
[[patterns]]
|
|
id = "proton-runtime-missing"
|
|
sources = ["applog:proton"]
|
|
match_text = "wine: cannot find"
|
|
severity = "warn"
|
|
title = "Proton runtime issue"
|
|
body = "Steam Proton couldn't find a required file. Try: right-click the game -> Properties -> Local Files -> Verify game files."
|
|
|
|
[[patterns]]
|
|
id = "steam-disk-write"
|
|
sources = ["applog:steam"]
|
|
match_text = "ERROR: failed to write"
|
|
severity = "warn"
|
|
title = "Steam disk write error"
|
|
body = "Steam can't write to its library folder. Check ownership: ls -la ~/.local/share/Steam"
|
|
|
|
[[patterns]]
|
|
id = "retroarch-shader-fail"
|
|
sources = ["applog:retroarch"]
|
|
match_text = "Failed to compile shader"
|
|
severity = "info"
|
|
title = "RetroArch shader failed to compile"
|
|
body = "A graphical shader couldn't load. Try switching preset in Settings -> Video -> Shaders."
|