Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Nvidia Grafikkarte wird in Docker nicht richtig erkannt. obwohl nvidia-smi richtig ausgibt

Featured Replies

Hallo Ich habe einen alten Tower ausgegraben auf dem ich Unraid istalliert habe um auf diesem ein paar Docker Container laufen lassen wollte. 

Leider bin ich dabei auf ein Problem gestoßen. Ich kann die Grafikkarte nicht in Docker nutzen. 

 

Eigentlich ist das ja total einfach und auf meinem anderen Server funktioniert das auch wunderbar. Aber auf dem neuen habe ich irgendwas vergessen einzurichten. oder er ist einfach zu alt für so ein vorhaben. 

 

mein erstes problem ist das ich IOMMU nicht aktiv bekomme. ich finde die Einstellung im Bios nicht. Aber eigentlich ist das ja nur relevant wenn ich Hardware in eine VM durchreichen möchte. ODER??? 

 

So habe ich den server eingerichtet: 

 

1. UNRAID installiert, CA-Plugin istaliert,

2.Nvidia plugin installiert

3. GPU statistics installiert, unraid neu gestartet 

4. Docker aktiviert und 2 Docker zum testen installiert: ( Jellyfin und XMRig) 

 

Nachträglich rumprobiert und 2 sachen eingefügt. aber ich glaube das hat mit meinem Problem nix zutun.

 

im go file: 

echo 0 > /sys/class/vtconsole/vtcon0/bind
echo 0 > /sys/class/vtconsole/vtcon1/bind
echo efi-framebuffer.0 > /sys/bus/platform/drivers/efi-framebuffer/unbind
loadkeys de-latin1

in der syslinux config: 

kernel /bzimage
append amd_iommu=on iommu=pt initrd=/bzroot

 

das war auf meinem anderen Server so eingestellt. (wieso weis ich nicht mehr genau.)

 

Bei der Parametrierung der Docker Container bin ich mir zu 100% sicher das diese richtig ist. Da ich das 1 zu 1 von meinem anderen Server übernommen habe.(abgesehen von der GPU ID) Die Grafikkarte war auch schonmal in dem anderen server verbaut und hat dort mit den gleichen Containern wunderbar funktioniert. 

 

Die Grafikkarte wird auch vom unraid erkannt. Das Plugin gpu statistics gibt auch korrekt aus. (anhand der sich ändernden Lüfterdrehzahl kann man auch erkennen das der Treiber funktionieren müsste.  )

Gebe ich im Docker Container nvidia-smi ein kommt auch eine Ausgabe das die Grafikkarte vorhanden ist 

Ausgabe im Jellyfin Container: 

root@a69840e217d0:/# nvidia-smi
Fri Jan  5 00:30:07 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.06              Driver Version: 545.29.06    CUDA Version: 12.3     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce GTX 960         Off | 00000000:02:00.0 Off |                  N/A |
|  0%   37C    P0              27W / 130W |      0MiB /  4096MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

 

Starte ich aber ein Video welches trankodiert werden muss kommt ein Fehler. Im Unraid log konnte ich aber nicht auffälliges finden. 

[01:11:57] [ERR] [162] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1
[01:11:57] [ERR] [162] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/42d5f33b-c5f2-878e-d89a-ffd7ae46ccdd/hls1/main/0.ts.

 

Meine Hardware: 

Model:	Custom
M/B:	BIOSTAR Group N68S3+ s/n None
BIOS:	American Megatrends Inc. Version 080015 Dated 08/26/2010
CPU:	AMD Athlon™ II X3 425 @ 2700 MHz
HVM:	Enabled
IOMMU:	Disabled
Cache:	L1-Cache: 384 KiB, L2-Cache: 1536 KiB, L3-Cache: 0 KiB
Memory:	10 GiB Other (max. installable capacity 16 GiB*)
Network:	bond0: fault-tolerance (active-backup), mtu 1500
Kernel:	Linux 6.1.64-Unraid x86_64
OpenSSL:	1.1.1v
Uptime:	

 

Ausgabe NVIDIA Treiber: 

Nvidia Driver Version:	545.29.06
Open Source Kernel Module:	No
Installed GPU(s):	0:
NVIDIA GeForce GTX 960
02:00.0
GPU-6a73df87-c81e-9369-8667-67b62127c476

 

tower-diagnostics-20240105-1005.zip

Solved by domrockt

