Ubuntu – Disabling thunderbolt security on Dell TB16 through linux (Ubuntu 16.04)

16.04delldockingxps

Today I got a new laptop xps 15 9560. After A LOT of pain I was ablet to finally install Ubuntu 16.04 on the bloody thing. Took me about 3 hours, had to mess within Bios. Reading this thread helped me quite a bit http://en.community.dell.com/support-forums/laptop/f/3518/t/20004529.

To make a long story short when I finally got the usb to boot, I did not create a second partition, but just installed Ubuntu.

Now nothing on my thunderbolt dock (TB16) works. After reading a bit on the arch wiki https://wiki.archlinux.org/index.php/Dell_XPS_15_(9550). I seem to have to disable some security features to enable the full functionality of the dock. Linking to this article to this article. http://www.dell.com/support/article/ed/en/edbsdt1/sln171755/updating-the-dell-bios-in-linux-and-ubuntu-environments?lang=en However after some light reading this seems quite advanced, and is just to update the bios not change it.

A similar thread on the wiki https://wiki.archlinux.org/index.php/Dell_XPS_13_(9360) proposes another method for updating the bios.

I know it was stupid to get rid of windows, but after such a long winded process of finally being able to boot, I did not want to go though a similar process getting dual-boot up and running.

Any help getting the dock up and running when I no longer have access to windows would be wonderful.

Best Answer

You don't need to do disable security on Ubuntu 18.04, and the 9370, 9570 and 9575 all include new enough thunderbolt firmware out of the box.

On any OS with bolt and gnome-shell version 3.28 (or the boltd integration back ported) you don't need to do any of this: Thunderbolt devices work out of the box. Ubuntu 18.04.1 Gnome Shell ships with this boltd integration.

So for those on the ancient versions of ubuntu the recommended way at the moment is to use boltctl from https://packages.ubuntu.com/bionic/bolt

first run:

$ boltctl list

 ● Thunderbolt Cable
   ├─ type:          peripheral
   ├─ vendor:        Dell
   ├─ uuid:          <there will be a UUID here I will call it cable-uuid>
   ├─ status:        authorized
   │  ├─ authorized: Mon 11 Jun 2018 11:45:37 UTC
   │  └─ connected:  Mon 11 Jun 2018 11:45:37 UTC
   └─ stored:        yes
      ├─ when:       Mon 11 Jun 2018 11:39:20 UTC
      ├─ policy:     auto
      └─ key:        no

 ● Thunderbolt Dock
   ├─ type:          peripheral
   ├─ vendor:        Dell
   ├─ uuid:           <there will be a UUID here I will call it dock-uuid>
   ├─ status:        authorized
   │  ├─ authorized: Mon 11 Jun 2018 11:45:42 UTC
   │  └─ connected:  Mon 11 Jun 2018 11:45:42 UTC
   └─ stored:        yes
      ├─ when:       Mon 11 Jun 2018 11:39:45 UTC
      ├─ policy:     auto
      └─ key:        no

Then run:

boltctl enroll <cable-uuid>
boltctl enroll <dock-uuid>

The first time I ran enroll for the <dock-uuid> I got: failed to authorize device: write error: Invalid argument So you may need to run it twice or more.

Note that for me boltd 0.3 won't authorize any devices enrolled until after first login. However you can grab bolt 0.4 from the proposed repo (It's likely to be available in the main repos soon though), see also:

https://bugs.launchpad.net/ubuntu/+source/bolt/+bug/1778020