[Plugin] Nvidia-Driver


ich777

Recommended Posts

24 minutes ago, binhex said:

Evening @ich777 a quick heads up, i just upgraded to 6.9.2 (stable) and it looks like its causing some ui issues and problems with the preferred driver selection for your plugin, namely the versions available are not shown correctly and the preferred version i had selected was not honoured on reboot, thus a long reboot time and forced up to the latest version now available (465.19.01).

 

screenshot below:-

image.thumb.png.d923043292c50cdd730caa7359a09940.png

 

note the preferred version top right.

 

cheers!.

It will be because new kernel vers havent been created for new release yet in his repo.

Edited by SimonF
  • Like 1
Link to comment
6 hours ago, binhex said:

ui issues

This is just pretty normal, like @SimonF said, since I have to rebuild the packages.

 

The reason why it's displaying it like that is because I also have built in a fallback so that the latest driver is always downloaded from the LT servers (LT builds only the latest version) so the driver installation won't fail on boot and cause the Plugin to error out if my packages aren't built yet.

 

When the drivers are available in my repo then the drivers are display on the WebUI or better speaking if you wait for at least 6 or 8 hours (I try to minimize the time but something haven't prevented the automatic upload to my repo after building the packages) after a new release of Unraid the other versions of the driver should be be built already and your preferred version is installed on boot, hope this makes sense to you.

The UI relies completely on my repository otherwise this would be a complete mess... :D

 

The update process and build process will change with the next releases of Unraid and everything should be already available when you upgrade. :)

 

Try to go to the UI once more and you should see that now all versions are available.

 

6 hours ago, binhex said:

thus a long reboot time and forced up to the latest version now available (465.19.01)

This might be because the fallback kicked in.

 

EDIT:

grafik.thumb.png.095797e38069944ed08aab5c73ae77c6.png

Link to comment
4 hours ago, ich777 said:

This is just pretty normal, like @SimonF said, since I have to rebuild the packages.

 

Thanks for the reply!, so i see its fixed up which is great thanks!, however i got a couple more questions, i hope you don't mind.

 

So my understanding (and here is where i think i am wrong) is that the nvidia driver downloaded via this plugin is not tied to a specific kernel version, is this not correct?, if this IS correct then why not display all driver versions irrespective of the version of unraid running on the host? as long as the host is at least the supported version, as in 6.9.1 or greater then we could always display all the versions available right?.

 

The other question is more to do with exactly what this plugin does, on the face of it it simply downloads the nvidia driver from somewhere (your repo?) and places it in a specific folder on the flash drive, other than to do checks to see if a new versions is available on restart of the server, does it do anything else?.

  • Like 1
Link to comment
10 minutes ago, binhex said:

So my understanding (and here is where i think i am wrong) is that the nvidia driver downloaded via this plugin is not tied to a specific kernel version, is this not correct?

It is tied to the specific Kernel versions.

 

10 minutes ago, binhex said:

if this IS correct then why not display all driver versions irrespective of the version of unraid running on the host? as long as the host is at least the supported version, as in 6.9.1 or greater then we could always display all the versions available right?.

All the drivers that you see are built for the specific Kernel version that Unraid runs on.

 

10 minutes ago, binhex said:

The other question is more to do with exactly what this plugin does, on the face of it it simply downloads the nvidia driver from somewhere (your repo?) and places it in a specific folder on the flash drive, other than to do checks to see if a new versions is available on restart of the server, does it do anything else?

Exactly from somewhere is from here: Click (and if don't built it already and the Kernel version isn't found in the repo I added a fallback and then it is download from the LT servers itself because as said above LT builds always the latest version from the driver for the new Kernel version or better speaking Unraid release).

 

Exactly, the Plugin checks on boot if it finds a newer version of the drivers if 'latest' is selected or it checks if the selected version is already downloaded and matches the current Kernel version.

