The downside of this move is the dropped support for:
The way I fixed it was through the following process.
- 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".
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
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)"
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. 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. 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. 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.
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.
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
Run this command to replace the existing nvidia.raw file with the modified version.
cp nvidia.raw /usr/share/truenas/sysext-extensions/nvidia.raw
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)"
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
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.
| This option to enable the Nvidia GPU is at the bottom of the "Edit" page for each individual app. |
Conclusion

Comments
Post a Comment