已对接的联想 T580 在内核更新 > 5.4.0-59 启动期间或启动后不久会冻结

已对接的联想 T580 在内核更新 > 5.4.0-59 启动期间或启动后不久会冻结

将我的 Ubuntu 20 内核更新到高于 5.4.0-59 的任何版本后,在 Thinkpad Ultra 扩展坞上启动将完全冻结。未对接时我可以正常启动,但即使在成功启动后对接,我的 4k 外接显示器也永远不会出现,其他外部设备也无法正常工作。

冻结的时间很混乱。有时在 Ubuntu 登录屏幕前冻结(因此,黑屏,只有鼠标指针,并且指针最终也会冻结在原地),有时在 Ubuntu 登录屏幕上冻结,有时在成功登录后不久冻结。

我尝试了一些在那里找到的东西

GRUB_CMDLINE_LINUX_DEFAULT="nosplash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="quiet nosplash" 

...在 /etc/default/grub 中,当然,还要遵循以下更改update-grub

我尝试从底座上卸下除触摸板和键盘之外的所有外部设备,但仍然不起作用

https://bugs.launchpad.net/ubuntu/+source/linux-oem-5.6/+bug/1902469

这个错误报告似乎表明该问题在更高版本的内核中已得到修复,但我仍然看到 Ubuntu 软件更新程序自动拉取的 5.8 内核存在问题。

这篇文章看起来很有希望,但对我来说还是没用: https://forums.linuxmint.com/viewtopic.php?t=334482

相同的:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1901215

由于我的 Docking Station 是 Thinkpad Ultra,因此以下是在 dmesg 中对“thinkpad”进行 grep 的结果:

[    4.527135] thinkpad_acpi: ThinkPad ACPI Extras v0.26
[    4.527136] thinkpad_acpi: http://ibm-acpi.sf.net/
[    4.527136] thinkpad_acpi: ThinkPad BIOS N27ET35W (1.21 ), EC N27HT16W
[    4.527137] thinkpad_acpi: Lenovo ThinkPad T580, model 20LAS5Y600
[    4.530205] thinkpad_acpi: radio switch found; radios are enabled
[    4.534807] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
[    4.534807] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default...
[    4.553917] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[    4.586858] thinkpad_acpi: battery 2 registered (start 0, stop 100)
[    4.597785] thinkpad_acpi: battery 1 registered (start 0, stop 100)
[    4.598037] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input7

dmesg通过 grapping 搜索“dock”得到这个

[    0.534859] acpi PNP0C0A:01: ACPI dock station (docks/bays count: 1)
[    3.944254] systemd[1]: /lib/systemd/system/docker.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/docker.sock → /run/docker.sock; please update the unit file accordingly. 
[   15.624844] audit: type=1400 audit(1611255256.383:64): apparmor="STATUS" operation="profile_load" profile="unconfined" name="docker-default" pid=2215 comm="apparmor_parser"

我还在这里找到了更新版本的 bios:https://support.lenovo.com/sk/en/downloads/ds502394-bios-update-utility-bootable-cd-for-windows-10-64-bit-linux-thinkpad-p52s-t580

按照自述文件的说明,我在 .cab 文件的位置打开了一个终端,并运行 fwupdmgr install N27ET41W.cab,结果:正在解压缩... [***************************************] 未找到支持的设备

我把命令行的这一部分改成了 ...ro quiet no splash iommu=soft $vt_handoff 这样 ...ro iommu=soft $vt_handoff 然后按 f10 键,Ubuntu 登录屏幕就立即冻结了

间歇性修复……?基于此错误线程:https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/1871641

我编辑了 grub 命令并删除了它quiet splash nosplash,然后就可以5.8.0-40-generic正常启动了。我让它像这样工作了两次,然后用相同的更改编辑了 /etc/default/grub,然后运行sudo update-grub,从那以后就一直无法避免冻结。cmd 与上一次更改的区别在于,$vt_handofflinux_default 行末尾不再有iommu=soft

这开始看起来像是某种竞争条件。如果我在启动期间停下来编辑 grub 命令行,不做任何更改并按下 f-10,我就可以恢复正常了。如果我只是选择最新的内核而不转到命令行编辑器,它最终会冻结。

答案1

好吧,在我写了那篇亲爱的日记之后,我希望这可以为将来的某人提供一些帮助。

经过无数次重启和摸索 grub 命令行编辑器后,我最终将以下内容改为/etc/default/grub

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
# GRUB_TIMEOUT=10
# GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
# GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX_DEFAULT="iommu=soft"
GRUB_CMDLINE_LINUX=""

GRUB_TIMEOUT 和 GRUB_RECORDFAIL 行是之前尝试修复这个问题时出现的,所以我注释掉了这两行,并从 GRUB_CMDLINE_LINUX_DEFAULT 中删除了所有的启动内容

最后,我不知道它是怎么进入那里的,也不知道它是怎么消失的,为什么会消失,但在最近的测试中,当编辑 grub cmd 行时,我注意到该行不再以$vt_handoff

相关内容