I recently tackled the task of setting up a home lab/server using Proxmox on an Intel NUC8i7HVK. The NUC is a very powerful little box that has a very small power draw, making it great for a home server application. I also got a hold of two 10TB drives that I shucked from western digital easystore enclosures and purchased an external Akitio Thunder 3 Quad X enclosure that I figured would work well with the 2 TB3 ports that the NUC sports.
After putting the two 10TB drives into the Akitio enclosure I plugged it into the NUC to see if it would be detected:
lspci -v # shows the thunderbolt 3 ports fdisk -l # drives are not showing up yet
So the thunderbolt 3 ports are recognized by the OS, but the drives are not showing up yet. I also know that one of the Thunderbolt 3 ports is working because I had used it to plug in my monitor to setup the NUC initially. Searching around I found this info on kernel.org. That led me to execute the following commands to see that first the device was not yet authorized, and then to authorize it:
cat /sys/bus/thunderbolt/devices/0-3/authorized # returned a 0 meaning it wasn't yet authorized echo 1 > /sys/bus/thunderbolt/devices/0-3/authorized
I set the authorized flag to 1 and then went back into proxmox and hit the reload button on the Disks page, and viola, I have 2 10TB disks showing up.
This is not the ideal way to authorize TB3 devices within Linux/Debian. There does exist a utility called
bolt which is for managing TB3 devices within linux. To install this I first added the package repo that has bolt to my sources.list:
Add the repo
http://ftp.de.debian.org/debian sid main then apt update and install it.
Update 08/17/2019: I had reinstalled proxmox to version 6 and followed the instructions on servethehome which adds the non-subscription repo at step 1, so one does not need to add the repo I mentioned above if they’ve done the same.
apt-get update apt-get install bolt # you may need to fix broken dependencies with: apt --fix-broken install
Now you should have a
boltctl command and can see what is available with it using
boltctl --help. To store the device for future connection authorization issue
boltctl enroll <uuid>. I did this and got a message like
The name org.freedesktop.PolicyKit1 was not provided by any .service files. This was because I did not install policykit, so after a a quick
apt-get install policykit-1 and then reissuing the
boltctl enroll command the device was authorized and stored.