NVIDIA Kernel Module Change in TrueNAS 25.10 - What This Means for You

Did we? This is the first I’ve heard TrueNAS is ending support for these cards, and we’ve been given effectively 1 month notice… If I had known sooner, I wouldn’t have purchased my Tesla P4 earlier this year.

It’s an nVidia driver issue in that TrueNAS is dropping the proprietary driver in favor of the open driver. The proprietary driver still works just fine.

I’ve had my TrueNAS box running for less than a year and this is the second OS upgrade that will require a non-trivial migration of some description.

2 Likes

Then you must be not very active in this forum, it’s been known since at least 2 Months prior to this post.

1 Like

Can you share a link to the best place to track these types of changes? I generally just watch for the release notes, but if there’s some kind of forward looking roadmap, that would be helpful.

EDIT: There’s nothing mentioned on the previous release (25.04) page about EOL plans for nVidia GPUs:

I think this “you should have known” line is a little unfair, the information hasn’t been made available.

5 Likes

There is nothing planned about it. Its an unfortunate consequence of progress.

There is a plan to support the latest high-quality Nvidia driver so that new Nvidia hardware is supported. We need a driver that works with the Linux LTS kernel.

Nvidia makes its own plans about when it drops support for older hardware. We discover what is dropped and report it. We are not part of the planning process.

Users can remain on 25.04.2.x… its very stable and there is no mandate to update if there is a hardware compatibility issue.

We appreciate the efforts to find a good workaround.

6 Likes

I’ve decided not to go down that route, as I can’t assume that TrueNAS won’t close the door in the next release. I’ll probably switch to virtualised TrueNAS on my host.

EDIT: Not that I expect this to make any difference, but I would add, this plus the changes around VMs and deprecation of the API are enough to push me away from TrueNAS in any kind of professional/enterprise context. I wouldn’t risk my professional reputation on an OS that appears on the face of it to be very unstable from release to release.

Have you seen issues already?

The new API is significantly better and is properly versioned so that there are no future deprecations. The irony is that the desire for a demonstrably stable API causes a change to the previous API…

The funny part is that, a few months ago, I moved my 1080 card from a secondary machine to my TrueNAS server, and put a 5060 into that secondary machine. The plan is to move the 5060 to my TrueNAS Scale server when 25.10 comes out, and put my 1080 card back into my secondary machine. Then, wait until a sale comes up for a 5060Ti.

Make your life easier: Get an Arc 310 for your NAS while these are still available for cheap. :roll_eyes:

For all the buzz about Linux bringing more drivers for everything, TrueNAS remains an appliance OS: Stick to the relatively narrow list of (older) hardware that is known to be well supported and everything will be fine. Otherwise…

1 Like

Woot! had a factory reconditioned MSI GeForce RTX 4060 Ti VENTUS 3X 8G OC for $350+tax today, so I ordered that. It should be more than adequate for the primary use which is video transcoding within Plex.

Anyone know of a case to mount an old video card?

something like this?

2 Likes

Sung to the tune of the opening line in Dire Strait’s Money for Nothing:

I wan’t my ten-sixtyyyyy

1 Like

Perhaps start a new thread and capture experiences with the old and new GPUs…

Is it working or are there issues?

Everything works flawlessly—transcoding in Plex and Jellyfin, Immich’s machine-learning features (transcoding, smart search, face recognition), and Beszel’s monitoring (power draw, usage, VRAM) all run without a hitch.

Does it also work with both new and older GPUs?

I haven’t tested the new graphics card yet; I don’t have a spare 50-series card on hand, my NAS only has a Tesla P4.

A separate thread would be worthwhile so others can test and report. Just add the link here.

I posted a thread at nvidia-compatible-driver-test-for-truenas-25-10-goldeye

5 Likes

In a case of “whoops”, this video card was an inch longer than the available space of my TrueNAS case due to the hard drives. However, the card does fit into the secondary computer which I use for video encoding, and the 5060 card is now on standby pending the 25.10 upgrade of TrueNAS in late October.

