After buying a 16” MacBook Pro the other month, I’ve been using a Thunderbolt 3 hub to connect it to my periphery devices. Luckily, in addition to the macbook, I am able to use the hub with my my work laptop when working from home. Normally, it works fine. However, last week I reformatted the work laptop with the KDE Plasma spin of Fedora Workstation 31… and my TB3 hub stopped playing nicely with it. Here’s why.
Due to a NVIDIA Quadro M1000M in my lenovo P50 work laptop, I’ve been using Gnome with Wayland, because that combination seems to have the least amount of annoying trade-offs. While doing a system refresh, I figured I would see if things are any different with a clean Fedora 31 Plasma install (they weren’t, but that’s beyond this post).
Booting into the live cd, and later the installed system, I noticed that my
Thunderbolt 3 hub did not work while I was in Plasma. That was fine. I
expected it really, because for security reasons Linux distros tend to disable
thunderbolt ports by default. In gnome, there are now settings to authorize
it (which I guess I had done on my previous install, and forgot about). In
Plasma however, I needed to install and configure
bolt is in the repos (at least in Fedora 31+), so installing it is
sudo dnf install bolt
bolt is installed, it isn’t a bad idea to check to make sure it is
sudo systemctl bolt.
If the status shows that it isn’t running for some reason, it can be started
systemctl start bolt. Check the status again, and if it it still is not
With bolt installed, the command
boltctl is available to use. The base command will
show information about attached thunderbolt devices. To see more
In order to use the thunderbolt 3 device, it needs to be authorized. To
authorize a device, first use a plain
boltctl command to get the
the device. Next, call
boltctl authorize using the
uuid to authorize it:
boltctl authorize <UUID HERE>
The device should now be authorized. When I authorized mine, some of my devices started showing up automatically, while others needed to be disconnected and replugged.
Authorizing a device enables it to be used, but doesn’t guarantee persistence.
While this may be desired to grant temporary authorization to a device, many
users tend want their device to always work, without having to manually
authorize it. In this case, the device should be enrolled (like
boltctl enroll, with the device UUID:
boltctl enroll <UUID HERE>
Once enrolled, the device’s UUID will be recorded and added to a database. By default, the device will now automatically be authorized whenever it is connected.
That’s it. While the solution isn’t very difficult, it can be frustrating to
figure out when it appears that the thunderbolt device simply is not working.
Regardless, I’m glad that I now know about
bolt and how to use it!
Creating Tests For This Website: Pages My New 16-inch Macbook Pro: Initial Thoughts