nvidia-modprobe tentando carregar o driver errado

0

Eu finalmente instalei os últimos drivers nvidia rodando com o Bumblebee. Funciona muito bem agora com optirun .

O driver é chamado nvidia_352 .

Agora estou tentando fazer o CUDA funcionar. Eu posso modificar manualmente nvidia_352 e nvidia_352_uvm e funciona como esperado. No entanto, se eu ainda não tiver executado o modprobe manualmente, ele tentará carregar os drivers nvidia e nvidia_uvm e, assim, falhará (já que esses drivers não existem).

Este é o caso se eu tentar usar nvidia-modprobe .

Suspeito que exista alguma configuração subjacente que diga nvidia-modprobe para tentar carregar o driver nvidia , mas não sei o que é isso. Alguém tem uma sugestão?

Eu acho que uma solução é carregar explicitamente esses drivers na inicialização, mas eles estão atualmente na lista negra de bumblebee, de modo que quer assumir o controle, e também não tenho certeza das implicações de poder de carregar o driver.

    
por Henry Gomersall 28.08.2015 / 20:23

2 respostas

1

Estou trabalhando em um problema semelhante e consegui corrigi-lo editando meu conf bumblebee.

sudo vim /etc/bumblebee/bumblebee.conf

Definir o driver para nvidia

# (See also the driver-specific sections below)
Driver=nvidia

Dentro da seção específica do driver nvidia, eu adicionei o nome do módulo, que no meu caso nvidia-352

## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-352

Eu precisava incluir o caminho do driver que não estava correto por padrão. Veja /usr/lib/ e /usr/lib32/ . No meu caso eu não pareço ter drivers de 32 bits ... mas se eu fizesse eles estariam no LibraryPath separado por uma vírgula.

Eu também precisei adicionar o XorgModulePath.

# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-352
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-352,/usr/lib/xorg/modules

Depois de fazer um pouco mais de pesquisa, encontrei um excelente guia que me ajudou a concluir meu projeto.

como-instalar-nvidia-drivers-com-bumblebee-on-ubuntu-14-04

    
por McKayMatt 19.09.2015 / 19:41
0

Para corrigir esse problema (além da resposta do @ McKayMatt), eu escrevi um par de scripts para fazer o carregamento explicitamente:

O primeiro é um script de pré-carregamento, preload_nvidia_module.sh :

#!/bin/sh
sudo modprobe nvidia-352-uvm
eval "$@"

que é chamado de outro script cuda_run :

#!/bin/sh
optirun --no-xorg preload_nvidia_module.sh $@

Então agora o programa cuda pode ser executado como:

cuda_run my_cuda_program

e todo o carregamento e descarregamento do módulo acontece automaticamente.

Eu ouso dizer que esses scripts podem ser combinados se você possuir mais bash fu do que eu.

    
por Henry Gomersall 22.09.2015 / 11:04