Razer Core X Chroma eGPU

Hi there!

I’m trying to setup the ultimate work from home upgradable laptop. And the Framework is obviously key to that. For some gaming and because I work in 3D, I also use an eGPU: Razer Core X Chroma + NVIDIA 2080 RTX. My goal is to have 1 USB-C/Thunderbolt cable to rule them all: GPU, external SSD, webcam and keyboard (not using Bluetooth because I need it in Grub).

On Windows, things are mostly OK. The one thing is that not all the USB-C expansion slots (cards?) behave the same when it comes to Thunderbolt. Some of them are more reliable than other. Issues might range from the GPU not being detected (rare) to malfunctionning USB hubs (disconnecting multiple times and finally being marked by Windows as “not working properly”). It happens no matter how many USB devices I plug on the eGPU. It also happens with the internal Ethernet card that is also internally connected via USB.

On forums I’ve gathered that the USB hubs are very sensitive to power control issues. Maybe that’s it?

Anyway here is Cyberpunk 2077 running on the Framework:

On Linux, well that’s another issue entirely.

I’ve tested Ubuntu 21.04 but I couldn’t get it to boot: I got “couldn’t allocate usb_device” errors and the boot sequence stopped right there.

I’ve tested Fedora 34 (respin with kernel 5.13.16-200.fc34.x86_64). And the same “couldn’t allocate usb_device” error happens during boot except it continues and manages to boot. Then I had to:

  • Install the NVIDIA drivers.
  • Force GDM to use X11.
  • Configure X11 to use the eGPU using egpu-switcher.
  • Enable DRM support by adding nvidia-drm.modeset=1 to the kernel parameters.

As a result:

  • The eGPU works. As far as I can tell it works 100% of the time as long as the USB-C/Thunderbolt port being used is always the same one. Presumably because the PCI device ID is hardcoded in the X11 conf generated by egpu-switcher.
  • USB support is unreliable at best. Some devices are recognized (external SSD, webcam), others are not (keyboard, ethernet). And as far as I can tell, it’s not necessarily consistent between boots. Unplugging/plugging devices might make them work. But it breaks at the next boot. The external SSD is always working though. Other devices are kind of random.

Maybe this USB issue root cause is the same as the one on Windows?

Here are some interesting and IMHO related lines in dmesg:

[   12.022217] xhci_hcd 0000:5b:00.0: xHCI host not responding to stop endpoint command.
[   12.022226] xhci_hcd 0000:5b:00.0: USBSTS:
[   12.022256] xhci_hcd 0000:5b:00.0: xHCI host controller not responding, assume dead
[   12.022261] xhci_hcd 0000:5b:00.0: HC died; cleaning up
[   12.022411] usb usb7-port1: couldn't allocate usb_device
[   12.534318] xhci_hcd 0000:5d:00.0: xHCI host not responding to stop endpoint command.
[   12.534328] xhci_hcd 0000:5d:00.0: USBSTS:\xff\xff\xff\xff	
[   12.534357] xhci_hcd 0000:5d:00.0: xHCI host controller not responding, assume dead
[   12.534363] xhci_hcd 0000:5d:00.0: HC died; cleaning up
[   12.534491] usb usb11-port2: couldn't allocate usb_device
[   12.534535] usb usb12-port1: couldn't allocate usb_device

How do I know those issues do not come from the eGPU enclosure? I have the exact same setup that works 100% of the time - using both Windows and Linux - with an XPS 13 9310 without a single specific kernel option / driver. The eGPU works and all the USB devices work. 100% of the time.

As I know the Framework team is working on the Thunderbolt certification, I hope this will be resolved. Please let me know how I can help :slight_smile:

8 Likes

Glad to see you’re making progress.

What FPS were you getting in Cyberpunk? I really would love to get a Framework and eGPU setup, but I’m not sure if it’ll play Halo Infinite lol.

1 Like

What FPS were you getting in Cyberpunk? I really would love to get a Framework and eGPU setup, but I’m not sure if it’ll play Halo Infinite lol.

With all settings maxed out, Steam says 35 to 55 FPS. Since there is lots of motion blur, it feels more than 35FPS to be honest. And it’s mostly above 45.

I wonder whether the bind / unbind mentioned here is relevant at all:

I’ll have to try with the proper device IDs. I’ll let you know.

I did some tests and I think it’s GPU bound by the 2080 RTX. The “Raytracing: Medium” preset gives a solid 45 to 60 FPS.

After doing some Windows Update (Windows 10 Pro 19043) I had the unpleasant surprise to discover that hot (un)plugging the GPU did not work as expected anymore.

After removing the USB-C cable from the laptop, then re-plugging it back, the laptop would not switch to the eGPU anymore.

I tried reinstalling the drivers from scratch. But without any success.

Finally, I tried the same operation on my (also up to date) XPS 13 9310. And the same problem occurred. So it is not specific to the Framework.

I found a workaround: use the “Disconnect GPU” button.

image

The USB C cable can then be removed safely. Then, after re-plugging it, hit the “Connect GPU” button. And voila!

As far as I can remember this used to work without any additional operation than savagely removing the cable. Not any more apparently…

1 Like

I’ve always had the problem. Just in general, I’ve never gotten eGPUs to be truly plug and play.

On my razer core x with rtx 3060ti, windows 10 pro, I can only get egpu recognized out of the left usb ports, never the right, despite driver reinstalls, reboots, etc. Have 2x usb c modules, one for each side. Switching them around isn’t helping either.