If that fails it will download the new preferred version, if that also fails (because I don't built the drivers that quick) it will check if a driver is available on the LT servers and download the latest one from there and finally installs the drivers and enable them.

 

Please note that this will change in the near future so that the version(s) will be already available when the new Unraid version is released and this is only a temporary solution for now.

Link to comment
21 minutes ago, ich777 said:

It is tied to the specific Kernel versions.

ahh ok that makes more sense then, so i guess when a new version of unraid appears and if the kernel version has changed (which is normally the case) then i guess it means you will need to re-compile all the nvidia drivers versions again, if so that could be a rather large task as the list of driver versions available grows.

 

im just thinking of the condition where a user needs a specific version of the driver for compatibility reasons with their gpu, then a new version of unraid comes out and that driver versions is no longer available for that newer kernel, is this a possible scenario?.

  • Like 1
Link to comment
20 minutes ago, binhex said:

then i guess it means you will need to re-compile all the nvidia drivers versions again, if so that could be a rather large task as the list of driver versions available grows.

Exactly that's what I do... :)

Yes, but I will only recompile the last 6 or so driver versions I think, in my automated build script (that doesn't uploaded the packages for whatever reason this time) are only the latest and the latest feature branch for now, but I will eventually extend that list so that I manually have to compile the other versions.

 

21 minutes ago, binhex said:

im just thinking of the condition where a user needs a specific version of the driver for compatibility reasons with their gpu, then a new version of unraid comes out and that driver versions is no longer available for that newer kernel, is this a possible scenario?.

This is eventually a possible scenario but this is very unlikely that someone ever will need this because if I build the last 6 driver versions there might be at least 1 or 2 stable drivers within this 6 versions.

They don't change the compatibility list for the production drivers until now (know on wood) and I hope so that this doesn't change but even if they change it I can recompile that last working driver for every upcoming version of Unraid and include that in the packages repo.

Link to comment
4 minutes ago, ich777 said:

Exactly that's what I do... :)

Yes, but I will only recompile the last 6 or so driver versions I think, in my automated build script (that doesn't uploaded the packages for whatever reason this time) are only the latest and the latest feature branch for now, but I will eventually extend that list so that I manually have to compile the other versions.

 

This is eventually a possible scenario but this is very unlikely that someone ever will need this because if I build the last 6 driver versions there might be at least 1 or 2 stable drivers within this 6 versions.

They don't change the compatibility list for the production drivers until now (know on wood) and I hope so that this doesn't change but even if they change it I can recompile that last working driver for every upcoming version of Unraid and include that in the packages repo.

ok!, last question :-), how difficult is it to compile the nvidia driver?, is it fairly trivial to do, iim just curious of the procedure to do this, and im afraid i am a bit of a control freak and hate to rely on anybody, especially if it just happens to be a fairly key part of my server :-), feel free to pm me the details if you get the chance, as its probably out of scope for this thread and i feel like i have taken up enough space on here already :-).

Link to comment
2 minutes ago, binhex said:

ok!, last question :-), how difficult is it to compile the nvidia driver?, is it fairly trivial to do, iim just curious of the procedure to do this, and im afraid i am a bit of a control freak and hate to rely on anybody, especially if it just happens to be a fairly key part of my server :-), feel free to pm me the details if you get the chance, as its probably out of scope for this thread and i feel like i have taken up enough space on here already :-).

Not really one thing to keep in mind that this package at the time of writing consist of the 3 necessary container tools and the driver itself.

You need to have the Kernel sources (so to speak compile the Kernel for Unraid), the Nvidia driver and and at last the container tools so the driver itself can interact with the Container daemon itself and vice versa (I build everything in my Unraid-Kernel-Helper Docker with a custom script that uploads the packages to Github but that involves two reboots since you need to be, or at least, you should be on that version you want to build for so to speak 2 reboots and then the Nvidia driver is working again).

 

I completely understand that you don't want to rely on one person btw. LT also has my build script for everything (in case something happens to me) and also they have their own for the Nvidia driver.

I will release the whole build script in the next few months after we sorted out how the drivers are built by LT itself so that they are available when a new Unraid version is released.

 

I'm not 100% sure where but somewhere on my Github (eventually in the Plugin repo or in the releases repo), hope that is okay for you to wait a little longer.

Link to comment
8 minutes ago, ich777 said:

I completely understand that you don't want to rely on one person btw. LT also has my build script for everything (in case something happens to me) and also they have their own for the Nvidia driver.

I will release the whole build script in the next few months after we sorted out how the drivers are built by LT itself so that they are available when a new Unraid version is released.

 

I'm not 100% sure where but somewhere on my Github (eventually in the Plugin repo or in the releases repo), hope that is okay for you to wait a little longer.

awesome!, and thanks for your time taken to explain it all to me, its appreciated.

  • Like 1
Link to comment
1 hour ago, kri kri said:

Sorry if this is a dumb question, but how do we know if its "safe" to update our unraid version if we use this plugin?

It should be always safe to upgrade.

 

If I haven't built the packages yet it will always grab the latest driver that where built by LT itself (added a fallback after the release of 6.9.1) regardless what version is set on the plugin page, the only thing is that the plugin page looks a little weird until I built the packages but that does not affect the function of the driver itself.

 

Hope that answers your question.

  • Thanks 1
Link to comment

So i noticed this in my logs after the script that executes "nvidia-smi -pm 1" to enable Persistence mode to force the P8 power state.

 

"kernel: NVRM: Persistence mode is deprecated and will be removed in a future release. Please use nvidia-persistenced instead." 

 

So looked into it, so instead of using the nvidia-smi command to perform the job - now use the command nvidia-persistenced.

 

Docs for it can be found here: https://download.nvidia.com/XFree86/Linux-x86_64/396.51/README/nvidia-persistenced.html

 

Using just the nvidia-persistenced command by itself with no argument should be enough for most setups.

Edited by bytchslappa
  • Like 1
  • Thanks 2
Link to comment

