Por que o driver nvidia 346 funciona enquanto o driver 384 não

1

Eu tenho tentado atualizar meu driver da nvidia-346 para a nvidia-384, mas a segunda falha ao iniciar o servidor X.

Computador: Laptop MSI GE60 2PE Apache Pro CPU: Intel I5-4200H GPU: GeForce GTX 860M Sistema: Linux Mint 17.2 64bits Núcleo do Linux: 3.16.0-38-genérico

Prime é suportado, usando nvidia-settings para forçar o uso da nvidia gpu.

Para mudar do driver 346 (que funciona bem) para o driver 384, eu fiz:

sudo apt-get remove --purge nvidia-*
sudo reboot
sudo apt-get install nvidia-384

(Se eu instalar nvidia-346, tudo funciona bem ... mas eu gostaria de atualizar meu driver)

Então eu recebo o logotipo da casa da moeda na inicialização, mas termino com uma tela preta. Terminal virtual ctrl + alf + f1 ainda funcionando.

De lá, fiz alguns diagnósticos:

sudo ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
vendor   : NVIDIA Corporation
modalias : pci:v000010DEd00001392sv00001462sd00001107bc03sc02i00
driver   : nvidia-346 - third-party non-free
driver   : xserver-xorg-video-nouveau - distro free builtin
driver   : nvidia-375 - third-party free
driver   : nvidia-381 - third-party free
driver   : nvidia-340 - third-party free
driver   : nvidia-384 - third-party free recommended
driver   : nvidia-378 - third-party free

lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)

sudo lshw -C display
  *-display
       description: 3D controller
       produit: GM107M [GeForce GTX 860M]
       fabriquant: NVIDIA Corporation
       identifiant matériel: 0
       information bus: pci@0000:01:00.0
       version: a2
       bits: 64 bits
       horloge: 33MHz
       fonctionnalités: pm msi pciexpress bus_master cap_list rom
       configuration: driver=nvidia latency=0
       ressources: irq:52 mémoire:f6000000-f6ffffff mémoire:e0000000-efffffff mémoire:f0000000-f1ffffff portE/S:e000(taille=128) mémoire:f7000000-f707ffff
  *-display
       description: VGA compatible controller
       produit: 4th Gen Core Processor Integrated Graphics Controller
       fabriquant: Intel Corporation
       identifiant matériel: 2
       information bus: pci@0000:00:02.0
       version: 06
       bits: 64 bits
       horloge: 33MHz
       fonctionnalités: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       ressources: irq:46 mémoire:f7400000-f77fffff mémoire:d0000000-dfffffff portE/S:f000(taille=64)

sudo nvidia-detector
none

inxi -SGx
System:   Host: Deepthought Kernel: 3.16.0-38-generic x86_64 (64 bit, gcc: 4.8.2)
          Console: tty 1 Distro: Linux Mint 17.2 Rafaela
Graphics: Card: Intel 4th Gen Core Processor Integrated Graphics Controller bus-ID: 00:02.0
          X.org: 1.15.1 drivers: nvidia,intel tty size: 240x67 Advanced Data: N/A for root out of X

Aqui está o arquivo /var/log/Xorg.0.log: link

O login em /var/log/gpu-manager.log: link

Eu também executei este comando:

dpkg -l | grep -i nvidia

ii  bbswitch-dkms                                         0.7-2ubuntu1                                        amd64        Interface for toggling the power on nVidia Optimus video cards
rc  libcuda1-352-updates                                  352.63-0ubuntu0.14.04.1                             amd64        NVIDIA CUDA runtime library
rc  libcuda1-361                                          361.45.18-0ubuntu0~gpu14.04.1                       amd64        NVIDIA CUDA runtime library
rc  libcuda1-364                                          364.19-0ubuntu0~gpu14.04.3                          amd64        NVIDIA CUDA runtime library
rc  libcuda1-367                                          367.44-0ubuntu0~gpu14.04.1                          amd64        NVIDIA CUDA runtime library
rc  libcuda1-370                                          370.28-0ubuntu0~gpu14.04.1                          amd64        NVIDIA CUDA runtime library
rc  libcuda1-384                                          384.69-0ubuntu0~gpu14.04.1                          amd64        NVIDIA CUDA runtime library
ii  nvidia-384                                            384.69-0ubuntu0~gpu14.04.1                          amd64        NVIDIA binary driver - version 384.69
ii  nvidia-prime                                          0.6.2.1linuxmint1                                   amd64        Tools to enable NVIDIA's Prime
ii  nvidia-settings                                       346.72-0ubuntu1                                     amd64        Tool for configuring the NVIDIA graphics driver