PD still works on right side.

I have similar problems, but it’s not a side thing!

  • Bottom left used to work 100%. Now it send the eGPU in a power up/down loop.
  • Top left has power issues: the eGPU is plugged in, but the laptop does not see any power coming in. Plugging it in/out multiple times eventually fixes it.
  • Top right works OK (for now).
  • Bottom right I didn’t try too much.

On a brighter note, I just played Back4Blood for ~1h and it ran at ~140FPS with a very reasonable amount of CPU fan noise (“Balanced” power plan with Turbo Boost off, “best performance” power mode).

ok, think it might be a signalling quality thing.

https://www.amazon.com/gp/product/B08ZXH6RJ3

Using 6.6ft tb4 cable both left ports work fine, both right ports don’t. issue persists with usb c module swapping between sides.

both sides work with thunderbolt egpu when using a random 4ft tb4 cable.

Have you tried this?

It looks like things have gotten a bit better since I did this. But I did not perform any kind of in depth testing.

I did a write-up here. Using Fedora 34 with an eGPU-switcher app and newer mesa drivers for my RX6600XT. Will probably upgrade to a mid tier or max tier GPU when AMD comes out with them next year, as AMD and Linux generally play together quite well.

2 Likes

I did a write-up here .

Yes I read it! I should probably have posted it here for reference.

Framework has promised a firmware update to their Framework Laptop soon too, that will fix the power delivery anomaly I was seeing. I’d need the eGPU hooked up along with a secondary power supply if I wanted to game for longer than four hours at a time.

Have the same problem: PD does not work on the first connection. But here is how I do it:

  • Boot the Framework with the eGPU plugged in: the LED is usually off.
  • At the Grub screen, unplug/replug the eGPU: the LED then turns on (so there is power/PD is working)
  • Continue to boot the OS I want.

So far it works.

1 Like

I have been trying to get an eGPU working under Ubuntu 21.04 using a different box, but am having some trouble. When I plug it in I see the BOX connected in dmesg but after installing the nvidia driver I am not seeing any GPU connected and the box doesn’t signal that it is properly connected.

[ 106.773600] usb 3-1: USB disconnect, device number 2
[ 111.581519] usb 3-1: new low-speed USB device number 5 using xhci_hcd
[ 111.733162] usb 3-1: No LPM exit latency info found, disabling LPM.
[ 111.740618] usb 3-1: New USB device found, idVendor=2a8c, idProduct=0030, bcdDevice= 3.61
[ 111.740628] usb 3-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 111.740631] usb 3-1: Product: eGFX Breakaway Box
[ 111.740634] usb 3-1: Manufacturer: Sonnet Technologies, Inc.
[ 111.740637] usb 3-1: SerialNumber: 1D06330155FAE59EB242EEA9CDE72569
[ 112.323813] usb 3-1: USB disconnect, device number 5
[ 112.629364] usb 3-1: new low-speed USB device number 6 using xhci_hcd
[ 112.781032] usb 3-1: No LPM exit latency info found, disabling LPM.
[ 112.787814] usb 3-1: New USB device found, idVendor=2a8c, idProduct=0030, bcdDevice= 3.61
[ 112.787824] usb 3-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 112.787827] usb 3-1: Product: eGFX Breakaway Box
[ 112.787831] usb 3-1: Manufacturer: Sonnet Technologies, Inc.
[ 112.787834] usb 3-1: SerialNumber: 1D06330155FAE59EB242EEA9CDE72569

Are you connecting the eGPU on boot or after the boot-up process.

I tried turning off the machine totally and then connecting, but nothing seems to really happen. I might try setting up windows to test it?

Looks like the USB device is disconnecting/reconnecting.

Have you tried the BIOS version 3.06?

Have you tried a different USB-C port/expansion card?

Have you tried the USB-C shielding fix?

Hi there,

New important stuff! Using the latest BIOS (3.06) I have found a way to reliably get all the USB-C peripherals plugged to the eGPU to work as expected. If works 99% of the time on both Windows and Linux (Fedora 35, Linux 5.15.5-200.fc35.x86_64):

  • Unplug the eGPU.
  • Boot.
  • At the GRUB screen, plug the eGPU (I’m using the top left slot of the laptop).
  • Select the OS and resume boot.

With this technique, the following peripherals are connected to the eGPU and work at boot and do not disconnect:

  • The embedded Ethernet card (though its chipset driver is buggy on Linux)
  • My SSD (Samsung T5).
  • My webcam (Razer Kio).
  • My keyboard (Keychron K9).

My conclusion is that the eGPU (including the USB hub support) issues are mainly caused by a faulty BIOS.

2 Likes

The trick above :arrow_up: works even better than expected: it also works on a stock Ubuntu 20.04!

  • Install Ubuntu 20.04
  • Do all the updates
  • sudo apt-get install nvidia-driver-495
  • plug the eGPU
  • run nvidia-smi to verify the GPU is detected
  • install and configure egpu-switcher
  • power off

Then the trick:

  • unplug the eGPU
  • boot to GRUB
  • plug the eGPU
  • boot Ubuntu

Done!

2 Likes

The trick above :arrow_up: also works on Ubuntu 21.10, which is officially supported by Framework (21.04.3+).

I can confirm the above trick also works with Manjaro 21.2.6 and the Razer Core X Chroma.

1 Like