1 Like

Welp, i upgraded from 25.04 to 25.10, thinking it will be fine.
Looks like i run into the GPU Issue with my P2000 not being supported.
So i said lets roll back and i did that from the Boot Option + Reboot, and it says im back at 25.04.

But trying to add the checkmark back at my Jellyfin App to use the P2000, it fails:

 Error: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/middlewared/job.py", line 515, in run
    await self.future
  File "/usr/lib/python3/dist-packages/middlewared/job.py", line 562, in __run_body
    rv = await self.middleware.run_in_thread(self.method, *args)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 627, in run_in_thread
    return await self.run_in_executor(io_thread_pool_executor, method, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 624, in run_in_executor
    return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/service/crud_service.py", line 294, in nf
    rv = func(*args, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/api/base/decorator.py", line 101, in wrapped
    result = func(*args)
             ^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py", line 229, in do_update
    app = self.update_internal(job, app, data, trigger_compose=app['state'] != 'STOPPED')
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py", line 259, in update_internal
    update_app_config(app_name, app['version'], new_values, custom_app=app['custom_app'])
  File "/usr/lib/python3/dist-packages/middlewared/plugins/apps/ix_apps/lifecycle.py", line 60, in update_app_config
    render_compose_templates(
  File "/usr/lib/python3/dist-packages/middlewared/plugins/apps/ix_apps/lifecycle.py", line 51, in render_compose_templates
    raise CallError(f'Failed to render compose templates: {cp.stderr}')
middlewared.service_exception.CallError: [EFAULT] Failed to render compose templates: Traceback (most recent call last):
  File "/usr/bin/apps_render_app", line 33, in <module>
    sys.exit(load_entry_point('apps-validation==0.1', 'console_scripts', 'apps_render_app')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py", line 48, in main
    render_templates_from_path(args.path, args.values)
  File "/usr/lib/python3/dist-packages/catalog_templating/scripts/render_compose.py", line 19, in render_templates_from_path
    rendered_data = render_templates(
                    ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/catalog_templating/render.py", line 31, in render_templates
    rendered_templates[i.name] = env.get_template(i.name).render(
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 1301, in render
    self.environment.handle_exception()
  File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 936, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "/mnt/.ix-apps/app_configs/jellyfin/versions/1.2.13/templates/docker-compose.yaml", line 3, in top-level template code
    {% set c1 = tpl.add_container(values.consts.jellyfin_container_name, "image") %}
    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/.ix-apps/app_configs/jellyfin/versions/1.2.13/templates/library/base_v2_1_57/render.py", line 63, in add_container
    container = Container(self, name, image)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/.ix-apps/app_configs/jellyfin/versions/1.2.13/templates/library/base_v2_1_57/container.py", line 102, in __init__
    self.deploy: Deploy = Deploy(self._render_instance)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/.ix-apps/app_configs/jellyfin/versions/1.2.13/templates/library/base_v2_1_57/deploy.py", line 15, in __init__
    self.resources: Resources = Resources(self._render_instance)
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/.ix-apps/app_configs/jellyfin/versions/1.2.13/templates/library/base_v2_1_57/resources.py", line 24, in __init__
    self._auto_add_gpus_from_values()
  File "/mnt/.ix-apps/app_configs/jellyfin/versions/1.2.13/templates/library/base_v2_1_57/resources.py", line 55, in _auto_add_gpus_from_values
    raise RenderError(f"Expected [uuid] to be set for GPU in slot [{pci}] in [nvidia_gpu_selection]")
base_v2_1_57.error.RenderError: Expected [uuid] to be set for GPU in slot [0000:01:00.0] in [nvidia_gpu_selection]

Anyone knows if i need to do something else to make a clean revert? Am i missing something?
Thanks
Furkan

You’re propably getting hit with this

That post should also have the solution to your problem

1 Like