Abstract Linux troubleshooting icons

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 -A3 to 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 iso vendor 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 autoinstall or 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-run wrappers for apps that need discrete graphics.

3. Audio Not Working (PulseAudio/PipeWire/ALSA)

  • List sinks with pactl list short sinks or pw-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 apply sudo chown user:group file when 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 install cleans half-installed packages; sudo dpkg --configure -a finishes interrupted installs.
  • On rpm/dnf, remove or replace conflicting packages with sudo dnf swap pkg-old pkg-new instead 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.App when 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 -f to confirm filesystem types, then create the appropriate mount entries in /etc/fstab with nofail until you trust the disks.
  • For NTFS drives, run ntfsfix /dev/sdX or boot into Windows to clear the dirty bit before mounting read/write.
  • Automount with systemd by creating /etc/systemd/system/media-data.mount units when gnome-disks settings don’t stick.

8. Bluetooth Headaches

  • Restart Bluetooth services (sudo systemctl restart bluetooth) and remove the controller from bluetoothctl before 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 -v to list discovered devices and lpadmin to add a printer manually if the GUI tool stalls.
  • For scanners, ensure SANE backends are installed and the user is in the scanner group.

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= or mem_sleep_default=deep in GRUB for ultra-light laptops that won’t resume properly.
  • Install tlp or power-profiles-daemon to 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-install followed by sudo 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-name for a high-level reason and journalctl -u service-name --no-pager for detailed logs.
  • Use systemctl edit service-name to 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.