我正在尝试使Lenovo Thinkpad P52在 Linux Mint 20.3 Una aka Ubuntu 20.04上与Lenovo USB-C Hybrid Dock(40AF,请参阅要避免的坞站...)一起使用。多么……旅程……
笔记本电脑的/home
文件夹位于 ZFS 文件系统 (zpool) 上。操作系统本身运行在btrfs
. 显卡在 BIOS 中切换到专用(即 Nvidia),并由 Nvidia 的专有驱动程序驱动。笔记本电脑的 BIOS已预先更新到最新版本,以避免在这种设置中导致主板变砖(真正令人印象深刻的 BIOS 错误)。Thunderbold 安全性也已在 BIOS 中关闭。有趣的是,扩展坞在运行时没有出现boltctl list
——尽管我不得不禁用 Thunderbold 安全性。我想这就是“混合”的用武之地。DisplayLink 驱动程序已从此处安装。我应该准备好了。
当我在扩展坞断开连接的情况下启动笔记本电脑时,一切正常。一旦计算机启动并且扩展坞上的网络和 USB 正常工作,我就可以插入扩展坞。(我还没有深入到兔子洞,无法对显示连接进行故障排除。)
当我在将扩展坞插入笔记本电脑的情况下启动时,启动会在登录屏幕出现之前挂起大约两分钟。它通常显示一行控制台输出,通常是一些错误,但每次都不同(例如ucsi_acpi USBC000:00 con1 failed to register alternate modes
或bluetooth hci0 setting interface failed (71)
)。我认为这些错误在没有扩展坞的情况下也会发生 - 我猜是因为我可以看到它们的挂起。当我等待一些超时过去时,我会看到通常的图形登录屏幕,尽管登录尝试失败。这是当我发现我的 zpool 不见了(每次我在连接扩展坞的情况下启动时),因此没有用户文件夹可以让用户登录。我切换到命令行 ( Ctrl+F1
) 并检查zpool status
- 没有。一本手册zpool import data
,内容/home
再次出现,返回登录屏幕 ( Ctrl+F7
),一切正常。
超时和我的 zpool 消失的事实表明在内核模块加载或初始化期间出现了某种错误,可能是事情发生的顺序 - 尽管我不确定如何调试这个或发生了什么。没有底座,一切都按预期工作。
我正在为视障人士对这个系统进行故障排除。扩展坞的全部意义在于连接/断开笔记本电脑的电缆更少。插入和拔出电缆的一般困难创造了我的场景。因此,即使只有这一根电缆,我也很难说“每次开机前都拔掉电缆,即使你不随身携带它”。
ZFS 池在引导期间通过
zfs-import-cache.service
服务导入。在我的情况下,这个失败了result dependency
。通过依赖关系,我发现
systemd-udev-settle.service
事先失败了,报告Main process exited, code=exited, status=1/FAILURE
和Failed with result 'exit-code'.
因为这只发生在 Dock 连接时,我最终查看了 DisplayLink 和相关的错误。我找到了这颗宝石。事实证明,
/opt/displaylink/udev.sh
由 udev 服务调用并超时,这是一个已知问题 - 与 ZFS 没有任何关系,只是一个不幸的事件链。这个问题已经知道了两年多,并且在 DisplayLink 驱动程序中仍未解决,尽管各种打包程序已经解决了这个问题。我应用了这个技巧,即
displaylink-driver
从内部启动服务,/opt/displaylink/udev.sh
如下所示:systemctl start --no-block displaylink-driver
我实际上只添加了
--no-block
参数。这解决了我的问题,连接到扩展坞的外部显示器实际上也可以按预期工作。