TransWikia.com

How to flash firmware upgrade to Thinkpad Ultra Docking Station on Linux?

Super User Asked by dirdi on December 22, 2020

I need to update the firmware of a Thinkpad Ultra Docking Station to V3.3.1, which has been released last year. I got no laptop running Windows 7/8/10 and Lenovo does not provide this update via LVFS, but only as an .exe file.

Is it possible to flash the firmware update onto the dock under Linux? Or does somebody know another way to update the dock’s firmware?

A few approaches I am considering:

  • Maybe I could create a Windows 10 USB recovery drive, boot it, fire up a shell and then install the update.
  • Another option would be to create a Windows Preinstallation Environment (PE), flash it to an USB drive, boot it and then run the update. However, all tutorials I found on how to create a PE seem to be outdated.
  • Inside a VirtualBox VM I have a Windows 10 Pro 2004 running. Maybe it is somehow possible to pass-through the dock to this VM to flash the update?
  • I have not tried, but am 99.9999% sure that any approach based on WINE will not work.

What I already tried so far:

  • Leveraging the Windows 10 Pro 2004 VM’s "Recovery Media Creator" tool, I crafted an USB recovery drive, copied the firmware onto the USB drive and tried to run it, but unfortunately without success:
    Error message
    I also tried the "Firmware Update Tool for Enterprise Deploy" and followed the instructions for "Silent deployment in other environment" but ended up with the same error.

There are two threads over at the Lenovo forums regarding firmware updates of an older / another docking station, but neither of them with an accepted solution.

4 Answers

Thanks to all your answers, I finally was able to install the update:

  1. Downloaded Windows 10 from here.
  2. Created a new Windows 10 VM in VirtualBox on a 14 GB VDI virtual disk.
  3. Installed Windows 10 Pro 2004 (Selected "I don't have a product key" and disconnected the virtual network adapter to be able to create a local account) Screenshot Windows 10 Install
  4. Reattached the virtual network adapter and downloaded the Firmware Update as well as the Intel Graphics Driver.
  5. Converted VDI virtual disk to raw image: vbox-img convert --srcfilename ~/VBoxVMs/Windows 10 USB/Windows 10 USB.vdi --dstfilename ~/usb.hdd --srcformat VDI --dstformat RAW
  6. Bought 16 GiB USB drive (On this occasion I want to emphasize how much I hate to buy hardware to solve a software issue).
  7. dd'ed the raw image onto the USB drive: sudo dd status=progress if=~/usb.hdd of=/dev/sdb bs=512K
  8. Entered UEFI firmware setup, switched boot mode to "Legacy only", enabled "CSM support" and changed boot priority to boot from USB.
  9. Booted into Windows 10 from USB drive (Did not use a USB port of the docking station, but of the laptop).
  10. Installed Intel Graphics driver (Without it the update will not find the current DP Hub and PD Control version and finally raise the following error: "Update timeout, please remove all devices from the Dock, and reboot computer to try again.").
  11. Run the firmware update Screenshot of firmware update
  12. Entered UEFI firmware setup and reverted settings.

Please be aware that at least with Win10_20H2_English_x64.iso this procedure won't quite work any longer as Microsoft now switches to their so-called S mode when booting a previously VirtualBox provisioned image. Unfortunately, in S mode one can neither install the required graphics drivers nor launch the docking station update!

Correct answer by dirdi on December 22, 2020

If Lenovo doesn't provide the firmware in a bootable ISO or other system-neutral format (and shame on them), then your best bet in terms of a) foolproof and b) not wasting your valuable time, is probably to install a copy of windows on an external drive (or restore the system to an external drive if you still have the factory restore files). Boot from that drive, make sure you've got all the drivers needed so the firmware can see the dock, then run the firmware update within Windows. You can skip typing in the activation key and still have a usable system that will let you get the firmware patched.

Use Windows 7 or 8 if your laptop supports it, lately 10 requires the creation of a Microsoft account, and lots of personal information like your phone number (!) before it will let you get past setup to the desktop.

Answered by Glaurung on December 22, 2020

I might be missing something...

If you can stand to format the existing drive or have a spare HDD Just install windows 10 preform the upgrade, then switch back to your Linux installation. You do not need a key to install a trial copy of windows 10. Just select "I don't have a key" while installing.

Answered by Honk on December 22, 2020

For running firmware update on Linux, you don't really need a whole working Windows environment. In most cases, a DOS environment is enough.

One well-known DOS boot environment is FreeDOS, that is described as:

FreeDOS is a complete, free, DOS-compatible operating system. While we provide some utilities, you should be able to run any program intended for MS-DOS. Pretty much any program that works on MS-DOS will work on FreeDOS.

The article Flashing BIOS from Linux discusses creating a boot USB for FreeDOS. Perhaps the simplest method uses rufus, most likely available as a package in your Linux distribution, with no need to download FreeDOS.

A detailed desctiption is available in the article Creating a Bootable DOS USB Stick. In a nutshell, start rufus as admin, select the USB stick to be formatted and select FreeDOS, and click Start to create the boot media.

After the boot media is created, copy to it the .exe software for flashing the firmware, boot it, and execute the software.

For help with working with DOS in general and FreeDOS in particular, see the article A gentle introduction to FreeDOS

Answered by harrymc on December 22, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP