将我的 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_handoff
linux_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