Eu criei recentemente um PC com um RX480 e instalei a pilha do driver AMDGPU de código aberto de acordo com este guia . O único passo que eu não segui exatamente foi a compilação do kernel - eu simplesmente baixei o kernel 4.7.0rc7 do repositório experimental do Debian.
Saída de uname -a
:
Linux Eleanor 4.7.0-rc7-amd64 #1 SMP Debian 4.7~rc7-1~exp1 (2016-07-14) x86_64 GNU/Linux
A placa gráfica parece inicializar bem ...
Saída de dmesg | grep amd
:
[ 0.000000] Linux version 4.7.0-rc7-amd64 ([email protected]) (gcc version 5.4.0 20160609 (Debian 5.4.0-6) ) #1 SMP Debian 4.7~rc7-1~exp1 (2016-07-14)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.7.0-rc7-amd64 root=UUID=3117fb8f-0774-4d8e-97aa-3b8e936eff78 ro quiet
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.7.0-rc7-amd64 root=UUID=3117fb8f-0774-4d8e-97aa-3b8e936eff78 ro quiet
[ 2.153126] usb usb1: Manufacturer: Linux 4.7.0-rc7-amd64 ehci_hcd
[ 2.165066] usb usb2: Manufacturer: Linux 4.7.0-rc7-amd64 ehci_hcd
[ 2.166215] usb usb3: Manufacturer: Linux 4.7.0-rc7-amd64 xhci-hcd
[ 2.169419] usb usb4: Manufacturer: Linux 4.7.0-rc7-amd64 xhci-hcd
[ 2.170615] usb usb5: Manufacturer: Linux 4.7.0-rc7-amd64 xhci-hcd
[ 2.173869] usb usb6: Manufacturer: Linux 4.7.0-rc7-amd64 xhci-hcd
[ 2.249402] usb usb7: Manufacturer: Linux 4.7.0-rc7-amd64 ohci_hcd
[ 2.309116] usb usb8: Manufacturer: Linux 4.7.0-rc7-amd64 ohci_hcd
[ 2.369146] usb usb9: Manufacturer: Linux 4.7.0-rc7-amd64 ohci_hcd
[ 3.586002] [drm] amdgpu kernel modesetting enabled.
[ 3.596360] amdgpu 0000:01:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
[ 3.597447] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_mc.bin
[ 3.597459] amdgpu 0000:01:00.0: VRAM: 8192M 0x0000000000000000 - 0x00000001FFFFFFFF (8192M used)
[ 3.597460] amdgpu 0000:01:00.0: GTT: 8192M 0x0000000200000000 - 0x00000003FFFFFFFF
[ 3.600719] [drm] amdgpu: 8192M of VRAM memory ready
[ 3.600720] [drm] amdgpu: 8192M of GTT memory ready.
[ 3.602047] amdgpu 0000:01:00.0: amdgpu: using MSI.
[ 3.602072] [drm] amdgpu: irq initialized.
[ 3.602267] amdgpu: powerplay initialized
[ 3.603145] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_pfp.bin
[ 3.603623] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_me.bin
[ 3.604144] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_ce.bin
[ 3.604371] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_rlc.bin
[ 3.605133] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_mec.bin
[ 3.605991] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_mec2.bin
[ 3.606549] amdgpu 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000200000008, cpu addr 0xffff8800b7e0f008
[ 3.606652] amdgpu 0000:01:00.0: fence driver on ring 1 use gpu addr 0x000000020000001c, cpu addr 0xffff8800b7e0f01c
[ 3.606681] amdgpu 0000:01:00.0: fence driver on ring 2 use gpu addr 0x0000000200000030, cpu addr 0xffff8800b7e0f030
[ 3.607618] amdgpu 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000200000044, cpu addr 0xffff8800b7e0f044
[ 3.607885] amdgpu 0000:01:00.0: fence driver on ring 4 use gpu addr 0x0000000200000058, cpu addr 0xffff8800b7e0f058
[ 3.607936] amdgpu 0000:01:00.0: fence driver on ring 5 use gpu addr 0x000000020000006c, cpu addr 0xffff8800b7e0f06c
[ 3.607959] amdgpu 0000:01:00.0: fence driver on ring 6 use gpu addr 0x0000000200000080, cpu addr 0xffff8800b7e0f080
[ 3.607981] amdgpu 0000:01:00.0: fence driver on ring 7 use gpu addr 0x0000000200000094, cpu addr 0xffff8800b7e0f094
[ 3.608003] amdgpu 0000:01:00.0: fence driver on ring 8 use gpu addr 0x00000002000000a8, cpu addr 0xffff8800b7e0f0a8
[ 3.608401] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_sdma.bin
[ 3.610223] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_sdma1.bin
[ 3.623985] amdgpu 0000:01:00.0: fence driver on ring 9 use gpu addr 0x00000002000000bc, cpu addr 0xffff8800b7e0f0bc
[ 3.624056] amdgpu 0000:01:00.0: fence driver on ring 10 use gpu addr 0x00000002000000d0, cpu addr 0xffff8800b7e0f0d0
[ 3.633260] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_uvd.bin
[ 3.647029] amdgpu 0000:01:00.0: fence driver on ring 11 use gpu addr 0x000000000109c420, cpu addr 0xffffc9000325a420
[ 3.648313] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_vce.bin
[ 3.653698] amdgpu 0000:01:00.0: fence driver on ring 12 use gpu addr 0x00000002000000f8, cpu addr 0xffff8800b7e0f0f8
[ 3.654283] amdgpu 0000:01:00.0: fence driver on ring 13 use gpu addr 0x000000020000010c, cpu addr 0xffff8800b7e0f10c
[ 3.725085] amdgpu 0000:01:00.0: firmware: direct-loading firmware amdgpu/polaris10_smc.bin
[ 4.358248] fbcon: amdgpudrmfb (fb0) is primary device
[ 4.767814] amdgpu 0000:01:00.0: fb0: amdgpudrmfb frame buffer device
[ 4.784116] [drm] Initialized amdgpu 3.2.0 20150101 for 0000:01:00.0 on minor 0
E o GDM3 inicia com sucesso sem erros gráficos, enquanto antes de instalar o driver ele nem funcionaria. No entanto, ele fica horrivelmente
e é extremamente evidente que o driver não está totalmente carregado, porque as animações estão desabilitadas no GNOME e o ambiente de área de trabalho ainda consegue derrubar quadros como uma velha tentando juntá-la centavos. Vamos dar uma olhada nas mensagens de erro do arquivo de log do Xorg depois de iniciar o GNOME.
Saída de cat .local/share/xorg/Xorg.0.log | grep "(EE)"
:
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 216.095] (EE) Failed to load module "ati" (module does not exist, 0)
[ 216.096] (EE) Failed to load module "fbdev" (module does not exist, 0)
[ 216.096] (EE) Failed to load module "vesa" (module does not exist, 0)
[ 216.220] (EE) AMDGPU(0): glamor detected, failed to initialize EGL.
[ 216.952] (EE) AIGLX error: Calling driver entry point failed
[ 216.952] (EE) AIGLX: reverting to software rendering
A execução de glxgears
consegue extrair uma quantidade impressionante de quadros, apesar de ser executada por um renderizador de software, mas o problema é mais do mesmo ...
Saída de LIBGL_DEBUG=verbose glxgears
:
pci id for fd 4: 1002:67df, driver (null)
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/radeonsi_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
pci id for fd 5: 1002:67df, driver (null)
libGL error: failed to create dri screen
libGL error: failed to load driver: radeonsi
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: Can't open configuration file /home/jessie/.drirc: No such file or directory.
libGL: Can't open configuration file /home/jessie/.drirc: No such file or directory.
5197 frames in 5.0 seconds = 1039.346 FPS
Eu tive uma rápida olhada para ter certeza, e o driver está de fato presente em /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
, então não é uma questão de falta. glxinfo
cria os mesmos erros também, embora eu não tenha certeza do que fazer com sua saída.
Saída de glxinfo | grep OpenGL
:
pci id for fd 4: 1002:67df, driver (null)
pci id for fd 5: 1002:67df, driver (null)
libGL error: failed to create dri screen
libGL error: failed to load driver: radeonsi
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 128 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.2.2
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 11.2.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 11.2.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:
Olhando para a situação, o problema pode estar relacionado ao 'AMDGPU (0): glamour detectado, falha ao inicializar o EGL.' mensagem criada ao iniciar o servidor X, pois o driver não é carregado diretamente após esse erro. Eu olhei para o erro e não consigo encontrar nada relacionado à minha situação específica, no entanto. Documentação e guias para instalar os drivers também são incrivelmente esparsos, se não inexistentes. Eu só encontrei o único guia acima que funcionou com o Debian. Eu acho que isso é o que eu pedi quando eu comprei um novo cartão construído em uma arquitetura nova em execução em drivers experimentais. Eu brinquei com as coisas por 10 horas para chegar a este ponto e finalmente estou presa. Alguém sabe onde procurar a seguir ou qual é o problema?
Além disso, esta instalação é completamente nova. Como em, built-and-instalado-os-drivers-direita-depois de instalar o sistema fresco. A única coisa que fiz de antemão que pode ter interferido foi tentar instalar os drivers proprietários fora do site da AMD. Eu falhei miseravelmente e mal funcionou, provavelmente porque o pacote era destinado a sistemas Ubuntu. Apenas metade dos pacotes instalados e eu removi todos eles imediatamente depois que ele não instalou o conjunto inteiro.
Obrigado.