Tech Fixes
Linux Troubleshooting Playbook: 11 Everyday Fixes
When a Linux workstation misbehaves, it is usually due to drivers, permissions, or a service configuration. Use these quick recipes before diving into deep-dive logs.
1. Wi-Fi / Network Driver Issues
- Run
lspci -k | grep -i network -A3to confirm the kernel module bound to the adapter; install missing firmware (linux-firmware,b43-fwcutter, etc.). - For Broadcom/Realtek chips, prefer DKMS packages from your distro or
isovendor instead of upstream tarballs. - Temporarily disable power management (
sudo iw dev wlan0 set power_save off) if the card drops when roaming.
2. NVIDIA / Graphics Driver Problems
- After a kernel update, run
sudo dkms autoinstallor reinstall the packaged NVIDIA driver so the module matches the kernel. - If you reach a black screen, switch to TTY (
Ctrl+Alt+F3), uninstall the proprietary driver, and fall back to Nouveau until you can reinstall cleanly. - On Wayland systems with hybrid GPUs, force X11 in the display manager or use
prime-runwrappers for apps that need discrete graphics.
3. Audio Not Working (PulseAudio/PipeWire/ALSA)
- List sinks with
pactl list short sinksorpw-cli list-objects Node; set the default sink to the desired output. - If HDMI audio is missing, load the module manually (
pactl load-module module-alsa-sink device=hw:0,3). - Restart the stack (
systemctl --user restart pipewire pipewire-pulse) to recover from corrupted state.
4. Permissions Confusion
- Check ownership (
ls -l) and applysudo chown user:group filewhen copied files keep root ownership. - Need to run hardware or Docker? Ensure the user is in the required supplemental group (
sudo usermod -aG docker user). - For scripts failing to run, set the executable bit (
chmod +x script.sh).
5. Package Manager Conflicts
- For apt:
sudo apt -f installcleans half-installed packages;sudo dpkg --configure -afinishes interrupted installs. - On rpm/dnf, remove or replace conflicting packages with
sudo dnf swap pkg-old pkg-newinstead of--allowerasing. - Always refresh mirrors (
sudo pacman -Sy) before installing to avoid “target not found” errors.
6. Snap / Flatpak / AppImage Confusion
- Document where each app lives (
snap list,flatpak list,~/.local/share/applications). Remove duplicates to avoid multiple versions launching. - Grant sandbox permissions with
flatpak override --user --filesystem=home com.example.Appwhen it needs custom paths. - For theme mismatches, install the GTK theme both on the host and inside the sandbox (
flatpak install org.gtk.Gtk3theme.Yaru).
7. Mounting / Disk Issues
- Use
lsblk -fto confirm filesystem types, then create the appropriate mount entries in/etc/fstabwithnofailuntil you trust the disks. - For NTFS drives, run
ntfsfix /dev/sdXor boot into Windows to clear the dirty bit before mounting read/write. - Automount with systemd by creating
/etc/systemd/system/media-data.mountunits when gnome-disks settings don’t stick.
8. Bluetooth Headaches
- Restart Bluetooth services (
sudo systemctl restart bluetooth) and remove the controller frombluetoothctlbefore re-pairing. - Headsets default to HSP/HFP; switch to A2DP in your desktop sound settings for full quality.
- Update BlueZ to the latest point release—many random disconnect bugs are fixed there.
9. Printing/Scanning Setup
- Install printer drivers through your distro’s package manager (
sudo apt install printer-driver-<vendor>); they integrate with CUPS. - Use
lpinfo -vto list discovered devices andlpadminto add a printer manually if the GUI tool stalls. - For scanners, ensure SANE backends are installed and the user is in the
scannergroup.
10. Sleep/Hibernate and Power Management
- Inspect journal logs after resume (
journalctl -b -1 -u systemd-suspend) to spot the service blocking wake. - Add kernel parameters like
acpi_osi=ormem_sleep_default=deepin GRUB for ultra-light laptops that won’t resume properly. - Install
tlporpower-profiles-daemonto normalize CPU frequency scaling and cut runaway fan noise.
11. Bootloader / Dual-Boot Issues
- If GRUB disappears after a Windows feature update, boot a live USB and run
sudo grub-installfollowed bysudo update-grub. - Disable Secure Boot or sign custom kernels/modules when mixing proprietary drivers with shim.
- For “grub rescue>” prompts, manually set the root (
set prefix=(hd0,1)/boot/grub) and boot, then reinstall GRUB cleanly.
Bonus: Services Not Starting / systemd Troubleshooting
- Run
systemctl status service-namefor a high-level reason andjournalctl -u service-name --no-pagerfor detailed logs. - Use
systemctl edit service-nameto drop in overrides (e.g., environment variables) without touching vendor files. - Mask services (
systemctl mask service-name) when they continuously respawn and cause boot delays.
Keep this playbook nearby, then layer on vendor docs for specific hardware.