1

After updating my Ubuntu 20 kernel to anything higher than 5.4.0-59 the boot will freeze complete when on the Thinkpad Ultra Docking Station. I can boot fine when not docked but even when I dock after successful boot, my 4k external monitor never shows up and other external devices do not work properly.

The timing of the freeze is all over the place. Sometimes it freezes before the Ubuntu login screen (so, black screen, mouse pointer only and the pointer eventually is frozen in place too), sometimes on the Ubuntu login screen and other times shortly after successful login.

I've tried a couple of things I found out there

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

...in /etc/default/grub and, of course, following the changes with update-grub

I've tried detaching all external devices from the dock except a touchpad and keyboard but it still won't work

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

This bug report seems to show that the issue is fixed in a later kernel but I still see the problem with 5.8 kernels automatically pulled by Ubuntu Software Updater.

This article looked promising but still didn't work for me: https://forums.linuxmint.com/viewtopic.php?t=334482

Same: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1901215

Here's a grep for "thinkpad" in dmesg since my Docking Station is a Thinkpad Ultra:

[    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

and got this by grepping dmesg for "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"

I also found an updated version of the bios here: https://support.lenovo.com/sk/en/downloads/ds502394-bios-update-utility-bootable-cd-for-windows-10-64-bit-linux-thinkpad-p52s-t580

Following the readme instructions, I opened a terminal at the location of the .cab file and ran fwupdmgr install N27ET41W.cab the result: Decompressing… [***************************************] No supported devices found

I changed this part of the command line... ...ro quiet no splash iommu=soft $vt_handoff ...to this ...ro iommu=soft $vt_handoff And then hit f10 and promptly froze up on the Ubuntu login screen

Intermittent-like fix...? Based on this bug thread: https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/1871641

I edited the grub command and removed quiet splash nosplash and was able to boot into 5.8.0-40-generic just fine. I got it to work like that twice, then edited /etc/default/grub with the same change then ran sudo update-grub and haven't been able to avoid a freeze-up since. The difference in the cmd from the previous change is there is no longer $vt_handoff at the end of the linux_default line after iommu=soft

This is starting to look like some sort of race condition. If I stop to edit the grub cmd line during startup, change nothing and hit f-10, I'm back in business. If I just select the latest kernel without going to the cmd line editor, it freezes up eventually.

  • Welcome to Ask Ubuntu! Please try to look at the logs in sudo dmesg | less. Maybe you'll find something about the dock in the beginning. If you find something, make sure to edit your question and paste a part of the output there :) – adazem009 Jan 21 '21 at 20:22
  • I've updated my question with what I could get from dmesg. Thanks for the warm welcome and fast response @adazem009 – David Droddy Jan 21 '21 at 22:58
  • Try to remove the quiet splash options from kernel command line. To do it, press shift (esc on UEFI) before grub starts. Then, select your boot entry, press e and find the quiet splash options. Press F10 to boot (with the dock). You'll be able to see everything the kernel does there. – adazem009 Jan 22 '21 at 16:49
  • Question updated with quiet splash options removed from kernel command line during boot – David Droddy Jan 22 '21 at 18:34
  • Where exactly did it freeze? If you can see the login screen, it means GNOME display manager starts correctly. – adazem009 Jan 22 '21 at 19:19
  • That's a great point. In fact, the timing of the freeze is all over the place. Sometimes it freezes before the Ubuntu login screen (so, black screen, mouse pointer), sometimes on the Ubuntu login screen and other times shortly after successful login. – David Droddy Jan 22 '21 at 19:22

1 Answers1

1

Well, after that dear diary entry I wrote, I hope this helps someone in the future.

After countless reboots and fumbling in the dark with the grub command line editor I ended up changing to the following excerpt in /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=""

The GRUB_TIMEOUT and GRUB_RECORDFAIL lines were in there from earlier attempts to fix this so I commented those out and removed all of the splash stuff from GRUB_CMDLINE_LINUX_DEFAULT

Lastly, I don't how it got in there in the first place or how or why it went away but, during recent tests, when editing the grub cmd line, I noticed that the line no longer ends with $vt_handoff