dmesg | egrep -i "bbswitch | nvidia"

[   17.368801] nvidia: module license 'NVIDIA' taints kernel.
[   17.372095] nvidia: module verification failed: signature and/or  required key missing - tainting kernel
[   17.376643] nvidia-nvlink: Nvlink Core is being initialized, major device number 249
[   17.376921] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  384.69  Wed Aug 16 19:34:54 PDT 2017 (using threaded interrupts)
[   17.377929] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  384.69  Wed Aug 16 19:39:44 PDT 2017
[   17.378275] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[   17.408885] nvidia-uvm: Loaded the UVM driver in 8 mode, major device number 248
[   18.071894] nvidia 0000:01:00.0: irq 51 for MSI/MSI-X
[   18.072250] systemd-udevd[805]: failed to execute '/bin/systemctl' '/bin/systemctl start --no-block nvidia-persistenced.service': No such file or directory
[   21.215643] bbswitch: version 0.7
[   21.215649] bbswitch: Found integrated VGA device 0000:00:02.0: \_SB_.PCI0.GFX0
[   21.215655] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.PEG0.PEGP
[   21.215730] bbswitch: detected an Optimus _DSM function
[   21.215735] bbswitch: Succesfully loaded. Discrete card 0000:01:00.0 is on
[   21.387726] systemd-udevd[1211]: failed to execute '/bin/systemctl' '/bin/systemctl stop --no-block nvidia-persistenced': No such file or directory
[   23.363834] nvidia 0000:01:00.0: irq 52 for MSI/MSI-X
[   23.560676] nvidia-modeset: Allocated GPU:0 (GPU-73945cf4-306b-7a4c-199c-65624530c4a3) @ PCI:0000:01:00.0
[   23.560775] nvidia-modeset: Freed GPU:0 (GPU-73945cf4-306b-7a4c-199c-65624530c4a3) @ PCI:0000:01:00.0

E este é o conteúdo da pasta /lib/module/3.16.0-38-generic/kernel/drivers/drm:

nvidia_384_drm.ko
nvidia_384.ko
nvidia_384_modeset.ko
nvidia_384_uvm.ko

Eu também tenho um /etc/modprobe.d/nvidia-graphic-drivers.conf contendo:

# This file was installed by nvidia-384
# Do not edit this file manually

blacklist nouveau
blacklist lbm-nouveau
blacklist nvidia-current
blacklist nvidia-173
blacklist nvidia-96
blacklist nvidia-current-updates
blacklist nvidia-173-updates
blacklist nvidia-96-updates
blacklist nvidia-384-updates
alias nvidia nvidia_384
alias nvidia-uvm nvidia_384_uvm
alias nvidia-modeset nvidia_384_modeset
alias nvidia-drm nvidia_384_drm
alias nouveau off
alias lbm-nouveau off

options nvidia_384_drm modeset=0

Espero que isso seja suficiente para alguém me ajudar? Obrigado

    
por sayanel 12.09.2017 / 17:11

1 resposta

0

Por comentário do OP, a instalação de um kernel posterior ajudou (o 4.4, linux-generic-lts-xenial package) .

Por isso, este é um bug de empacotamento do Ubuntu que eu recomendo relatar. Eles devem adicionar um kernel posterior às dependências do NVidia-384 (4.4 certamente fará o trabalho) .

Em última análise, o kernel não tem uma interface estável para trabalhar com módulos, o que é proposital - é um dos motivos que, apesar de ter 26 anos, ainda está sendo moderno e bem desenvolvido. Ele está sendo refatorado em todas as vezes, interfaces internas sendo descartadas, adicionadas, reescritas, melhoradas, etc.

É bom, e é de fato desejável para fabricantes de cartões com drivers no kernel (por exemplo, Intel e AMD) . Mas a NVidia por motivos políticos mantém o código fechado, em vez disso, eles estão usando o DKMS para trabalhar com a API interna instável. E, no seu caso, o que aparentemente aconteceu foi uma pequena mudança no caminho do 3.16 para o 4.4, que causou uma falha no driver do kernel da NVidia.

FTR, por favor note a distinção entre os drivers da GPU do kernel (do qual eu estou falando) e os drivers da GPU do espaço do usuário (sendo um componente para os do kernel) . p>

Também FYI, 3.16 não é antigo, porque 4.4 é. 3.16 é antigo .

    
por Hi-Angel 13.09.2017 / 15:14