Using the Razer Core V2 with Fedora Linux

I’ve always chosen laptops with integrated Intel graphics for the superior FOSS driver support, and my latest laptop is no exception. I bought my Lenovo ThinkPad T580 in early 2018, but I finally found an opportunity to try the Thunderbolt 3 port with an eGPU. In short, it all works — and it doesn’t require any weird configurations, either.

Vertical laptop stands play nicely with ThinkPad displays, putting them near an ergonomic height.

The Hardware Tested

Today’s Fedora has Solid Thunderbolt Support

Having installed the graphics card into the enclosure, I connected the enclosure with Thunderbolt 3 (using the included, though very short, cable) and checked out the slick, new interface for authorizing devices in Fedora 28.

Authorizing Thunderbolt devices is easy in Fedora 28.

This worked without tweaking the firmware (BIOS) configuration for Thunderbolt security, which I know some eGPU guides suggest. After approving both devices, my laptop screen briefly flickered and came back. However, this did not mean anything was rendering through the eGPU yet.

Radeon Graphics Worked Out-of-the-Box

Before trying to run any games on the eGPU, I wanted to verify that the graphics card was recognized by the Linux kernel and other graphics-related systems.

I could confirm that the kernel had recognized the device and initialized the GPU by using the lspci -vnn | grep '\''[030[02]\]' .

It showed this output for me (the eGPU is second):

00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917] (rev 07) (prog-if 00 [VGA controller])
0c:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X] [1002:67df] (rev e7) (prog-if 00 [VGA controller])

It was also possible to see the devices from an Xorg session (rather than the default, Wayland) by running DRI_PRIME=1 glxinfo | grep "OpenGL renderer" . The DRI_PRIME=1 environmental variable directs the running application to use the second GPU, which is the external one in this case.

It showed this output for me:

OpenGL renderer string: Radeon RX 580 Series (POLARIS10 / DRM 3.23.0 / 4.16.8-300.fc28.x86_64, LLVM 6.0.0)

The output of the above command was empty for me on Wayland, as I expected from the lack of X.

We can briefly put the eGPU to work in an Xorg session to verify the round trip back to the laptop display: DRI_PRIME=1 glxgears -info

I didn’t say we’d be making the eGPU work hard yet.

Running Steam Games on the eGPU

In anticipation of the upcoming Distant Stars and Stellaris 2.1 release, I tried out my most-played game:

That’s all with the lowest graphics settings and not viewing any system containing a large fleet.

I set launch options to DRI_PRIME=1 %command% to run the game on the eGPU:

These options are too strong for you, traveler.

That’s it; it worked on the first launch. I tried it with a few other games, mostly with good luck:

  • Gone Home
  • The Talos Principle (both OpenGL and Vulcan modes)
  • Slime Rancher

I could not get Firewatch to launch on the eGPU, but I encountered issues even launching it on my integrated GPU with the eGPU connected. It just hangs on a black screen pegging the CPU. I’ve tried adding LIBGL_DEBUG=verbose to the launch options, but I haven’t been able to find the resulting output in any of the expected paths.

Other Thoughts on the Razer Core V2

With a few minor caveats, I think this would be pretty great as a docking station.

Lighting

The enclosure includes LEDs that gradually drift from one color to another. It doesn’t bother me, but I’m also not sure how to reconfigure or disable them from Linux. I also haven’t made much of an attempt to do so.

Integrated Devices

The enclosure includes Ethernet and USB Type-A ports (the kind of port that was on almost every computer until Type-C).

The Ethernet shows up properly and probably works, but I didn’t try it. Because the Ethernet is over USB, its performance is probably not amazing. I’m not sure it would matter for gaming purposes, though. (It certainly wouldn’t matter for most typical desktop use.)

The enclosure’s network port shows up as “USB Ethernet” in the GNOME Control Center.

The actual USB ports also work fine. No surprises there.

Thunderbolt 3 Connection

There is no power switch on the enclosure, but it flawlessly turns on and off based on whether there’s a Thunderbolt connection to a host machine.

The connection supports Power Delivery support up to 65W, which is fine for ThinkPads. Other enclosures, including Razer’s newer, cheaper, wider “X” model, support up to 100W. 100W is the maximum possible with Power Delivery.

The enclosure comes with a short (about one foot) Thunderbolt 3 cable. There are longer ones on the market, but the good ones are pricey ($50+). Reliable Thunderbolt 3 cables have to meet pretty stringent specifications, so I’d recommend finding a certified cable. Apple is always a safe (if expensive) source for such accessories.

While hot-plugging the eGPU seems to initialize things fine, disconnecting the eGPU after having run a game on it freezes my desktop unless I unload the related kernel modules first:

$ sudo rmmod amdgpu amdkfd amd_iommu_v2

Build Quality

The enclosure feels great, both during GPU installation and for general use. The case acts like a giant heat sink, and everything is very quiet. It looks like a tiny, matte black version of the old Mac G5 towers, and it shows similar attention to detail.

Just one of the colors it shows. I still need to remove some packaging from the bottom.

Fedora 28 has Improved NVIDIA Driver Support

While I went the FOSS route by choosing a Radeon card, support for NVIDIA proprietary drivers in Fedora is better than ever. Wayland support is probably still wonky (on account of NVIDIA’s strange buffer architecture), so Xorg remains a better choice for eGPU NVIDIA gaming today.

Notes on Performance

I just wanted to see modern games run with decent graphics settings, so I haven’t run any formal benchmarks. Stellaris ran fine with the graphics cranked way up and displayed on my laptop’s built-in screen.

However, here are some tips based on how I understand the eGPU setup:

  • Even under the best of circumstances, the bandwidth to the eGPU is fairly limited. Thunderbolt 3 only supports up to four PCIe lanes. Using a discrete GPU in a more typical configuration allows up to 16.
  • Using an external display hooked directly up to the enclosure will save substantial bandwidth, as the rendered screen won’t need to be sent back to the laptop. This seems to have a massive impact on benchmarks with similar eGPU configurations.
  • It’s probably better to use over sampling but a lower resolution when using the built-in screen on a laptop. Fewer, higher-quality pixels being pushed back to the laptop screen probably requires less bandwidth for a pleasing result. I haven’t tested this theory.
  • Some Thunderbolt implementations only support two lanes, not four. This is the case for my T580. You can check the chipset on your computer by running lspci | grep Thunderbolt. “Low Power” means two-lane support only.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade