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.
- Press DEL repeatedly during boot to enter UEFI setup screen (Or use Windows recovery restart to enter UEFI)
- Press F7 for advanced mode
- Security → Secure Boot Control → Disable
- 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:
- 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.