SANLink2 Thunderbolt 设备出现 PCI BAR“分配失败”错误

SANLink2 Thunderbolt 设备出现 PCI BAR“分配失败”错误

我正在尝试连接乔鼎 SANLink2Thunderbolt-2-to-10-GbE-Ethernet 设备连接到运行 Ubuntu 16.04 的 Lenovo ThinkPad。系统无法识别设备上的双以太网接口。如果我dmesg在插入设备后查看,则会看到以下内容:

[  169.822146] pci 0000:06:00.0: [8086:1567] type 01 class 0x060400
[  169.822534] pci 0000:06:00.0: supports D1 D2
[  169.822536] pci 0000:06:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  169.830152] pci 0000:07:00.0: [8086:1567] type 01 class 0x060400
[  169.830362] pci 0000:07:00.0: supports D1 D2
[  169.830364] pci 0000:07:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  169.830522] pci 0000:07:03.0: [8086:1567] type 01 class 0x060400
[  169.830729] pci 0000:07:03.0: supports D1 D2
[  169.830730] pci 0000:07:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[  169.830841] pci 0000:07:04.0: [8086:1567] type 01 class 0x060400
[  169.831018] pci 0000:07:04.0: supports D1 D2
[  169.831019] pci 0000:07:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[  169.831117] pci 0000:07:05.0: [8086:1567] type 01 class 0x060400
[  169.831350] pci 0000:07:05.0: supports D1 D2
[  169.831351] pci 0000:07:05.0: PME# supported from D0 D1 D2 D3hot D3cold
[  169.831491] pci 0000:07:06.0: [8086:1567] type 01 class 0x060400
[  169.831609] pci 0000:07:06.0: supports D1 D2
[  169.831610] pci 0000:07:06.0: PME# supported from D0 D1 D2 D3hot D3cold
[  169.831753] pci 0000:06:00.0: PCI bridge to [bus 07-3f]
[  169.831768] pci 0000:06:00.0:   bridge window [mem 0xb8000000-0xce0fffff]
[  169.831785] pci 0000:06:00.0:   bridge window [mem 0xd0000000-0xf1ffffff 64bit pref]
[  169.831915] pci 0000:08:00.0: [8086:1566] type 00 class 0x088000
[  169.831966] pci 0000:08:00.0: reg 0x10: [mem 0xce000000-0xce03ffff]
[  169.831982] pci 0000:08:00.0: reg 0x14: [mem 0xce040000-0xce040fff]
[  169.832327] pci 0000:08:00.0: supports D1 D2
[  169.832328] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[  169.832498] pci 0000:07:00.0: PCI bridge to [bus 08]
[  169.832525] pci 0000:07:00.0:   bridge window [mem 0xce000000-0xce0fffff]
[  169.832648] pci 0000:07:03.0: PCI bridge to [bus 09-34]
[  169.832675] pci 0000:07:03.0:   bridge window [mem 0xb8000000-0xc5ffffff]
[  169.832693] pci 0000:07:03.0:   bridge window [mem 0xd0000000-0xe9ffffff 64bit pref]
[  169.832833] pci 0000:07:04.0: PCI bridge to [bus 35-3d]
[  169.832860] pci 0000:07:04.0:   bridge window [mem 0xc6000000-0xcdffffff]
[  169.832877] pci 0000:07:04.0:   bridge window [mem 0xea000000-0xf1ffffff 64bit pref]
[  169.833017] pci 0000:07:05.0: PCI bridge to [bus 3e]
[  169.833181] pci 0000:07:06.0: PCI bridge to [bus 3f]
[  169.833301] pci_bus 0000:07: Allocating resources
[  169.833365] pci 0000:07:00.0: bridge window [io  0x1000-0x0fff] to [bus 08] add_size 1000
[  169.833369] pci 0000:07:00.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 08] add_size 200000 add_align 100000
[  169.833395] pci 0000:07:03.0: bridge window [io  0x1000-0x0fff] to [bus 09-34] add_size 1000
[  169.833421] pci 0000:07:04.0: bridge window [io  0x1000-0x0fff] to [bus 35-3d] add_size 1000
[  169.833446] pci 0000:07:05.0: bridge window [io  0x1000-0x0fff] to [bus 3e] add_size 1000
[  169.833448] pci 0000:07:05.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 3e] add_size 200000 add_align 100000
[  169.833450] pci 0000:07:05.0: bridge window [mem 0x00100000-0x000fffff] to [bus 3e] add_size 200000 add_align 100000
[  169.833475] pci 0000:07:06.0: bridge window [io  0x1000-0x0fff] to [bus 3f] add_size 1000
[  169.833477] pci 0000:07:06.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 3f] add_size 200000 add_align 100000
[  169.833478] pci 0000:07:06.0: bridge window [mem 0x00100000-0x000fffff] to [bus 3f] add_size 200000 add_align 100000
[  169.833505] pci 0000:07:00.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833507] pci 0000:07:03.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833509] pci 0000:07:04.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833511] pci 0000:07:05.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833514] pci 0000:07:06.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833516] pci 0000:06:00.0: bridge window [io  0x1000-0x0fff] to [bus 07-3f] add_size 5000
[  169.833519] pci 0000:06:00.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 5000 min_align 1000
[  169.833521] pci 0000:06:00.0: res[13]=[io  0x1000-0x5fff] res_to_dev_res add_size 5000 min_align 1000
[  169.833525] pci 0000:06:00.0: BAR 13: assigned [io  0x6000-0xafff]
[  169.833532] pci 0000:07:00.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] res_to_dev_res add_size 200000 min_align 100000
[  169.833534] pci 0000:07:00.0: res[15]=[mem 0x00100000-0x002fffff 64bit pref] res_to_dev_res add_size 200000 min_align 100000
[  169.833537] pci 0000:07:05.0: res[14]=[mem 0x00100000-0x000fffff] res_to_dev_res add_size 200000 min_align 100000
[  169.833539] pci 0000:07:05.0: res[14]=[mem 0x00100000-0x002fffff] res_to_dev_res add_size 200000 min_align 100000
[  169.833542] pci 0000:07:05.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] res_to_dev_res add_size 200000 min_align 100000
[  169.833544] pci 0000:07:05.0: res[15]=[mem 0x00100000-0x002fffff 64bit pref] res_to_dev_res add_size 200000 min_align 100000
[  169.833547] pci 0000:07:06.0: res[14]=[mem 0x00100000-0x000fffff] res_to_dev_res add_size 200000 min_align 100000
[  169.833549] pci 0000:07:06.0: res[14]=[mem 0x00100000-0x002fffff] res_to_dev_res add_size 200000 min_align 100000
[  169.833552] pci 0000:07:06.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] res_to_dev_res add_size 200000 min_align 100000
[  169.833554] pci 0000:07:06.0: res[15]=[mem 0x00100000-0x002fffff 64bit pref] res_to_dev_res add_size 200000 min_align 100000
[  169.833556] pci 0000:07:00.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833559] pci 0000:07:00.0: res[13]=[io  0x1000-0x1fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833561] pci 0000:07:03.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833563] pci 0000:07:03.0: res[13]=[io  0x1000-0x1fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833565] pci 0000:07:04.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833568] pci 0000:07:04.0: res[13]=[io  0x1000-0x1fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833570] pci 0000:07:05.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833573] pci 0000:07:05.0: res[13]=[io  0x1000-0x1fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833575] pci 0000:07:06.0: res[13]=[io  0x1000-0x0fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833577] pci 0000:07:06.0: res[13]=[io  0x1000-0x1fff] res_to_dev_res add_size 1000 min_align 1000
[  169.833581] pci 0000:07:00.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833583] pci 0000:07:00.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833585] pci 0000:07:05.0: BAR 14: no space for [mem size 0x00200000]
[  169.833587] pci 0000:07:05.0: BAR 14: failed to assign [mem size 0x00200000]
[  169.833590] pci 0000:07:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833593] pci 0000:07:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833595] pci 0000:07:06.0: BAR 14: no space for [mem size 0x00200000]
[  169.833597] pci 0000:07:06.0: BAR 14: failed to assign [mem size 0x00200000]
[  169.833600] pci 0000:07:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833602] pci 0000:07:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833605] pci 0000:07:00.0: BAR 13: assigned [io  0x6000-0x6fff]
[  169.833607] pci 0000:07:03.0: BAR 13: assigned [io  0x7000-0x7fff]
[  169.833609] pci 0000:07:04.0: BAR 13: assigned [io  0x8000-0x8fff]
[  169.833611] pci 0000:07:05.0: BAR 13: assigned [io  0x9000-0x9fff]
[  169.833614] pci 0000:07:06.0: BAR 13: assigned [io  0xa000-0xafff]
[  169.833618] pci 0000:07:06.0: BAR 14: no space for [mem size 0x00200000]
[  169.833621] pci 0000:07:06.0: BAR 14: failed to assign [mem size 0x00200000]
[  169.833624] pci 0000:07:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833626] pci 0000:07:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833629] pci 0000:07:05.0: BAR 14: no space for [mem size 0x00200000]
[  169.833631] pci 0000:07:05.0: BAR 14: failed to assign [mem size 0x00200000]
[  169.833634] pci 0000:07:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833636] pci 0000:07:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833640] pci 0000:07:00.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833642] pci 0000:07:00.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833645] pci 0000:07:00.0: PCI bridge to [bus 08]
[  169.833652] pci 0000:07:00.0:   bridge window [io  0x6000-0x6fff]
[  169.833668] pci 0000:07:00.0:   bridge window [mem 0xce000000-0xce0fffff]
[  169.833699] pci 0000:07:03.0: PCI bridge to [bus 09-34]
[  169.833706] pci 0000:07:03.0:   bridge window [io  0x7000-0x7fff]
[  169.833722] pci 0000:07:03.0:   bridge window [mem 0xb8000000-0xc5ffffff]
[  169.833733] pci 0000:07:03.0:   bridge window [mem 0xd0000000-0xe9ffffff 64bit pref]
[  169.833754] pci 0000:07:04.0: PCI bridge to [bus 35-3d]
[  169.833760] pci 0000:07:04.0:   bridge window [io  0x8000-0x8fff]
[  169.833776] pci 0000:07:04.0:   bridge window [mem 0xc6000000-0xcdffffff]
[  169.833787] pci 0000:07:04.0:   bridge window [mem 0xea000000-0xf1ffffff 64bit pref]
[  169.833807] pci 0000:07:05.0: PCI bridge to [bus 3e]
[  169.833813] pci 0000:07:05.0:   bridge window [io  0x9000-0x9fff]
[  169.833889] pci 0000:07:06.0: PCI bridge to [bus 3f]
[  169.833896] pci 0000:07:06.0:   bridge window [io  0xa000-0xafff]
[  169.833937] pci 0000:06:00.0: PCI bridge to [bus 07-3f]
[  169.833943] pci 0000:06:00.0:   bridge window [io  0x6000-0xafff]
[  169.833968] pci 0000:06:00.0:   bridge window [mem 0xb8000000-0xce0fffff]
[  169.833978] pci 0000:06:00.0:   bridge window [mem 0xd0000000-0xf1ffffff 64bit pref]
[  169.834050] pcieport 0000:06:00.0: enabling device (0006 -> 0007)
[  169.834409] pcieport 0000:07:00.0: enabling device (0006 -> 0007)
[  169.834672] pcieport 0000:07:03.0: enabling device (0006 -> 0007)
[  169.834952] pcieport 0000:07:04.0: enabling device (0006 -> 0007)
[  169.835555] pcieport 0000:07:05.0: enabling device (0004 -> 0005)
[  169.835778] pcieport 0000:07:06.0: enabling device (0004 -> 0005)

