|
| 1 | +--- |
| 2 | +description: >- |
| 3 | + A guide on running Steam games with an Nvidia GPU on ParrotOS 6.4. |
| 4 | +title: "Running Steam games with an Nvidia GPU on ParrotOS 6.4" |
| 5 | +categories: [Walkthrough, Guide, Tutorial, ParrotOS, Gaming, Linux, Nvidia] |
| 6 | +tags: [walkthrough, guide, tutorial, parrotos, gaming, steam, linux, nvidia, gpu, discrete, dedicated] |
| 7 | +date: 2026-01-01 20:15 -0500 |
| 8 | +--- |
| 9 | +## Introduction |
| 10 | +This guide documents the steps that I took to install and run Steam games on my computer that has an integrated graphics card and a dedicated Nvidia graphics card. |
| 11 | + |
| 12 | +Historically, the easiest ways to install Steam were to use the official .deb package from Steam's website or use apt, but ParrotOS no longer supports 32-bit binaries which the traditional Steam installer requires. I installed and ran Steam using flatpak. |
| 13 | + |
| 14 | +While the steps that I took worked for me, your mileage may vary and I recommend that you properly back up your data before making any changes to your system! |
| 15 | + |
| 16 | +The ParrotOS discord server has some very knowledgeable people in there, and I recommend posting there if you have questions or run into a problem that you are stuck on. |
| 17 | +## Installing Nvidia drivers |
| 18 | +Before installing Steam, I installed drivers for my graphics card. I'm not entirely sure if it was necessary for me to use Nvidia's proprietary drivers instead of the open-source nouveau drivers, but I will explain why I did this later on. |
| 19 | + |
| 20 | +Create a config file to block the open-source nouveau driver from running |
| 21 | +```shell |
| 22 | +sudo bash -c 'echo -e -n "blacklist nouveau\noptions nouveau modeset=0\nalias nouveau off" > /etc/modprobe.d/blacklist-nouveau.conf' |
| 23 | +``` |
| 24 | + |
| 25 | +Check for apt repository updates and install the proprietary Nvidia drivers |
| 26 | +```shell |
| 27 | +sudo apt update && sudo apt install nvidia-driver |
| 28 | +``` |
| 29 | + |
| 30 | +Reboot your machine |
| 31 | + |
| 32 | +Display graphics card information and validate that the proprietary Nvidia drivers are in use |
| 33 | +```shell |
| 34 | +inxi -G |
| 35 | +``` |
| 36 | +There should be a string that says "driver: nvidia" rather than "driver: nouveau" |
| 37 | +Make note of the version number that is specified after "v: " as this will be needed later |
| 38 | + |
| 39 | +If you would like to display additional information about your GPU and that applications that are using it, install and run the Nvidia System Management Interface |
| 40 | +```shell |
| 41 | +sudo apt install nvidia-smi |
| 42 | +watch nvidia-smi |
| 43 | +``` |
| 44 | + |
| 45 | +## Geting GPU environment variables & switching between GPUs for applications |
| 46 | +switcheroo-control is a tool that can be used to list GPU-specific environment variables that can be set when running an application. It can also be used to execute a program using a specific GPU, however I was not able to get this working with flatpak and did not spend a lot of time troubleshooting this since using environment variables worked for me. |
| 47 | + |
| 48 | +Install switcheroo-control |
| 49 | +```shell |
| 50 | +sudo apt install switcheroo-control |
| 51 | +``` |
| 52 | + |
| 53 | +List available GPUs and make a note of the environment variables listed for the Nvidia GPU |
| 54 | +```shell |
| 55 | +switcherooctl --list |
| 56 | +``` |
| 57 | + |
| 58 | +In my case, the environment variables were |
| 59 | +``` |
| 60 | +__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only |
| 61 | +``` |
| 62 | + |
| 63 | +## Installing Steam |
| 64 | +Install flatpak |
| 65 | +```shell |
| 66 | +sudo apt install flatpak |
| 67 | +``` |
| 68 | + |
| 69 | +Install the flathub repository (this is where Steam and the Nvidia flatpak packages will be pulled from) |
| 70 | +```shell |
| 71 | +sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo |
| 72 | +``` |
| 73 | + |
| 74 | +Install Steam |
| 75 | +```shell |
| 76 | +flatpak install flathub com.valvesoftware.Steam |
| 77 | +``` |
| 78 | + |
| 79 | +The Steam flatpak installer should prompt to install the necessary flatpak packages, including the Nvidia flatpaks. |
| 80 | + |
| 81 | +Confirm if the Nvidia flatpaks are installed |
| 82 | +```shell |
| 83 | +flatpak list --columns=application:f | grep org.freedesktop.Platform.GL.nvidia |
| 84 | +flatpak list --columns=application:f | grep org.freedesktop.Platform.GL32.nvidia |
| 85 | +``` |
| 86 | +Output returned for both commands would indicate that the Nvidia flatpaks are installed. |
| 87 | + |
| 88 | +If no packages are returned in either of the above command outputs, this is where it comes in handy to know the Nvidia driver version that is installed on your system. |
| 89 | +For example, if you have driver version 535.247.01 installed, then you would want to install these flatpak packages: |
| 90 | +```shell |
| 91 | +flatpak install flathub org.freedesktop.Platform.GL.nvidia-535-247-01 |
| 92 | +flatpak install flathub org.freedesktop.Platform.GL32.nvidia-535-247-01 |
| 93 | +``` |
| 94 | +The format of the Nvidia package naming is `org.freedesktop.Platform.GL.nvidia-` with the version appended, but the periods are replaced with hyphens |
| 95 | + |
| 96 | +## Running Steam |
| 97 | +There are at least a couple different ways to run Steam; each are valid and it really comes down to a matter of preference on which one you use (I personally use method 2). |
| 98 | +### Method 1: Setting environment variables at program execution |
| 99 | +This will temporarily set the GPU environment variables when running the flatpak Steam process: |
| 100 | +```shell |
| 101 | +__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only flatpak run com.valvesoftware.Steam |
| 102 | +``` |
| 103 | +**Note:** The environment variables that you need to use may be different. Refer to the earlier ```switcherooctl --list``` command. |
| 104 | + |
| 105 | +### Method 2: Setting environment variables in flatpak for the Steam package |
| 106 | +This will permanently configure the environment variables that need to be set when running Steam. Each environment variable is set using the ```--env``` parameter. |
| 107 | +```shell |
| 108 | +sudo flatpak override --env="__GLX_VENDOR_LIBRARY_NAME=nvidia" --env="__NV_PRIME_RENDER_OFFLOAD=1" --env="__VK_LAYER_NV_optimus=NVIDIA_only" com.valvesoftware.Steam |
| 109 | +``` |
| 110 | +**Note:** The environment variables that you need to use may be different. Refer to the earlier ```switcherooctl --list``` command. |
| 111 | + |
| 112 | +Verify that the environment variables have been set |
| 113 | +```shell |
| 114 | +flatpak override --show com.valvesoftware.Steam |
| 115 | +``` |
| 116 | + |
| 117 | +Run Steam |
| 118 | +```shell |
| 119 | +flatpak run com.valvesoftware.Steam |
| 120 | +``` |
| 121 | + |
| 122 | +To remove the environment variables |
| 123 | +```shell |
| 124 | +sudo flatpak override --reset com.valvesoftware.Steam |
| 125 | +``` |
| 126 | + |
| 127 | +## Creating desktop shorcuts |
| 128 | +If you would like to create a desktop shortcut to run Steam, here are some examples. The important part is the `Exec` line which contains the command to run. |
| 129 | + |
| 130 | +### Method 1 |
| 131 | +If you used method 1 in the Running Steam section above, use this to create a desktop shortcut |
| 132 | +```shell |
| 133 | +cat > ~/Desktop/Steam.desktop << EOF |
| 134 | +#!/usr/bin/env xdg-open |
| 135 | +[Desktop Entry] |
| 136 | +Version=1.0 |
| 137 | +Type=Application |
| 138 | +Terminal=false |
| 139 | +Name[en_US]=Steam |
| 140 | +Exec=env __GLX_VENDOR_LIBRARY_NAME=nvidia env __NV_PRIME_RENDER_OFFLOAD=1 env __VK_LAYER_NV_optimus=NVIDIA_only flatpak run com.valvesoftware.Steam |
| 141 | +Name=Steam |
| 142 | +EOF |
| 143 | +``` |
| 144 | + |
| 145 | +### Method 2 |
| 146 | +If you used method 2 in the Running Steam section above, use this to create a desktop shortcut |
| 147 | +```shell |
| 148 | +cat > ~/Desktop/Steam.desktop << EOF |
| 149 | +#!/usr/bin/env xdg-open |
| 150 | +[Desktop Entry] |
| 151 | +Version=1.0 |
| 152 | +Type=Application |
| 153 | +Terminal=false |
| 154 | +Name[en_US]=Steam |
| 155 | +Exec=flatpak run com.valvesoftware.Steam |
| 156 | +Name=Steam |
| 157 | +EOF |
| 158 | +``` |
| 159 | + |
| 160 | +## Running Steam games |
| 161 | +I did not experience any issues when attempting to download and install Steam games, however, when attempting to run them, I found that the Proton version used was crucial. |
| 162 | +I had to use Proton version 9 or version 10 to run my games, otherwise they would error out at runtime. |
| 163 | + |
| 164 | +To change the Proton version used for all Steam games: |
| 165 | +1. Click on the Steam menu in the top-left of your Steam window |
| 166 | +2. Choose Settings |
| 167 | +3. Go to the Compatibility tab |
| 168 | +4. Set the desired Proton version in the `Default compatibility list` drop-down menu |
| 169 | + |
| 170 | +To change the Proton version used for a specific game: |
| 171 | +1. Go to your Steam library |
| 172 | +2. Right-click on the game and click on Properties in the menu that appears |
| 173 | +3. Go to the Compatibility tab |
| 174 | +4. Check the `Force the use of a specific Steam Play compatibility tool` checkbox |
| 175 | +5. Set the desired Proton version in the drop-down menu |
| 176 | + |
| 177 | +## References |
| 178 | +[https://www.parrotsec.org/docs/configuration/nvidia-drivers/](https://www.parrotsec.org/docs/configuration/nvidia-drivers/) |
| 179 | +[ParrotOS Discord](https://discord.gg/j7QTaCzAsm) |
| 180 | +[https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/optimus-laptops-and-multi-gpu-desktop-systems.html](https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/optimus-laptops-and-multi-gpu-desktop-systems.html) |
| 181 | +[https://docs.flatpak.org/en/latest/](https://docs.flatpak.org/en/latest/) |
0 commit comments