Ubuntu 16.04下lspci无输出、无法终止及系统崩溃问题求助
我之前在Dell XPS 15 9560搭配Ubuntu 16.04的环境里碰到过完全一致的问题——lspci要么挂死无输出,要么直接搞崩系统,journalctl还一堆重复日志。这大概率是老内核对新PCIe硬件的兼容性坑,或者某个设备的驱动枚举异常导致的,给你一套逐步解决的方案:
1. 先搞定临时应急:让lspci能正常跑起来
如果现在lspci已经挂死,先别急着重启,用ps aux | grep lspci找到进程ID,然后kill -9 <PID>强制终止,避免系统崩溃。
接下来尝试带过滤参数的lspci,只枚举特定类型的设备,避开出问题的硬件:
- 只枚举PCI桥设备:
lspci -nn -d ::0600 - 树形输出(可能绕过异常设备):
lspci -t
如果这些命令能正常执行,说明是某个特定PCI设备的枚举过程出了问题。
2. 揪出journalctl重复日志的根源
先把启动以来的错误日志导出来分析:
journalctl -b -p err > pci_error.log
打开这个日志文件,找重复出现的条目,比如你提到的执行lspci前后的重复信息,大概率会指向某个设备(比如NVIDIA显卡、NVMe硬盘或者Realtek网卡)的驱动加载失败、PCIe链路错误。比如我当时碰到的是NVIDIA独显的PCIe枚举异常,日志里反复出现pcieport 0000:00:1c.0: AER: Corrected error received: id=00e0这类信息。
3. 系统层面的核心修复方案
Ubuntu 16.04默认的4.4内核太老,对XPS 15 9560这类新硬件的PCIe支持很差,优先升级到HWE内核:
- 添加官方内核PPA:
sudo add-apt-repository ppa:canonical-kernel-team/ppa sudo apt update
- 安装HWE内核(适配16.04的最新稳定内核):
sudo apt install linux-image-generic-hwe-16.04 linux-headers-generic-hwe-16.04
- 重启系统,之后再试
lspci,大概率能正常执行。
如果升级内核后还是有问题,试试禁用PCIe的高级错误报告或MSI中断:
- 编辑GRUB配置:
sudo nano /etc/default/grub
- 找到
GRUB_CMDLINE_LINUX_DEFAULT这一行,在引号里添加pci=noaer pci=nomsi,比如:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer pci=nomsi"
- 更新GRUB并重启:
sudo update-grub sudo reboot
4. 硬件/固件层面的排查
如果上面的方法都不管用,可能是固件或硬件问题:
- 更新Dell BIOS:Ubuntu下用
fwupd工具一键更新,先安装:
sudo apt install fwupd
然后执行更新:
fwupdmgr refresh fwupdmgr update
- 进入Dell BIOS,检查PCIe相关设置:把
PCIe Power Management设为Disabled,关闭Secure Boot,有时候Secure Boot会干扰第三方驱动加载。
内容的提问来源于stack exchange,提问作者jelleve
相关产品推荐
相关产品推荐