请注意出现问题的区域:

[  169.833581] pci 0000:07:00.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833583] pci 0000:07:00.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833585] pci 0000:07:05.0: BAR 14: no space for [mem size 0x00200000]
[  169.833587] pci 0000:07:05.0: BAR 14: failed to assign [mem size 0x00200000]
[  169.833590] pci 0000:07:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833593] pci 0000:07:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833595] pci 0000:07:06.0: BAR 14: no space for [mem size 0x00200000]
[  169.833597] pci 0000:07:06.0: BAR 14: failed to assign [mem size 0x00200000]
[  169.833600] pci 0000:07:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833602] pci 0000:07:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833605] pci 0000:07:00.0: BAR 13: assigned [io  0x6000-0x6fff]
[  169.833607] pci 0000:07:03.0: BAR 13: assigned [io  0x7000-0x7fff]
[  169.833609] pci 0000:07:04.0: BAR 13: assigned [io  0x8000-0x8fff]
[  169.833611] pci 0000:07:05.0: BAR 13: assigned [io  0x9000-0x9fff]
[  169.833614] pci 0000:07:06.0: BAR 13: assigned [io  0xa000-0xafff]
[  169.833618] pci 0000:07:06.0: BAR 14: no space for [mem size 0x00200000]
[  169.833621] pci 0000:07:06.0: BAR 14: failed to assign [mem size 0x00200000]
[  169.833624] pci 0000:07:06.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833626] pci 0000:07:06.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833629] pci 0000:07:05.0: BAR 14: no space for [mem size 0x00200000]
[  169.833631] pci 0000:07:05.0: BAR 14: failed to assign [mem size 0x00200000]
[  169.833634] pci 0000:07:05.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833636] pci 0000:07:05.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]
[  169.833640] pci 0000:07:00.0: BAR 15: no space for [mem size 0x00200000 64bit pref]
[  169.833642] pci 0000:07:00.0: BAR 15: failed to assign [mem size 0x00200000 64bit pref]

