Complete solution for PCIe, ACPI, and systemd-boot kernel parameter fixes
Generated: 2025-07-09 20:21:38
This guide resolved persistent kernel errors including:
- PCIe bus correctable errors from NVIDIA GPUs
- ACPI BIOS
AE_ALREADY_EXISTS
errors - Thunderbolt/eGPU stability issues
- systemd-boot kernel parameter configuration
# Added to /boot/loader/entries/*.conf options line:
pci=noaer pcie_aspm=off acpi_osi=Linux iommu=pt intel_iommu=on pcie_ports=native
sudo mkdir -p /boot/loader/entries/backup
sudo cp /boot/loader/entries/*.conf /boot/loader/entries/backup/
# Edit your boot entry file
sudo nano /boot/loader/entries/arch.conf
# Add parameters to the options line:
# BEFORE: options root=PARTUUID=... rw
# AFTER: options root=PARTUUID=... rw pci=noaer pcie_aspm=off acpi_osi=Linux iommu=pt intel_iommu=on pcie_ports=native
# Check applied parameters
cat /proc/cmdline
# Monitor for errors
dmesg | grep -E '(pcieport|ACPI|error)' | tail -10
# Check system status
uptime
- β
PCIe Errors: Eliminated correctable errors via
pci=noaer
andpcie_aspm=off
- β
ACPI Errors: Resolved BIOS compatibility with
acpi_osi=Linux
- β
IOMMU Issues: Fixed with
iommu=pt
andintel_iommu=on
- β System Stability: Significantly improved overall stability
#!/bin/bash
# Automated kernel parameter applier for systemd-boot
ENTRIES_DIR="/boot/loader/entries"
BACKUP_DIR="$ENTRIES_DIR/backup"
PARAMS="pci=noaer pcie_aspm=off acpi_osi=Linux iommu=pt intel_iommu=on pcie_ports=native"
echo "π§ Adding kernel parameters to systemd-boot entries..."
# Create backup
sudo mkdir -p "$BACKUP_DIR"
# Apply to all .conf files
for entry_file in "$ENTRIES_DIR"/*.conf; do
if [[ -f "$entry_file" ]]; then
filename=$(basename "$entry_file")
echo "π Processing $filename..."
# Backup with timestamp
sudo cp "$entry_file" "$BACKUP_DIR/$filename.$(date +%Y%m%d_%H%M%S)"
# Add parameters if not present
if ! grep -q "pci=noaer" "$entry_file"; then
sudo sed -i "/^options/ s/$/ $PARAMS/" "$entry_file"
echo " β
Parameters added"
else
echo " βΉοΈ Parameters already present"
fi
fi
done
echo "β
Complete! Reboot to apply changes."
#!/bin/bash
# Post-reboot monitoring script
echo "=== Kernel Error Monitor - $(date) ==="
echo "π Applied Parameters:"
cat /proc/cmdline | grep -E '(pci=noaer|pcie_aspm=off|acpi_osi=Linux)'
echo -e "
π Recent PCIe Errors:"
dmesg | grep -E 'pcieport.*error' | tail -3
echo -e "
π Recent ACPI Errors:"
dmesg | grep -E 'ACPI.*error' | tail -3
echo -e "
π System Status:"
uptime
echo "===================="
pci=noaer
: Disables Advanced Error Reporting to prevent error spampcie_aspm=off
: Disables Active State Power Management (fixes timing issues)acpi_osi=Linux
: Forces BIOS to use Linux-compatible ACPI methodsiommu=pt
: Sets IOMMU to passthrough mode (better for virtualization)intel_iommu=on
: Enables Intel IOMMU properlypcie_ports=native
: Uses native PCIe port services
This solution works for:
- β NVIDIA GPU systems (RTX series)
- β Thunderbolt eGPU setups (Razer Core X, etc.)
- β Intel-based systems with IOMMU
- β systemd-boot configurations
- β Arch Linux / systemd-based distributions
# Edit /etc/default/grub
sudo nano /etc/default/grub
# Add to GRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT="quiet pci=noaer pcie_aspm=off acpi_osi=Linux iommu=pt intel_iommu=on pcie_ports=native"
# Update GRUB
sudo update-grub
sudo reboot
# PCIe errors only:
pci=noaer pcie_aspm=off
# ACPI errors only:
acpi_osi=Linux acpi_enforce_resources=lax
# NVIDIA-specific:
nvidia.NVreg_EnableMSI=0 nouveau.modeset=0
# Thunderbolt/eGPU:
intel_iommu=off iommu=pt
- Boot to rescue/recovery mode
- Restore from backup:
sudo cp /boot/loader/entries/backup/*.conf /boot/loader/entries/
- Remove problematic parameters one by one
- Check BIOS updates from manufacturer
- Test parameters individually
- Consider hardware RMA if issues continue
After applying these changes, you should see:
- Significant reduction in
dmesg
errors - Stable system operation
- Proper GPU/Thunderbolt functionality
- Clean boot process
This solution was tested and verified on Arch Linux with systemd-boot, dual NVIDIA GPUs, and Thunderbolt eGPU configuration.