A solution!
The reproducible solution for making my eGPU work is to plug an external monitor into the GPU.
Setup
- Plug in eGPU and boot system.
- Install hertg/egpu-switcher.
- Execute
sudo egpu-switcher enable
and select the eGPU. The egpu-switcher daemon will now start on boot and know which device is the eGPU. - Execute
sudo egpu-switcher switch --override
.
How to use eGPU
- Connect eGPU to laptop.
- Connect GPU to a monitor and turn the monitor on, using the GPU input as its source.
- Boot laptop
rocminfo
, clinfo
, radontop
and lspci
all show what I want to see and applications are using the GPU.
The external monitor can be turned off or unplugged at this stage, but if the laptop goes into suspend, when it wakes up the eGPU will no longer be working and the above commands will fail or show errors.
I plan to buy a HDMI emulator plug so I can do away with the monitor.
The only application which isn’t working with my eGPU at the moment is DaVinci Resolve. It detects the GPU and claims to use it via OpenCL, but the timeline won’t display/play any audio or video (even DNxHD). I’ll likely create a new thread dedicated to this.
Thank you all for your help over the months.