lspci显示插入 SANLink2 时出现的 PCI 桥接设备,但没有显示连接到这些桥接器的任何东西。lspci -vvxxxx您可以在此处查看完整输出

我发现其他发行版错误跟踪器上提到了类似的问题,但没有解决方案可以解决我的问题。我尝试了最新的主线内核 (v4.7),看看最近的错误修复是否有效果,但我看到了相同的行为。

答案1

如果我可以发表评论,这将是一条评论 - 因为我还没有明确的解决方案。我在使用 Titan Ridge 附加卡的 Thunderbolt 3 上遇到了这个问题。它似乎只影响我的 eGPU - 我的 SANLink3 N1 和 Dell Thunderbolt 3 SSD 似乎不受影响。要么它们的 BAR 已分配,要么它们不受分配失败的影响。我已经做了一些事情来提供帮助,但还没有完全解决它。我的外部 R9 Nano 有一个像你的 BAR,可能具有完全相同的大小和类型,但出现故障:[mem size 0x00200000 64bit pref]

我发现有些东西可能会有帮助:

对于 Titan Ridge,pci=assign-busses 可以提供很大帮助,特别是在不受支持的系统(例如 AMD)上使用 Thunderbolt 控制器时,但这会破坏 Titan Ridge 之前的任何 Thunderbolt 实现 - 所以不要使用这个。

我不知道 Thunderbolt 2 是否有安全级别。但作为最后的手段,您可以在 BIOS 中启用 Thunderbolt 启动支持和 Thunderbolt Option ROM,并禁用安全级别(如果适用)。然后在打开计算机之前将 SANLink 连接到计算机,希望 BIOS 能够分配它(在这种情况下,删除您正在为 Linux 试验的内核参数)。这不是我们想要前进的方式——一切都应该在可以轻松更新、审核和调试代码的操作系统中处理。但就目前而言,BIOS 将继续困扰我们。

如果您现在希望使用 4.20-rc2 内核,则必须编译自己的内核 - 因为 Ubuntu 再次无法进行主线构建,而没有人对此采取任何措施。http://kernel.ubuntu.com/~kernel-ppa/mainline/

祝你好运!我知道这是两年零三个月前的事了,所以你可能已经没有电脑了。但它有 766 次浏览量,也许其他人会对某种解决方案感兴趣。

相关内容