[Ubuntu][eGPU] Enable eGPU for Asus Flow x13

Ruka
4 min readApr 4, 2023

--

Here is the step that could be reproduce to set Asus flow x13 to use eGPU ( RTX 3080 16G) with ubuntu installed

Step 0: Check your GPU status

Fisrt, plug your egpu and lock it with the button above.

To avoid all kinds of non sence, I highly suggest you to first enable the eGPU in Windows system with XG mobile first. After the light on the egpu turn red, switch to Ubuntu and start the progress.

In any step following, you can check the status of your GPU by the command

lspci | grep VGA

nvidia-smi

If the lspci | grep VGA is able to get the NVIDIA GPU and nvidia-smi is printing the infos, then you are now done the installation. If not, follow to steps to install.

N

Step 1: Disable Secure Boot:

This step allows you to find your eGPU or else you won’t find the GPU device in the following steps even if you plugin it and shows red light on the plug. To do this, enter the bios (UEFI) of your flow x13.

  1. Press DEL repeatedly during boot to enter UEFI setup screen (Or use Windows recovery restart to enter UEFI)
  2. Press F7 for advanced mode
  3. Security → Secure Boot Control → Disable
  4. Save and exit

ref: https://asus-linux.org/wiki/fedora-guide/

Step 2: Install supergfxctl

go to this repo: https://gitlab.com/asus-linux/supergfxctl

this is the cli tool from asus to allow user to switch eGPU, use the command below in terminal to install it

sudo apt update && sudo apt install curl git build-essential
git clone https://gitlab.com/asus-linux/supergfxctl.git
cd supergfxctl
make && sudo make install

then start the service and add your user to the user group

sudo systemctl enable supergfxd.service --now
sudo usermod -a -G users $USER

now, try to use the command from supergfxctl, this should run without error.

sudo supergfxctl --mode integrated

if you are not able to use the command, install asusctl also.

https://gitlab.com/asus-linux/asusctl

I’m not sure if this is also needed since I tried a lot of solutions to make this works. So there might be some dependency for this tool and the supergfxctl.

To install asusctl, run the following command:

git clone https://gitlab.com/asus-linux/asusctl.git
cd asusctl
sudo apt install libgtk-3-dev libpango1.0-dev libgdk-pixbuf-2.0-dev libglib2.0-dev cmake libclang-dev libudev-dev libayatana-appindicator3-1
sudo curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo source "$HOME/.cargo/env"
make
sudo make install

then enable the daemon asusd

sudo systemctl daemon-reload && systemctl restart asusd

reboot if needed

sudo reboot

now the command sudo supergfxctl --mode integrated should work.

sudo systemctl enable supergfxd.service --now
sudo usermod -a -G users $USER
sudo supergfxctl --mode integrated

use the command sudo supergfxctl --mode hybrid to switch back to default.

Step 3: Install Nvidia driver with CLI

run the command

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt upgrade
sudo apt install nvidia-driver-520

you shall go throw a process like this

https://youtu.be/FAknvXs4M1w?t=116

Which i found from youtube, here’s the important part that you should do:

  1. set password for secure boot

just set something, you’ll use this later

2. run this command in terminal

sudo prime-select nvidia
sudo reboot

3. select the Enroll MDK

select Enroll MDK -> continue -> type pasword you just set

Step 4: Done

you shall see the same result as I did in the image. use the command to check the result

lspci | grep VGA

nvidia-smi

you are now able to trigger the egpu with the command

sudo systemctl enable supergfxd.service --now
sudo usermod -a -G users $USER
sudo supergfxctl --mode egpu

then after logout, you are now using egpu in the system. if you see the black screen here, reboot your PC and make sure you have the step 1 done.

you could also remove the eGPU by the command

sudo systemctl enable supergfxd.service --now
sudo usermod -a -G users $USER
sudo supergfxctl --mode integrated

Then after logout and login, you could turn off the lock on the eGPU, it shall show a white light which you can now unplug it.

Ref:

--

--