How do you deal with a GPU that is used for a gaming VM? Since GPU is bind via VFIO, I don't see it with the nvidia-smi command and can't see what power state it is in when the VM is turned off. I have a relatively high power consumption and would like to save power in all places if possible. Are there any tips? 

Link to comment
22 minutes ago, Skylinar said:

How do you deal with a GPU that is used for a gaming VM? Since GPU is bind via VFIO, I don't see it with the nvidia-smi command and can't see what power state it is in when the VM is turned off. I have a relatively high power consumption and would like to save power in all places if possible. Are there any tips? 

 

  • Thanks 1
Link to comment
On 4/11/2021 at 4:04 PM, Squid said:

 

Thanks, but I can't confirm that. I've got a Smart Plug for the power socket and can see in idle consumption of my unraid system (incl. router and small other stuff) of about 204 watts and when the Windows 10 Gaming VM runs (in idle) its about 230 watts - even when it's set to energy saving in windows.

Link to comment
1 hour ago, Skylinar said:

204 watts and when the Windows 10 Gaming VM runs (in idle) its about 230 watts - even when it's set to energy saving in windows.

This has nothing to do with the Nvidia-Driver plugin...

 

You have to eventually turn on and off persistenced like described in this post to get the power consumption down when the VM is not running.:

 

Link to comment
On 11/15/2020 at 8:22 PM, ich777 said:

IMPORTANT:

  • If you don't plan or want to use acceleration within Docker containers through your Nvidia graphics card then don't install this plugin!
  • Please be sure to never use one card for a VM and also in docker containers (your server will hard lock if it's used in a VM and then something want's to use it in a Container).
  • You can use one card for more than one Container at the same time - depending on the capabilities of your card.

Hi @all,

first of all i would have to say thanks a lot for the plugin!

 

In the quote above i found principally the answer to my question... 

Now i have a second one... in the old Nvidia Plugin by Linuxserver.io it was possible (like in the tut video of spaceinvader) to use one and the same nvidia gpu for the dockers in multiplay way and if it actually not in transcoding it was possible to use the same gpu in a win vm... in that case emby done an software transcode till the gpu will be free from the win vm...

 

What do you think, is it possible to implement this feature back again?

 

This will be extremely very nice :) 

Link to comment
1 minute ago, WowaDriver said:

What do you think, is it possible to implement this feature back again?

This is not a limitation of the Plugin, this is a limitation of the driver.

It is or at least was possible when I tested this and created this Plugin but I would never recommend it.

If it doesn't work now then something has changed how the driver works and nothing I can do about it.

 

Keep in mind if you stub the drivers that the Plugin can't use the card anyways.

Link to comment

Thanks for the explanation. You do a great support and great job! Weiter so!

 

Ok now i've got an other error. After using the gpu in the emby docker i delete the entries in the the emby docker container to use the gpu with a win10 vm. 

 

The problem now is that cant start the vm when selecting the gpu... tried a restart but it didnt help...

 

The IMMOU Group of my GTX1660 is: 01:00.0 and from gpu sound card 01:00:1 

 

Error code:

 

Execution error

internal error: qemu unexpectedly closed the monitor: 2021-04-14T12:16:32.430601Z qemu-system-x86_64: -device vfio-pci,host=0000:01:00.0,id=hostdev0,bus=pci.0,addr=0x5: vfio 0000:01:00.0: group 1 is not viable Please ensure all devices within the iommu_group are bound to their vfio bus driver.

 

Can you help me?

Edited by WowaDriver
Link to comment
1 hour ago, WowaDriver said:

Execution error

internal error: qemu unexpectedly closed the monitor: 2021-04-14T12:16:32.430601Z qemu-system-x86_64: -device vfio-pci,host=0000:01:00.0,id=hostdev0,bus=pci.0,addr=0x5: vfio 0000:01:00.0: group 1 is not viable Please ensure all devices within the iommu_group are bound to their vfio bus driver.

Is the card stubbed or better speaking is the card bound to VFIO?

Can you post your Diagnostics here (Tools -> Diagnostics -> Download -> drop the downloaded zip file here in the text box).

Link to comment
28 minutes ago, ich777 said:

Is the card stubbed or better speaking is the card bound to VFIO?

Can you post your Diagnostics here (Tools -> Diagnostics -> Download -> drop the downloaded zip file here in the text box).

 

I dont know why but when i press the download button to get the diagnostics i only get this screen and nothing other happens...

1.PNG.d8e5a4ce33542ac435e9ce73b24d59c6.PNG

 

It do not download the files... cant say what is the reason for...

 

But i can give you a screen of my VIFO-PCI-CONFIG:

2.thumb.PNG.a47fe811206703bf8e0b65bae181b890.PNG

 

So the answer is no, i only select the gpu in the win10 vm and made the entries like on the first post of this thread for the emby docker.

3.thumb.PNG.cb0760301ba14b62b35aec363bd31182.PNG

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.