Installieren Sie den cuda-Treiber in einem virtuellen Proxmox-Container

1470
wush978

Ich habe 2.6.32-17-pveauf meinem Host-Rechner Folgendes installiert :

 02:00.0 VGA compatible controller: NVIDIA Corporation Device 11c6 (rev a1) (prog-if 00 [VGA controller]) Subsystem: Giga-byte Technology Device 3557 Flags: fast devsel, IRQ 16 Memory at fa000000 (32-bit, non-prefetchable) [size=16M] Memory at c0000000 (64-bit, prefetchable) [size=256M] Memory at d0000000 (64-bit, prefetchable) [size=32M] I/O ports at e000 [size=128] Expansion ROM at fb000000 [disabled] [size=512K] Capabilities: [60] Power Management version 3 Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [78] Express Endpoint, MSI 00 Capabilities: [b4] Vendor Specific Information: Len=14 <?> Capabilities: [100] Virtual Channel Capabilities: [128] Power Budgeting <?> Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?> Capabilities: [900] #19 

Nachdem ich einen virtuellen Container für Ubuntu 12.04 erstellt hatte, versuchte ich, cuda-driver wie folgt zu installieren:

  1. vzctl set 100 --pci_add 02:00.0auf host und lspci -vin vz print:

    02:00.0 VGA compatible controller: NVIDIA Corporation Device 11c6 (rev a1) (prog-if 00 [VGA controller]) Subsystem: Giga-byte Technology Device 3557 Flags: fast devsel, IRQ 16 Memory at fa000000 (32-bit, non-prefetchable) [size=16M] Memory at c0000000 (64-bit, prefetchable) [size=256M] Memory at d0000000 (64-bit, prefetchable) [size=32M] I/O ports at e000 [size=128] Expansion ROM at fb000000 [disabled] [size=512K] Capabilities: <access denied> Kernel modules: nouveau, nvidiafb 
  2. Ich installiere die empfohlenen Pakete für die Installation von cuda und ändere die gcc-Version auf 4.4

  3. Um den Kernel-Header von pve zu installieren, füge ich die sources.list von pve: hinzu deb http://download.proxmox.com/debian squeeze pveund führe sie aussudo apt-get install pve-headers-2.6.32-17-pve
  4. Jetzt versuche ich den Treiber zu installieren, aber:

    ERROR: Unable to load the kernel module 'nvidia.ko'. This happens most frequently when this kernel module was built against the wrong or improperly configured kernel sources, with a version of gcc that differs from the one used to build the target kernel, or if a driver such as rivafb, nvidiafb, or nouveau is present and prevents the NVIDIA kernel module from obtaining ownership of the NVIDIA graphics device(s), or NVIDIA GPU installed in this system is not supported by this NVIDIA Linux graphics driver release. 

Ich denke, der Grund könnte sein, dass die vz nicht das Eigentum an dem Grafikgerät erlangt, aber ich bin mir nicht sicher und weiß nicht, wie ich es reparieren soll. Könnte mir jemand ein paar Vorschläge geben?

Vielen Dank

3
Ich bin kein vz-Benutzer, aber es scheint mir, als ob das Problem im Client liegt - es sieht so aus, als ob der nvidia-Treiber vom Kernel, den Sie verwenden, nicht gefunden / geladen wird. Möglicherweise müssen Sie das nvidia-Modul im virtueller Host davidgo vor 11 Jahren 0
Haben Sie die duale Methode ausprobiert, die darin besteht, den nvidia-Treiber im Host zu installieren und anschließend * `` / dev / nvidia0`` mit dem Gast zu teilen? MP0 vor 9 Jahren 0

1 Antwort auf die Frage

1
Alec Istomin

Das Laden von Kernelmodulen ist in OpenVZ-Containern nicht zulässig. Dies ist eine Sicherheitsmaßnahme, da der Kernel von Host und allen Containern gemeinsam genutzt wird.

Was möglicherweise funktioniert: Laden Sie die erforderlichen Kerneltreiber auf dem Host, fügen Sie über --devnodes den Zugriff auf alle zugehörigen Geräte hinzu und aktivieren Sie für alle Fälle alle Funktionen mit --capability