How To: Fix Nvidia GPU Support on TrueNAS 25.10




Problem

TrueNAS version 25.10 marked the move from the legacy Nvidia GPU drivers to the open Nvidia GPU drivers. The upside of the move is that TrueNAS now supports Blackwell (RTX 5000 series and RTX PRO) GPUs. 

The downside of this move is the dropped support for:
- Maxwell
- Pascal
- Volta

This encompasses:
- GTX 700 series
- GTX 900 series
- GTX 1000 series
- Quadro M series
- Quadro P series
- Tesla M series
- Tesla P series

I have a Tesla P40 in my TrueNAS server, and immediately upon reaching this newer version, my "TrueNAS Apps" ceased to launch at all. This meant my Jellyfin, Immich, Ollama, and Open WebUI servers stopped functioning.

The way I fixed it was through the following process.

Solution:

I replaced the Nvidia.raw file on the TrueNAS filesystem. The steps to do this was:

  1. Navigate to TrueNAS' shell to enter commands. This can be found by clicking on the gear icon on the left of your screen, and then choosing "Shell". 



  2. The shell will then appear, a black screen with white text. Enter this command first. It unlinks the systemd-systext image of TrueNAS, which allows modification to the underlying OS.

    sudo systemd-sysext unmerge 

  3. Next, enter this command to allow access to /usr/ directory, which is where the file we need to overwrite is located.

    zfs set readonly=off "$(zfs list -H -o name /usr)"

  4. Now that the filesystem is unlocked, we need to grab the Nvidia.raw file that we're replacing the one on TrueNAS with. The method I used was navigating to zzzhouuu's Github, where he has published nvidia.raw files for various TrueNAS versions. You just need the nvidia.raw file from within one of the numbered version folders. If you're using TrueNAS 25.10.1, here's a direct link to download the correct file.

    Choose your TrueNAS version. In the future, there may be more versions, so choose what makes sense for you.

    Click this nvidia.raw file to enter the file viewer.

    Click "Raw" to download correctly.

  5. Now that we have the file, we need to move it onto the TrueNAS server. I chose to use SSH to achieve this. We can turn SSH on temporarily by doing the following.

    Click the gear icon on the side menu, then click "Services".

    Click the "play button" to turn on SSH. 

  6. Download WinSCP on your computer. This is a tool to allow easy connection to the filesystem on TrueNAS. You must be on the same network with your TrueNAS server.

    Put in your TrueNAS server's IP address, username, and password. Then press "Login". All other settings are fine. You will then confirm that you do want to connect in a new window.

  7. Navigate on your computer's side of the screen to the download location of nvidia.raw, and on the server's side, drag nvidia.raw over and give it a second to move. Take note of the folder location on the server side. You'll need to navigate here later.

  8. You can then close the WinSCP connection and remove it from your PC if you'd like. Make sure you also turn off SSH by pressing the "Stop" button back where you originally turned it on.

  9. Navigate back to your TrueNAS' shell, and navigate to the folder you moved the nvidia.raw file to.

    If you enter the following command, you can see if it's in the folder you're already in, which will usually be the case. After running it, you will probably see it say "nvidia.raw".

    ls

  10. Run this command to replace the existing nvidia.raw file with the modified version.

    cp nvidia.raw /usr/share/truenas/sysext-extensions/nvidia.raw

  11. After this command completes successfully, you need to return the file system to read-only state to protect the internals of your OS.

    zfs set readonly=on "$(zfs list -H -o name /usr)"

  12. All that's left now is to re-merge the part of the OS that we unmerged before now that it's been corrected.

    systemd-sysext merge

  13. At this point, you're not going to notice the difference until you restart docker. However, I just restarted the server entirely, to ensure there were no problems.

After restart, you'll be able to go into your "Apps", and then click "Edit" for each specific app. You'll notice there's a new option to use your GPU that was not previously there. Click this for the ones that you'd like to enable it for.

Click the server you'd like to add GPU acceleration to, and then click the "Edit" button.


This option to enable the Nvidia GPU is at the bottom of the "Edit" page for each individual app.

Conclusion

This concludes the instructions on how to get your Nvidia (legacy) GPU functioning on TrueNAS. I anticipate this may need to be repeated each time you update your TrueNAS server, so I recommend not upgrading the server OS unless you're sure you can retain GPU functionality. If eventually this doesn't work anymore and you're not exactly tied to TrueNAS, you can also switch to Proxmox in order to easily utilize GPU resources for your servers.

Thank you for reading and I hope this was helpful. Sometimes pictures and more explicit instructions are all you need to knock something stressful like this off your "to-do" list.

Thanks as well to zzhouuu on Github and TrueNAS Forums for creating the driver patch and writing the initial instructions.

Comments