How to flash firmware upgrade to Thinkpad Ultra Docking Station on Linux?
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: 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.
Thanks to all your answers, I finally was able to install the update:
- Downloaded Windows 10 from here.
- Created a new Windows 10 VM in VirtualBox on a 14 GB VDI virtual disk.
- 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)
- Reattached the virtual network adapter and downloaded the Firmware Update as well as the Intel Graphics Driver.
- 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
- Bought 16 GiB USB drive (On this occasion I want to emphasize how much I hate to buy hardware to solve a software issue).
-
dd
'ed the raw image onto the USB drive:sudo dd status=progress if=~/usb.hdd of=/dev/sdb bs=512K
- Entered UEFI firmware setup, switched boot mode to "Legacy only", enabled "CSM support" and changed boot priority to boot from USB.
- Booted into Windows 10 from USB drive (Did not use a USB port of the docking station, but of the laptop).
- Installed Intel Graphics driver (Without it the update will not find the current
DP Hub
andPD Control
version and finally raise the following error: "Update timeout, please remove all devices from the Dock, and reboot computer to try again."). - Run the firmware update
- 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!
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.
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.