Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| linux:rbs [2021/11/11 10:33] – [Razer Core X eGPU] mh | linux:rbs [2025/11/14 23:14] (current) – [Razer Core X eGPU] mh | ||
|---|---|---|---|
| Line 245: | Line 245: | ||
| ===== Razer Core X eGPU ===== | ===== Razer Core X eGPU ===== | ||
| - | I chose Core X over Core X Chroma when I ordered in November 2021 because the price difference between both cases was huge (220€ vs 365€) with the only benefit of an added 4 USB 3.0 ports and a 1Gbps Ethernet port. Although having those ports directly on the thunderbolt bus would be great and works well in Windows and MacOS it isn't so in Linux (as of 2020) due to a few bugs in the integration of the USB controller used in the Core X Chroma. | + | //Updated procedure for Linux Mint 22 and eGPU running Nvidia GTX 1060 6GB// |
| - | Another argument in favor of not choosing the Core X Chroma is that I believe it is best (in Linux that is, with current state of development) to separate power and eGPU on the dedicated thunderbolt bus and use another USB 3.0 adapter for Ethernet and eventually a few added USB ports. Such adapters are worth a lot less than the 150€ price difference between Core X and Core X Chroma and should work better together, as some users have reported issues with networking and USB hubs while tunneling PCIe to take advantage of the eGPU. That being said, the Thunderbolt implementation reserves a 10Gb/s bandwith specifically for other devices than PCIe (i.e. network, USB, etc.) | + | ==== Regarding hot-plug ==== |
| - | [[https://y.tsutsumi.io/ | + | Thunderbolt (TB3/TB4) is explicitly designed for hot-plugging. |
| - | [[https://www.kernel.org/doc/html/ | + | It uses : |
| + | * Hot-plug–safe PCIe tunneling | ||
| + | * Overcurrent protection | ||
| + | * Digital handshaking before enabling high-power lanes | ||
| + | * Cable and device negotiation before link-up | ||
| + | * Mandatory protective circuitry required by Intel’s TB certification | ||
| + | |||
| + | You are supposed to plug and unplug TB devices while the system is powered — that’s how eGPUs, docks, displays, and drives are meant to work. | ||
| + | |||
| + | There is no scenario in which hot-plugging a functioning Thunderbolt cable damages the hardware. | ||
| + | |||
| + | === Plug-in sequence === | ||
| + | |||
| + | < | ||
| + | - Power on laptop normally | ||
| + | - Log into desktop | ||
| + | - Turn ON the eGPU enclosure | ||
| + | - Wait 2–3 seconds (GPU initializes) | ||
| + | - Plug in the Thunderbolt cable | ||
| + | - Wait for the OS to detect/authorize the eGPU | ||
| + | </code> | ||
| + | |||
| + | === Unplug sequence === | ||
| + | |||
| + | < | ||
| + | - Close any apps using the eGPU (optional but safer) | ||
| + | - Save your work | ||
| + | - Unplug the Thunderbolt cable | ||
| + | - Wait 2–3 seconds | ||
| + | - Power OFF the eGPU enclosure if desired | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== OLD ==== | ||
| + | Below are the older instructions, | ||
| + | === Introduction === | ||
| + | |||
| + | When it came to selecting an eGPU to use under Linux the Razer Core X seemed to be a great value for the money in fall 2021. | ||
| + | |||
| + | I chose the Core X over the Core X Chroma because the price difference was huge (220€ vs 365€) with the only benefit of an added 4 USB 3.0 ports, a 1Gbps Ethernet port and of course some LED lighting. Although having those ports directly on the thunderbolt | ||
| + | |||
| + | Although the Thunderbolt implementation reserves a 10Gb/s bandwith specifically for other devices than PCIe (i.e. network, USB, etc.) and the problem above might one day be solved by new patches in the Linux Kernel, there are plenty of USB 3.0 adapters/ | ||
| + | |||
| + | === Installing and Initializing === | ||
| <code bash> | <code bash> | ||
| $sudo apt install bolt thunderbolt-tools | $sudo apt install bolt thunderbolt-tools | ||
| </ | </ | ||
| + | <code bash> | ||
| + | $boltctl | ||
| + | </ | ||
| + | //This is the same as ' | ||
| + | <code bash> | ||
| + | $boltctl authorize xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx | ||
| + | </ | ||
| + | //Replace the last argument by the UUID of your device. Do this step only if the status is ' | ||
| + | <code bash> | ||
| + | $lspci | ||
| + | </ | ||
| + | //The eGPU should appear in a line starting with 'VGA compatible controller [...]// | ||
| + | |||
| + | Install appropriate drivers for the eGPU you are tunneling through Thunderbolt. | ||
| + | |||
| + | === Configuring X11 === | ||
| + | |||
| + | You need to write an '' | ||
| + | |||
| + | <code bash> | ||
| + | Section " | ||
| + | Load " | ||
| + | EndSection | ||
| + | |||
| + | Section " | ||
| + | Identifier " | ||
| + | Driver | ||
| + | BusID " | ||
| + | Option | ||
| + | Option | ||
| + | EndSection | ||
| + | </ | ||
| + | |||
| + | One of the drawbacks of eGPU usage in Linux is the lack of hotplug functionnality. The above '' | ||
| + | |||
| + | === GSwitch Project === | ||
| + | |||
| + | Which brings us to this simple tool developped to simplify the loading/ | ||
| + | |||
| + | Simply follow the instructions to install and setup (very easy and straightforward) and it will swap from external to internal gpu using the following commands : | ||
| + | |||
| + | <code bash> | ||
| + | $sudo gswitch egpu | ||
| + | $sudo gswitch internal | ||
| + | </ | ||
| + | |||
| + | Note that the thunderbolt device has to be in '' | ||
| + | |||
| + | |||
| + | === Useful Ressources === | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[http:// | ||