14 KiB
Troubleshooting Guide
This guide contains troubleshooting commands and procedures for common issues on the Gentoo ThinkPad system.
Bluetooth Issues
Check Bluetooth Status
# Check controller
bluetoothctl list
# Check modules
lsmod | grep bt
# Check service
rc-service bluetooth status
# Check kernel messages
dmesg | grep -i bluetooth
Full Troubleshooting Guide
See Bluetooth-Setup.md for complete Bluetooth setup, troubleshooting, and
technical details.
Power Management Issues
Check Power Profile Status
# Check logs
tail -50 /var/log/power-profile.log
# Check current state
cat /sys/class/power_supply/AC/online # 1 = AC, 0 = battery
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Manual profile test
sudo /usr/local/bin/power-profile-ac # Performance mode
sudo /usr/local/bin/power-profile-battery # Power saving mode
Full Troubleshooting Guide
See Power-Management-Setup.md for complete details and advanced
configuration.
WiFi Issues
Check WiFi Status
# Check status
wifi-setup status
# Check waybar integration
emerge -pv gui-apps/waybar | grep network
# Check network interface
ip link show wlp194s0
# Check NetworkManager
nmcli device status
Full Troubleshooting Guide
See scripts/wifi-setup/README.md for complete setup instructions, usage
examples, and troubleshooting.
Audio Issues
Check Audio Status
# Check status
audio-setup status
# List devices
audio-setup list-outputs
audio-setup list-inputs
# Check PulseAudio
pactl info
# Check ALSA
aplay -l # List playback devices
arecord -l # List recording devices
Full Troubleshooting Guide
See scripts/audio-setup/README.md for complete setup instructions, usage
examples, and troubleshooting.
Monitor/Lid Issues
Check Monitor Configuration
# Check logs
cat /tmp/lid-handler.log
# Check monitor configuration
monitor-setup status
hyprctl monitors
# Check ACPI events
acpi_listen # Run this, then open/close lid to see events
# Check elogind
loginctl show-session $XDG_SESSION_ID
# Check Hyprland monitor script
/home/alexander/.config/hypr/scripts/monitor-setup.sh
Full Troubleshooting Guides
Lid-Automation-Working-Solution.md- Lid automation implementationFix-DisplayLink-Artifacts.md- DisplayLink optimization guide
Monitor Management Issues
Interactive Monitor Commands
# Check current layout
monitor-setup status
# List all monitors
monitor-setup list
# Swap if order is wrong
sudo monitor-setup swap
# Reset to auto-detection
sudo monitor-setup reset
Full Troubleshooting Guide
See scripts/monitor-setup/README.md for complete setup instructions, usage
examples, and troubleshooting.
Battery Conservation Issues
Check Battery Thresholds
# Check current thresholds
battery-setup status
# Check if thresholds are supported
ls /sys/class/power_supply/BAT*/charge_control_*_threshold
# Check OpenRC service
rc-service battery-thresholds status
# Manually set thresholds
sudo battery-setup conservation
# Check battery health
cat /sys/class/power_supply/BAT0/capacity
cat /sys/class/power_supply/BAT0/cycle_count
cat /sys/class/power_supply/BAT0/status
# Check ThinkPad ACPI module
lsmod | grep thinkpad_acpi
Full Troubleshooting Guide
See scripts/battery-setup/README.md for complete setup instructions, battery
science, and troubleshooting.
Backup Issues
Check Backup Status
# Check backup status
backup-setup status
# Check if NAS is reachable
ping -c 3 192.168.2.171
ssh alexander@192.168.2.171 "echo test"
# Check network trigger logs
tail -20 ~/.local/var/log/backup-monitor.log
# Check backup logs
tail -50 ~/.local/var/log/backup.log
# Check for active backups
ls -la /tmp/backup-*.lock
# Remove stale lock files (if older than 6 hours)
rm /tmp/backup-*.lock
# Check backup service
sudo rc-service backup-monitor status
Manual Backup Commands
# Run manual backup
backup-setup full # Full system backup
backup-setup home # Home directory only
backup-setup configs # Configuration files only
backup-setup incremental # Incremental backup
# Check last backup time
cat ~/.local/var/backup/last-backup
Full Troubleshooting Guide
See Backup-Setup.md for complete backup guide - Automated NAS backups,
network trigger, troubleshooting.
Firewall Issues
Check Firewall Status
# Check firewall status
sudo rc-service nftables status
# View firewall rules
sudo nft list ruleset
# Test connectivity
ping -c 3 8.8.8.8 # Internet connectivity
ping -c 3 192.168.2.171 # NAS connectivity
# Check if port is blocked
sudo nft list ruleset | grep <port_number>
# Restart firewall
sudo rc-service nftables restart
# Test specific service
telnet <host> <port>
Full Troubleshooting Guide
See Security-Hardening.md for complete security guide - Firewall, fail2ban,
SSH hardening, monitoring.
Ghostty Terminal Issues
Check Ghostty Status
# Test if Ghostty works
ghostty
# Check if it's pure Wayland (should show nothing)
ldd /usr/bin/ghostty | grep -i x11
# Check Hyprland keybinding
grep ghostty ~/.config/hypr/hyprland.conf
# Check Ghostty config
cat ~/.config/ghostty/config
# Run Ghostty with debug output
ghostty --verbose
Ghostty Configuration
Location: ~/.config/ghostty/config
Package Configuration: See CLAUDE.md section "Ghostty Terminal Emulator"
for complete USE flags and build configuration.
Neovim/LSP Issues
Check LSP Status
# Check LSP servers are working
nvim # Open Neovim
:LspInfo # Check LSP status
# Check for LSP errors
:messages
# Verify new API is being used (no deprecation warnings)
# Start nvim and check for warnings about lspconfig
# Test a file with LSP support
nvim test.go # Should show LSP features
# Check Neovim version
nvim --version # Should be 0.11+
# Check LSP config location
ls -la ~/.config/nvim/lua/alxndrhi/plugins/lsp.lua
LSP Configuration
Location: ~/.config/nvim/lua/alxndrhi/plugins/lsp.lua
API: Uses Neovim 0.11+ native vim.lsp.config[] API (not deprecated
require('lspconfig'))
Configured Servers: html, cssls, gopls, clangd, jsonls, yamlls, bashls, dockerls, vimls, lua_ls, ruff, graphql, tailwindcss, vuels, cmake
Theme/Waybar Issues
Check Waybar Theme
# Check waybar is using correct CSS file
# Look for: "Using CSS file /home/alexander/.config/waybar/style.css"
killall waybar && waybar 2>&1 | head -20
# Verify Nerd Font is available
fc-list | grep -i hasklug
# Test icon display in terminal
echo "CPU: RAM: WiFi: Volume: "
# Check if Catppuccin colors are applied
cat ~/.config/waybar/style.css | grep "#1e1e2e" # Should show base color
# Restart waybar to apply changes
killall waybar && waybar &
# Check Hyprland colors
hyprctl clients | grep -A 5 "Window" # Should show borders
# View Hyprland color configuration
cat ~/.config/hypr/mocha.conf
Waybar Configuration Files
~/.config/waybar/config- Module configuration with icon definitions~/.config/waybar/style.css- Catppuccin Mocha theme with color-coded modules~/.config/waybar/mocha.css- Catppuccin Mocha color palette definitions
Hyprland Theme Files
~/.config/hypr/hyprland.conf- Window border colors~/.config/hypr/mocha.conf- Catppuccin Mocha color variables
Dotfile Management (chezmoi) Issues
Common Chezmoi Problems
# Warning about config template changed
chezmoi init
# Diff shows nothing or just "pppp"
chezmoi diff --use-builtin-diff | less
# File conflicts
chezmoi merge ~/.zshrc
# Or force overwrite:
chezmoi apply --force
# Template errors
chezmoi cat ~/.zshrc # See rendered output
chezmoi execute-template "{{ .chezmoi.os }}" # Test expression
# Re-run installation scripts
chezmoi state reset --bucket=scriptState
chezmoi apply
# Check configuration
chezmoi data # View all variables
cat ~/.config/chezmoi/chezmoi.yaml
# Remove file from management
chezmoi forget ~/.file
# Complete reset (DESTRUCTIVE - removes all managed files)
chezmoi purge
Chezmoi Configuration
Source Directory: ~/.local/share/chezmoi (git clone of dotfiles repo)
Dotfiles Repository: ~/repository/git.hinrichs.dev/alexander/dotfiles
Config File: ~/.config/chezmoi/chezmoi.yaml (generated from
.chezmoi.yaml.tmpl)
Full Troubleshooting Guide
See Dotfiles-Management.md for complete chezmoi guide - Managing dotfiles,
adding new tools, editing configs.
Kernel Issues
Check Kernel Configuration
# Check current kernel version
uname -r
# Extract current running config
zcat /proc/config.gz > /tmp/current-config
# Check specific kernel option
zcat /proc/config.gz | grep CONFIG_PINCTRL_AMD
# Check loaded modules
lsmod
# Check kernel messages
dmesg | less
# Check for kernel errors
dmesg | grep -i error
dmesg | grep -i fail
Kernel Build Issues
⚠️ CRITICAL: NEVER use genkernel. Always use manual kernel compilation or the automated build script.
Build Script: scripts/build-kernel.sh
Saved Config: kernel-6.12.41-gentoo-x86_64.config
Build Logs: logs/kernel-build-TIMESTAMP.log
Manual Kernel Build
# Extract current running config
zcat /proc/config.gz > /usr/src/linux/.config
# Edit config as needed
cd /usr/src/linux
sudo make menuconfig
# Or use automated script
sudo ./scripts/build-kernel.sh
See CLAUDE.md section "Kernel Configuration" for complete build process.
Touchpad/Touchscreen Issues
Check I2C HID Devices
# Check if devices are detected
dmesg | grep -i elan
# Check if modules are loaded
lsmod | grep i2c_hid
# Check device nodes
ls -la /dev/input/by-path/ | grep i2c
# Check Hyprland input devices
hyprctl devices
# Test touchpad events
libinput debug-events
Hardware Details
- Touchpad: ELAN901C I2C HID device (ACPI: ELAN901C:00, PNP0C50)
- Touchscreen: ELAN0678 I2C HID multitouch display (ACPI: ELAN0678:00, PNP0C50)
Required Kernel Options
CONFIG_I2C_HID=mCONFIG_I2C_HID_ACPI=mCONFIG_PINCTRL_AMD=y(CRITICAL for GPIO interrupts on AMD platforms)
Full Documentation
See Touchpad-Touchscreen-Setup.md and POST-REBOOT-CHECKLIST.md
Webcam Issues
Check Webcam Status
# Check if webcam is detected
lsusb | grep -i camera
# Check kernel messages
dmesg | grep -i uvc
# List video devices
ls -la /dev/video*
# Check video device capabilities (requires v4l-utils)
v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --list-formats-ext
# Test capture (requires ffmpeg)
ffmpeg -f v4l2 -i /dev/video0 -frames:v 1 test.jpg
# Check user permissions
groups | grep video
Hardware Details
- Model: Luxvisions Innotech Limited Integrated RGB Camera
- USB ID: 30c9:00f4
- Resolution: 640x480 @ 30fps (default)
- Driver: uvcvideo (USB Video Class)
- Device Nodes: /dev/video0-3
Docker Issues
Check Docker Status
# Check Docker service
rc-service docker status
# Check Docker version
docker --version
# Test Docker
docker run hello-world
# Check Docker logs
docker logs <container_id>
# Check Docker network
docker network ls
Docker Firewall Integration
If Docker containers cannot reach the internet, check firewall rules:
# Check if Docker chain exists in nftables
sudo nft list ruleset | grep docker
# Uncomment Docker forwarding rules in /etc/nftables.conf
# Then restart:
sudo rc-service nftables restart
See Security-Hardening.md for Docker firewall integration.
General System Troubleshooting
Service Management (OpenRC)
# List all services
rc-status -a
# Start/stop/restart service
sudo rc-service <service> start
sudo rc-service <service> stop
sudo rc-service <service> restart
# Enable/disable service at boot
sudo rc-update add <service> default
sudo rc-update del <service> default
# Check service logs
tail -f /var/log/<service>.log
System Logs
# View system messages
dmesg | less
# View recent errors
dmesg | grep -i error | tail -20
# View kernel ring buffer
journalctl -k # If using systemd-journald
# Check OpenRC logs
ls -la /var/log/rc.log
Package Management (Gentoo)
# Search for package
emerge --search <package>
# Check package info
emerge --info <package>
# List installed packages
qlist -I
# Check for config file updates
dispatch-conf
# Rebuild @world
emerge -avuDN @world
Performance Monitoring
# CPU usage
top
htop
# Memory usage
free -h
# Disk usage
df -h
du -sh /*
# I/O statistics
iostat -x 2
# Network statistics
iftop
nethogs
Getting Help
Documentation Files
USER-GUIDE.md- Quick reference for everyday tasksSystem-Overview.md- Hardware specs and software stackFeature-Status.md- Current state and working featuresBackup-Setup.md- Complete backup guideSecurity-Hardening.md- Complete security guidePower-Management-Setup.md- Power management guideBluetooth-Setup.md- Bluetooth setup and troubleshootingDotfiles-Management.md- Complete chezmoi guide
Script Documentation
scripts/wifi-setup/README.md- WiFi setup toolscripts/bluetooth-setup/README.md- Bluetooth setup toolscripts/audio-setup/README.md- Audio setup toolscripts/monitor-setup/README.md- Monitor setup toolscripts/battery-setup/README.md- Battery conservation tool
Emergency Recovery
If the system becomes unbootable:
- Boot from Gentoo LiveCD/USB
- Mount root filesystem:
mount /dev/sdXY /mnt/gentoo - Chroot:
chroot /mnt/gentoo /bin/bash - Source profile:
source /etc/profile - Fix issue (kernel, config, etc.)
- Exit chroot and reboot
Backup Restoration
If you need to restore from backup:
# List available backups on NAS
ssh alexander@192.168.2.171 "ls -la /mnt/ssd-pool-a/backups/lenovo-gentoo/"
# Restore specific backup
rsync -avz --progress \
alexander@192.168.2.171:/mnt/ssd-pool-a/backups/lenovo-gentoo/YYYY-MM-DD/ \
/restore-location/
See Backup-Setup.md for complete restoration procedures.