[meta] source_os = "android" target_distro_family = "arch" # Android user on their first Arch/CachyOS install. # Assumes NO terminal experience (unless they used Termux). # Every explanation starts from first principles. # App Store analogy: pacman/AUR = Google Play + sideloading. [log_paths] steam = "~/.local/share/Steam/logs/content_log.txt" proton = "~/.local/share/Steam/logs/proton_log.txt" # ── Package management ──────────────────────────────────────────────────────── [[patterns]] id = "pacman-db-lock" sources = ["journald", "applog:pacman"] match_text = "could not lock database: File exists" severity = "warn" title = "App installer is busy" body = "The package manager (Linux's equivalent of the Play Store) got interrupted and left a lock file. A lock file is a signal to other processes that says 'I'm running, don't start.' If nothing is installing right now, remove it: open a terminal, type exactly: sudo rm /var/lib/pacman/db.lck — then press Enter and try again. 'sudo' means 'run this as administrator.'" [[patterns]] id = "partial-upgrade-warning" sources = ["applog:pacman"] match_text = "warning: database file for" severity = "info" title = "App list is out of date — update everything" body = "On Android, updates happen automatically. On Arch Linux, you need to run updates manually — and there's an important rule: always update ALL apps at the same time, never just the list. In a terminal, type: sudo pacman -Syu — then press Enter. Enter your password when asked. The -Syu means 'sync the list AND upgrade everything.'" [[patterns]] id = "pacman-dep-conflict" sources = ["journald", "applog:pacman"] match_text = "conflicting dependencies" severity = "warn" title = "Two apps conflict with each other" body = "Two packages need something that can't be shared — like two apps that both want to be the default music player. Read the message carefully. Usually one package replaces another. Remove the old one first: sudo pacman -R — then try your install again." [[patterns]] id = "aur-build-failure" sources = ["journald", "applog:pacman"] match_text = "error: failed to build" severity = "warn" title = "App build failed (AUR)" body = "The AUR is like sideloading apps on Android — you're installing from source code that gets compiled on your machine, not a pre-built app. The build failed, usually because of a missing tool or broken code. Look at the error text above this message for the specific reason. The AUR package's comments page on aur.archlinux.org often has fixes." # ── Terminal basics ─────────────────────────────────────────────────────────── [[patterns]] id = "command-not-found" sources = ["journald"] match_text = "command not found" severity = "info" title = "Command not found — app may not be installed" body = "You tried to run a program that isn't installed. On Android, apps are visible in the drawer; on Linux, they're invisible until you ask for them. To find and install the missing program, try: sudo pacman -Ss — this searches for it. Then install with: sudo pacman -S ." [[patterns]] id = "permission-denied" sources = ["journald"] match_text = "Permission denied" severity = "info" title = "Permission denied" body = "Linux has a permission system where files and folders are owned by specific users. This is more visible here than on Android. If you need admin access for a command, put 'sudo' before it — like: sudo . For files you own but can't access, check ownership with: ls -la /path/to/file" # ── System ──────────────────────────────────────────────────────────────────── [[patterns]] id = "kernel-driver-firmware" sources = ["kmsg"] match_text = "firmware: failed to load" severity = "warn" title = "Hardware driver file missing" body = "On Android, drivers come pre-installed and invisible. On Linux, some hardware needs a separate firmware file — like a plugin for your Wi-Fi chip or graphics card. Install the main firmware package: sudo pacman -S linux-firmware — then restart. If a specific device still doesn't work, the error message above will name which firmware file is missing." [[patterns]] id = "oom-killer" sources = ["kmsg"] match_text = "Out of memory: Kill process" severity = "warn" title = "System ran out of memory — closed an app" body = "Linux ran out of RAM and had to close a program, similar to Android killing background apps. If this keeps happening, close programs you're not using, or add 'swap' (disk space used as overflow RAM): sudo pacman -S zram-generator" [[patterns]] id = "disk-io-error" sources = ["kmsg"] match_text = "Buffer I/O error on device" severity = "warn" title = "Storage error" body = "Something went wrong reading or writing to the drive. This could be a hardware problem. Check drive health: sudo smartctl -a /dev/sda — first install the tool: sudo pacman -S smartmontools" # ── Audio ───────────────────────────────────────────────────────────────────── [[patterns]] id = "pipewire-connect-fail" sources = ["journald"] match_text = "Failed to connect to PipeWire" severity = "warn" title = "Sound system not responding" body = "PipeWire is the audio manager — like the sound settings system inside Android. Restart it: open a terminal and type: systemctl --user restart pipewire pipewire-pulse wireplumber — if sound still doesn't work, log out and log back in." [[patterns]] id = "bluetooth-rfkill-blocked" sources = ["journald"] match_text = "Blocked through rfkill" severity = "warn" title = "Bluetooth blocked by software switch" body = "A software setting is blocking Bluetooth — like Airplane Mode on your phone. Run: rfkill unblock bluetooth — in a terminal. If it shows 'Hard blocked', there's a physical switch or BIOS setting to check." [[patterns]] id = "bluetooth-profile-unavailable" sources = ["journald"] match_text = "br-connection-profile-unavailable" severity = "info" title = "Bluetooth audio profile missing" body = "Your Bluetooth device connected but the right audio mode isn't available. Install: sudo pacman -S pipewire-bluetooth — then restart Bluetooth: sudo systemctl restart bluetooth" # ── Network ─────────────────────────────────────────────────────────────────── [[patterns]] id = "networkmanager-activation-fail" sources = ["journald"] match_text = "Activation failed" severity = "info" title = "Wi-Fi connection failed" body = "Linux couldn't connect to the network. Common causes: wrong password, or the Wi-Fi driver isn't loaded. Check connection status: nmcli device status — if the Wi-Fi adapter doesn't appear, the driver may need to be installed." # ── GPU ─────────────────────────────────────────────────────────────────────── [[patterns]] id = "gpu-hang" sources = ["kmsg"] match_text = "GPU HANG" severity = "warn" title = "Graphics card stopped responding" body = "The graphics card froze and the driver recovered it — like a forced restart of the GPU. Games or video apps may have crashed. If this keeps happening, check that your graphics drivers are current: sudo pacman -Syu"