Como posso fazer o Ubuntu 16.04 usar o driver AMDGPU para minha GPU RX560?

0

Eu instalei recentemente uma placa GPU AMD RX 560 na minha máquina. Parece funcionar OK - a máquina inicializa com sucesso e estou digitando essa mensagem nela. No entanto, por algum motivo, o driver amdgpu não está reivindicando o cartão. (E sim, o monitor está ligado à porta HDMI da placa discreta, não à porta VGA incorporada.)

lsmod imediatamente após a inicialização revela que o módulo amdgpu está carregado. No entanto, lshw -c video informa o cartão como UNCLAIMED (ao relatar outros detalhes, como o chipset, corretamente). Além disso, glxinfo reporta o renderizador como llvmpipe , o que, acredito, não é o que eu devo esperar se a máquina estiver usando aceleração de vídeo por hardware.

O vídeo on-board da máquina é Nvidia, então não há nenhuma chance de confundir minha nova placa AMD com a placa on-board.

Minha pergunta é simples: por que o driver amdgpu pode se comportar dessa maneira e como posso fazê-lo funcionar como o driver da minha placa de vídeo? Ou eu estou confuso e as coisas estão realmente agindo como deveriam? (Nesse caso, como habilitar a aceleração de hardware para o OpenGL?)

Saída de lsmod :

Module                  Size  Used by
snd_hda_codec_realtek    90112  1
snd_hda_codec_generic    77824  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     53248  2
snd_hda_intel          40960  5
snd_hda_codec         135168  4 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel
kvm_amd                65536  0
snd_hda_core           77824  5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
kvm                   548864  1 kvm_amd
snd_hwdep              16384  1 snd_hda_codec
snd_pcm               106496  4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core
irqbypass              16384  1 kvm
snd_seq_midi           16384  0
snd_seq_midi_event     16384  1 snd_seq_midi
input_leds             16384  0
snd_rawmidi            32768  1 snd_seq_midi
snd_seq                69632  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device         16384  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              32768  2 snd_pcm,snd_seq
snd                    81920  21 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device
soundcore              16384  1 snd
edac_mce_amd           24576  0
serio_raw              16384  0
k10temp                16384  0
edac_core              53248  0
shpchp                 36864  0
asus_atk0110           20480  0
8250_fintek            16384  0
i2c_nforce2            16384  0
binfmt_misc            20480  1
mac_hid                16384  0
amdkfd                131072  1
amd_iommu_v2           20480  1 amdkfd
amdgpu                991232  0
ttm                    98304  1 amdgpu
drm_kms_helper        155648  1 amdgpu
drm                   364544  3 ttm,drm_kms_helper,amdgpu
i2c_algo_bit           16384  1 amdgpu
fb_sys_fops            16384  1 drm_kms_helper
syscopyarea            16384  1 drm_kms_helper
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
parport_pc             32768  0
ppdev                  20480  0
lp                     20480  0
parport                49152  3 lp,ppdev,parport_pc
autofs4                40960  2
hid_logitech_hidpp     20480  0
hid_logitech_dj        20480  0
hid_generic            16384  0
usbhid                 49152  1
hid                   122880  5 hid_generic,usbhid,hid_logitech_dj,hid_logitech_hidpp
pata_acpi              16384  0
mxm_wmi                16384  0
firewire_ohci          40960  0
firewire_core          65536  1 firewire_ohci
psmouse               131072  0
ahci                   36864  2
crc_itu_t              16384  1 firewire_core
forcedeth              69632  0
libahci                32768  1 ahci
pata_amd               20480  0
video                  40960  0
wmi                    20480  1 mxm_wmi
fjes                   28672  0

Saída de lshw -c video (o chip Nvidia integrado não aparece, eu acho que ter uma placa discreta instalada e / ou monitor anexado à placa discreta a desativa no nível do hardware, ou algo assim):

  *-display UNCLAIMED     
       description: VGA compatible controller
       product: Baffin [Radeon RX 550 640SP / RX 560]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:02:00.0
       version: cf
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi vga_controller bus_master cap_list
       configuration: latency=0
       resources: memory:d0000000-dfffffff memory:efe00000-efffffff ioport:dc00(size=256) memory:fdc80000-fdcbffff memory:fdcc0000-fdcdffff

Saída de glxinfo (modos recortados etc por brevidade):

name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, 
    GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_OML_swap_method, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, 
    GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile, 
    GLX_EXT_create_context_es_profile, GLX_EXT_fbconfig_packed_float, 
    GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context, 
    GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
    GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer, 
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read, 
    GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, 
    GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, 
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_make_current_read
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: VMware, Inc. (0xffffffff)
    Device: llvmpipe (LLVM 5.0, 128 bits) (0xffffffff)
    Version: 17.2.8
    Accelerated: no
    Video memory: 7982MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 3.3
    Max compat profile version: 3.0
    
por JKna 06.04.2018 / 04:58

1 resposta

0

(Atualizado.) Tipo de resolvido. Eu atualizei minha instalação do Ubuntu para 17.10, reiniciei e agora tenho um pipeline de gráficos acelerado. Então isso não responde à pergunta específica de como fazer o amdgpu funcionar no 16.04, mas do volume de outras questões sobre esse tópico parece que a resposta é: "Não se preocupe. Apenas atualize."

Atualização: após algumas reinicializações de 17,10, sem alterações na configuração do vídeo, estou de volta ao quadrado -1. O kernel 4.13 agora está inicializando em uma tela preta e a máquina não responde - Ctrl-Alt-Fn não me leva a uma sessão de login de texto. Se eu inicializar o kernel 4.4 antigo, a máquina inicializa com sucesso, mas mais uma vez, sem aceleração de hardware: - (

Atualização 2: Um kernel 4.16 criado a partir do código-fonte parece ser capaz de inicializar consistentemente com o suporte AMDGPU ativado e funcionando para o RX 560.

    
por JKna 07.04.2018 / 22:15