You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

HP Thunderbolt G4扩展坞以太网在Ubuntu 22.04.5 LTS下无法工作,原修复命令失效

HP Thunderbolt G4扩展坞以太网在Ubuntu 22.04.5 LTS下无法工作,原修复命令失效

问题描述

我目前用的是Elitebook 840 G10笔记本,搭载Ubuntu 22.04.5 LTS系统(内核版本6.8.0-45-generic),外接了HP Thunderbolt G4扩展坞。之前一切运行正常,但最近扩展坞的以太网端口突然罢工了——这种情况已经出现过好几次。

之前遇到类似问题时,我通过执行以下两条命令就能恢复以太网功能:

echo 1 > /sys/bus/pci/devices/0000\:2b\:00.0/remove
echo 1 > /sys/bus/pci/rescan

但这次执行命令后,以太网还是没恢复,查看dmesg输出时发现了BAR空间分配失败的错误:

[ 1083.974094] pci 0000:2b:00.0: [8086:5502] type 00 class 0x020000 PCIe Endpoint
[ 1083.974148] pci 0000:2b:00.0: BAR 0 [mem 0x00000000-0x000fffff]
[ 1083.974206] pci 0000:2b:00.0: BAR 3 [mem 0x00000000-0x00003fff]
[ 1083.974547] pci 0000:2b:00.0: PME# supported from D0 D3hot D3cold
[ 1083.974973] pci 0000:2b:00.0: Adding to iommu group 23
[ 1083.975453] pci 0000:2b:00.0: BAR 0 [mem size 0x00100000]: can't assign; no space
[ 1083.975458] pci 0000:2b:00.0: BAR 0 [mem size 0x00100000]: failed to assign

可能的解决方案

针对BAR空间分配失败的问题,你可以尝试以下几种方法:

1. 重启Thunderbolt控制器

有时候Thunderbolt控制器的状态异常会导致资源分配问题,你可以通过以下步骤重置:

  • 先断开扩展坞与笔记本的连接
  • 在终端执行命令重置Thunderbolt服务:
    sudo systemctl restart bolt.service
    
  • 等待片刻后重新连接扩展坞,检查以太网是否恢复

2. 调整内核启动参数

BAR空间分配失败可能是因为PCIe资源预留不足,你可以尝试添加内核启动参数来调整:

  • 编辑GRUB配置文件:
    sudo nano /etc/default/grub
    
  • 找到GRUB_CMDLINE_LINUX_DEFAULT行,添加pci=realloc参数,修改后类似:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=realloc"
    
  • 保存文件并更新GRUB:
    sudo update-grub
    
  • 重启系统后测试以太网功能

3. 更新固件与驱动

  • 检查笔记本和扩展坞的固件更新:可以通过fwupd工具扫描并安装官方固件更新(先确保已安装:sudo apt install fwupd,然后执行sudo fwupdmgr update
  • 尝试升级到更新的内核版本,比如Ubuntu官方的主线内核,新版本内核可能修复了PCIe资源分配的相关bug

4. 重新绑定Thunderbolt设备

如果上述方法无效,可以尝试更彻底的Thunderbolt设备绑定操作:

  • 先查看Thunderbolt设备的路径:
    lspci | grep Thunderbolt
    
  • 找到对应的设备ID后,执行解绑再绑定操作(替换下面的设备路径为你实际的路径):
    echo 0000:2b:00.0 | sudo tee /sys/bus/pci/drivers/thunderbolt/unbind
    echo 0000:2b:00.0 | sudo tee /sys/bus/pci/drivers/thunderbolt/bind
    

总结

BAR空间分配失败通常和PCIe资源管理或Thunderbolt控制器状态有关,优先尝试重置Thunderbolt服务和调整内核参数,这些操作相对简单且见效快。如果问题持续,固件和内核升级是值得尝试的方向。

备注:内容来源于stack exchange,提问作者David G

火山引擎 最新活动