2017 Intel NUC7i5BNH [7th,2C,U] + GTX 1070 @ 32Gbps-TB3 (AORUS Gaming Box) + Linux & Win10 [halmoni100]
CPU: Intel Core i5-7260U
iGPU: Iris 640
OS's: Windows 10 (build 1803) and Ubuntu 16.04.4 LTS (kernel version 4.13, I forget the revision number)
Misc: 8GB DDR4 RAM, 512GB Samsung EVO 970 M.2 SSD
AORUS 1070 Gaming Box, TB3 connection
LG UD58-B 4K display through HDMI 2.0
Sorry, this is my first post, will update with pics when I can!
I will post a more detailed guide when I have time, but for the moment, here are the most important steps I took. This should especially interest those who want to use Linux + eGPU, given the dearth of eGPU support for Linux.
1. Install Windows 10 and Ubuntu 16.04
2. Plug in the eGPU
3. Boot into Windows
4. Install thunderbolt driver from here
5. Perform firmware update on thunderbolt driver following instructions from here (read the pdf, download from link in the pdf)
6. Install latest Nvidia drivers for Windows
7. You should be good to go. From time to time (or even for the first time), you may need to enable the eGPU from Device Manager. To do that, enter Device Manager, look under Display adapters, and you should see a listing for "NVIDIA GeForce GTX 1070" (or whatever eGPU you have). Right click it, select "enable device"
8. Boot into Linux
9. If you have older nvidia drivers (unlikely if you have a fresh install), perform the following command in a shell terminal:
sudo apt-get purge nvidia*
10. Install nvidia drivers from a ppa by performed the following commands in a shell terminal:
sudo add-apt-repository ppa:graphics-drivers sudo apt-get update sudo apt-get install nvidia-390
Enable the eGPU in Linux
In order to enable the eGPU in Linux:
1. Boot into Linux
2. Plug in the eGPU device through Thunderbolt
3. Authorize the Thunderbolt connection by performing the following commands in a terminal:
cd /sys/bus/thunderbolt/devices/0-1 sudo bash -c "echo 1 > authorized"
4. Use NVidia Prime to switch to the NVidia drivers by performing the following command in a terminal:
sudo prime-select nvidia
5. Log out
6. Log back in. If you type
in terminal, you should see your eGPU information.
You could put these commands in a bash script for convenience.
Disconnect eGPU in Linux
To safely disconnect the Thunderbolt connection to the eGPU without crashing, perform the following steps:
1. Switch back to the intel drivers using NVidia Prime
sudo prime-select intel
2. Log out
Now it is safe to disconnect the eGPU.
Will post later, but I got a benchmark of ~3000 (1080p) and ~1200 (4k) for Unigine Valley in Ubuntu (from memory, will post exact numbers later)
eGPU is working great! There may be a difference between having the HDMI plugged in the NUC versus the eGPU, so I will post my results here. Before you put your computer to sleep, make sure to disconnect the eGPU from the taskbar, and enable device and/or reconnect when waking. Have issues when sleeping without disconnecting.
It took me forever to finally get to a working solution on Ubuntu, and I am quite relieved I found one. Unfortunately, official eGPU support on Ubuntu/Linux is probably nonexistent, or is probably spotty, but I hope this will change in the future.
In any case, I'm glad to have eGPU working in Linux to run robotics applications (ROS/Gazebo), CUDA, OpenGL, OpenCL, etc. etc. and I love how small the computer is.
Firefox in Linux
For whatever reason, Firefox started lagging when using the eGPU in Linux. To counter this issue, I followed the instructions here. Basically, force enable hardware acceleration, and you should be good to go.