Gude, Wow ne weile her von nem Athlon was gelesen zu haben 🤩 vorallem den 3Kernern (hast versucht den 4ten Kern zu aktivieren? das ging bei einigen damals)

 

Hast du auch die Nvidia Treiber Plugin installiert?

 

Dann noch im Docker 

 

NVIDIA_VISIBLE_DEVICES variable, mit der GPU UUID als key?

 

und unter special parameter 

 

 --runtime=nvidia

 

??

 

*edit* ich erinnere mich aber auch das ich damals meine GTX 960 verkauft habe weil sie nicht mit oder schlecht mit Jellyfin läuft, das war glaube ich die erste Karte mit h265. 

Deine CPU auslast wird trotzdem bei 100% sein denke ich und stell direkt auf h265 damit wirst du a ehesten Erfolg haben.

 

 

Edited by domrockt

  • Author
On 1/5/2024 at 2:27 PM, domrockt said:

hast versucht den 4ten Kern zu aktivieren?

Das geht ? Aber nein hab ich nicht. 

 

On 1/5/2024 at 2:27 PM, domrockt said:

Hast du auch die Nvidia Treiber Plugin installiert?

Ja

 

On 1/5/2024 at 2:27 PM, domrockt said:

NVIDIA_VISIBLE_DEVICES variable, mit der GPU UUID als key?

 

und unter special parameter 

 

 --runtime=nvidia

ja. Das habe ich auch gemacht. 

Wie gesagt die beiden Docker hab ich mit den exaxt gleichen einstellungen und der gleichen Grafikkarte betrieben. 

 

On 1/5/2024 at 2:27 PM, domrockt said:

GTX 960 verkauft habe weil sie nicht mit oder schlecht mit Jellyfin läuft,

Also bis jetzt konnte ich mich nicht beschweren. 

 

Ich hab auch noch eine GTX 1060 probiert. (Die lief auf dem anderen Rechner auch problemlos mit Unraid und Jellyfin) aber die hat auf dem Testrechner auch nicht funktioniert. 

Bzw werden diese ja auch im Plugin erkannt aber irgendwie nicht verwendet

37 minutes ago, FlorianHE said:

Bzw werden diese ja auch im Plugin erkannt aber irgendwie nicht verwendet

woran machst du das fest ?

 

geh mal in die Konsole einer deiner Docker und führe darin dann nvidia-smi aus ob das geht.

 

ps. und entferne den ganzen Kram was du da added hast im go file, ebenso in der syslinux ... wenn du nicht weißt wofür das ist ...

  • Solution
43 minutes ago, FlorianHE said:

Das geht ? Aber nein hab ich nicht. 

 

NCIX Linus erklärt wie, ist einen versuch Wert. Bei manchen muss man die VCore etwas anheben Im worst case einfach cmos Jumper und cmos resetten. 

Hier ist ein Artikel welches Stepping gut geeignet ist und welches nicht https://www.cpu-world.com/info/AMD/Unlocking_cores_and_L3.html

 

43 minutes ago, FlorianHE said:

aber die hat auf dem Testrechner auch nicht funktioniert. 

 

Gut, dann testen wir die Karte doch mal mit Handbrake, wenn es hier nicht geht liegt es an der inzwischen sehr alten Hardware Plattform.

 

such in den CA nach Handbrake, klick auf Install dann ändere die Repo Punkt 1)

zu Repo Punkt 2) zocker160/handbrake-nvenc:latest

und in die extra Parameter Punk 3)  --gpus all

 

dann mal versuchen ob die GPU beim Transcodieren benutzt wird. 

 

 

Wenn nichts klappt kannst du JEDEN 50€ Dell Optiplex Rechner mit Intel 4th gen und aufwärts mit passendem Gehäuse kaufen und bist wieder "modern" genug für Jellyfin.

 

 

 

Edited by domrockt

  • Author
On 1/8/2024 at 7:58 AM, alturismo said:

geh mal in die Konsole einer deiner Docker und führe darin dann nvidia-smi aus ob das geht.

Das hatte ich gemacht. und ja das ging. Die Ausgabe steht auch oben in meinem ersten Eintrag.

 

On 1/8/2024 at 7:58 AM, domrockt said:

Gut, dann testen wir die Karte doch mal mit Handbrake, wenn es hier nicht geht liegt es an der inzwischen sehr alten Hardware Plattform.

Okay das werde ich die Tage mal testen. 

 

Vielen Dank

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.