Dell's TB16 is a popular Thunderbolt Dock with power-delivery, ethernet, USB, audio, HDMI, DisplayPort, mini-DP and VGA. It works well in Linux when configured correctly with up-to-date firmware.
You shoulder either:
- Disable Thunderbolt security in the BIOS (recommended)
- Use boltctl to temporarily authorize or permanently enroll the dock and cable.
Thunderbolt security "works" but may result in random instability, particularly system freezes on resume. It's suggested to ensure your system is completely stable before enabling this.
Dell Type-C Dock Configuration
The TB16 is commonly used with Dell laptops, which have a special BIOS option which may cause stability issues. You should disable the following option:
- Dell Type-C Dock Configuration
- Always Allow Dell Docks (uncheck this)
The firmware updates provided for Windows at Dell's TB16 Support: Drivers page include firmware that cannot be updated in Linux, such as the ASMedia USB Host Controller firmware which fixes numerous instability USB issues and Synaptics controller (DisplayPort).
To summarize jasondclinton's post on reddit:
- The NVM updates to the TB controller can be flashed by Linux (using the standard nvm_nonactive nvm_authenticate sysfs interface)
- There is no way to install the ASMedia, Synaptics, etc firmwares - so you might as well flash everything from Windows.
- You need all the latest updates for the docker firmware updater to even see the TB16.
Ensure you have the latest:
- BIOS firmware
- Windows Update
- Dell Update
- Thunderbolt NVM firmware (for the Thunberbolt controller on your device) - should be covered by Windows & Dell updates
- TB16 firmware updater from the drivers page above.
Even after having used the firmware updater, there are still other firmwares from the same Dell support page, which supersede the versions included in the firmware updater, that should be downloaded and installed afterwards, e.g. the ASMedia driver / firmware. If in doubt, install all updates on the page.
jasondclinton also notes that the official NVM updates are often far behind Intel's latest releases (e.g. TB16's 1.0.0 firmware includes NVM 16 wherehas Intel had already released NVM 33 at time of writing). It is unknown if there's an easy way to update these independently.
Issues such as the USB bus (and all connected devices) failing when plugging/unplugging devices are improved by following all the instructions above (notably, Thunderbolt Security, "Dell Type-C Dock configuration options" and firmware updates). Read the firmware updates section carefully: not all updates are possible via Linux.
Some devices behave differently in the dock vs directly on laptop's USB ports, e.g. Microsoft's keyboard receiver is erratically put to sleep. You can wake them up in powertop or see Power management#USB autosuspend on how to blacklist particular devices.