Instale o driver cuda em um contêiner virtual de proxmox

3

Instalei 2.6.32-17-pve na minha máquina host com:

    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

Depois de criar um contêiner virtual do Ubuntu 12.04, tentei instalar o cuda-driver da seguinte forma:

  1. vzctl set 100 --pci_add 02:00.0 no host e lspci -v no 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. Eu instalo os pacotes recomendados para instalar o cuda e altero a versão do gcc para 4.4

  3. Para instalar o cabeçalho do kernel do pve, incluo o sources.list de pve: deb http://download.proxmox.com/debian squeeze pve e execute sudo apt-get install pve-headers-2.6.32-17-pve
  4. Agora estou tentando instalar o driver, mas:

    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.
    

Eu acho que o motivo pode ser que o vz não obtém a propriedade do dispositivo gráfico, mas não tenho certeza e não sei como corrigi-lo. Alguém poderia me dar algumas sugestões?

Obrigado

    
por wush978 09.03.2013 / 19:01

1 resposta

1

O carregamento de módulos do kernel é proibido dentro de containers OpenVZ: é uma medida de segurança já que o kernel é compartilhado entre o host e todos os containers.

O que pode funcionar: carregue os drivers de kernel necessários no host, adicione acesso a quaisquer dispositivos associados usando --devnodes e, caso deseje, ative todos os recursos usando --capability

    
por 17.06.2016 / 08:39