Bonjour à tous.
Alors voilà : je fais de la programmation 3D en amateur sous Windows 10. J'utilise donc le SDK de vulkan et j'ai décidé, il y a quelques jours, de migrer vers ubuntu pour pouvoir développer en natif mes programmes sous linux. Je me suis donc retrouvé en dual boot avec Windows et Ubuntu 18.04.
J'ai donc immédiatement installé le fameux SDK de vulkan (après les mises à jours d'Ubuntu) en suivant les instructions du site officiel
lunarg (dans la rubrique "Ubuntu packages" et la dernière release). Ensuite pour vérifier mon installation, j'ai lancé "vulkaninfo" dans l'invite de commande où il m'a gentiment jeté en me disant : "ERROR_INCOMPATIBLE_DRIVER" (je n'ai plus la sortie exacte du terminale mais s'il le faut, je la donnerai). Comme tout grand novice en linux et habitué de Windows, je me suis donc dit que le pilote n'était pas à jour (voire pas installé) et je me suis rendu sur le site d'
amd où j'ai téléchargé le pilote pour la version 18.04. Sauf que, pas de chance, à la fin de l'installation, lors des "actions différées : triggers" (je ne sais absolument pas ce que cela signifie) le terminale me renvoie :
WARNING : amdgpu dkms failed for running kernel
Je teste donc, à tout hasard en rebootant le système et voici les symptômes : résolution en 800x600 au lieu de 1600x900 et impossible de régler la luminosité. En passant, cela correspond sous Windows au moment où je désactive les pilotes (sans la baisse de résolution pour le coup). J'ai aussi toujours la même réponse de "vulkaninfo".
J'ai ensuite essayé les solutions de ce
forum et de
celui-ci (c'est-à-dire : installation de dépéndances tiers et d'une version du kernel antérieur) sans succés.
Après quelques recherches (et réinstallation d'ubuntu pour avoir le kernel récent) je me suis rendu compte que j'essayais d'installer des pilotes propriétaires alors que des pilotes libres étaient disponibles. Or le pilote AMDGPU me parait installé via la commande "lsmod" :
Module Size Used by
uas 24576 0
usb_storage 73728 1 uas
rfcomm 81920 4
ccm 20480 6
cmac 16384 1
bnep 24576 2
nls_iso8859_1 16384 1
amdgpu 4112384 0
amd_iommu_v2 20480 1 amdgpu
gpu_sched 32768 1 amdgpu
edac_mce_amd 32768 0
kvm_amd 94208 0
kvm 655360 1 kvm_amd
irqbypass 16384 1 kvm
crct10dif_pclmul 16384 1
crc32_pclmul 16384 0
ghash_clmulni_intel 16384 0
aesni_intel 372736 6
aes_x86_64 20480 1 aesni_intel
crypto_simd 16384 1 aesni_intel
cryptd 24576 2 crypto_simd,ghash_clmulni_intel
glue_helper 16384 1 aesni_intel
uvcvideo 94208 0
videobuf2_vmalloc 20480 1 uvcvideo
videobuf2_memops 20480 1 videobuf2_vmalloc
videobuf2_v4l2 24576 1 uvcvideo
videobuf2_common 49152 2 videobuf2_v4l2,uvcvideo
videodev 208896 3 videobuf2_v4l2,uvcvideo,videobuf2_common
mc 53248 4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
ath3k 24576 0
joydev 28672 0
btusb 57344 0
asus_nb_wmi 28672 0
asus_wmi 32768 1 asus_nb_wmi
btrtl 20480 1 btusb
input_leds 16384 0
serio_raw 20480 0
btbcm 16384 1 btusb
btintel 24576 1 btusb
sparse_keymap 16384 1 asus_wmi
bluetooth 573440 34 btrtl,btintel,btbcm,bnep,ath3k,btusb,rfcomm
fam15h_power 16384 0
k10temp 16384 0
ecdh_generic 16384 2 bluetooth
ecc 32768 1 ecdh_generic
snd_hda_codec_conexant 28672 1
radeon 1454080 25
snd_hda_codec_hdmi 57344 1
snd_hda_codec_generic 81920 1 snd_hda_codec_conexant
ath9k 151552 0
ledtrig_audio 16384 2 snd_hda_codec_generic,snd_hda_codec_conexant
ath9k_common 36864 1 ath9k
ath9k_hw 475136 2 ath9k_common,ath9k
snd_hda_intel 53248 8
snd_intel_nhlt 20480 1 snd_hda_intel
ath 36864 3 ath9k_common,ath9k,ath9k_hw
ttm 102400 2 amdgpu,radeon
mac80211 847872 1 ath9k
drm_kms_helper 180224 2 amdgpu,radeon
snd_hda_codec 131072 4 snd_hda_codec_generic,snd_hda_codec_conexant,snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core 90112 5 snd_hda_codec_generic,snd_hda_codec_conexant,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
drm 491520 21 gpu_sched,drm_kms_helper,amdgpu,radeon,ttm
cfg80211 704512 4 ath9k_common,ath9k,ath,mac80211
snd_hwdep 20480 1 snd_hda_codec
snd_pcm 102400 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
asus_wireless 20480 0
snd_seq_midi 20480 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 36864 1 snd_seq_midi
snd_seq 69632 2 snd_seq_midi,snd_seq_midi_event
i2c_algo_bit 16384 2 amdgpu,radeon
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
libarc4 16384 1 mac80211
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
snd_timer 36864 2 snd_seq,snd_pcm
snd 86016 27 snd_hda_codec_generic,snd_seq,snd_hda_codec_conexant,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_pcm,snd_rawmidi
ccp 90112 1 kvm_amd
soundcore 16384 1 snd
mac_hid 16384 0
sch_fq_codel 20480 2
parport_pc 40960 0
ppdev 24576 0
lp 20480 0
parport 53248 3 parport_pc,lp,ppdev
ip_tables 32768 0
x_tables 40960 1 ip_tables
autofs4 45056 2
hid_generic 16384 0
usbhid 53248 0
hid 126976 2 usbhid,hid_generic
r8169 81920 0
sdhci_pci 45056 0
psmouse 151552 0
ahci 40960 2
cqhci 28672 1 sdhci_pci
sdhci 57344 1 sdhci_pci
libahci 32768 1 ahci
i2c_piix4 28672 0
realtek 20480 1
wmi 32768 1 asus_wmi
video 49152 1 asus_wmi
Plus tard, en lisant la doc', j'ai compris que le loader de vulkan (vulkan-1.dll pour Windows et libvulkan.so pour linux) n'était tout simplement pas sur mon système. Je me suis donc empréssé d'installer amdvlk via le guide du dépôt de
github. L'installation est un grand succés comparé au retour de "vulkaninfo" :
amdgpu_device_intialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x
Avec bien-sûr, un jolie "ERROR_INITIALIZATION_FAILED" de la part de vulkan. (Au passage, j'ai essayé le loader vulkan de mesa avec les mêmes résultats)
Les diverses recherches via notre ami google m'ont indiquées que "radeon" devait être sur la blacklist :
bug_report. Sauf qu'au rédémarage, je me retrouve avec les mêmes symptômes que précédemment. J'ai quand même testé "vulkaninfo" qui m'a retourné cette fois-ci : "ERROR_OUT_OF_HOST_MEMORY". Avec 8Go de ram et 2Go de vram sans autre chose que le terminal ouvert, ça m'a doucement fais rire.
Pour bien vérifier que ma CG est prise en compte par linux, j'ai quand même fait un petit "lspci" :
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1566
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Mullins [Radeon R4/R5 Graphics] (rev 40)
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Kabini HDMI/DP Audio
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 156b
00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Functions 5:1
00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Functions 5:1
00:02.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 16h Processor Functions 5:1
00:08.0 Encryption controller: Advanced Micro Devices, Inc. [AMD] Device 1537
00:10.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI Controller (rev 11)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 39)
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 39)
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 39)
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 42)
00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 02)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 11)
00:14.7 SD Host controller: Advanced Micro Devices, Inc. [AMD] FCH SD Flash Controller (rev 01)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1580
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1581
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1582
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1583
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1584
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1585
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Jet PRO [Radeon R5 M230] (rev 83)
02:00.0 Network controller: Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter (rev 01)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
Alors, pour tout dire, la ligne "VGA compatible controller" est tout à fait correcte (j'ai un R4 chipset intégré), autant la ligne "Display controller" m'a laissé sur le c** (pardonnez-moi l'expression). En réalité j'ai la CG suivante : Radeon R5 M320. Pour ça, j'en suis sûr et certain car Windows m'a toujours bien affiché mon modèle de CG et vulkan (lors des testes de mes programmes) m'a toujours affiché ce même modèle. Personnelement, je pense que le "M230" affiché ne doit être que la compatibilté du modèle mais je soupçonne que le problème d'installation de vulkan et ceci ne soient liés.
En somme, j'en suis là après une troisième réinstallation d'Ubuntu pour remettre mon système "à neuf" (j'ai aussi fait des testes d'installation avec des pilotes propriétaires ce qui me donne juste la page de chargement d'ubuntu avec une mauvaise résolution : en gros ça ne remplit pas l'écran). J'ai remarqué aussi qu'ubuntu rallumait deux fois mon écran entre le moment où je rentre mon code de session et où j'arrive sur le bureau. Ce qui m'énerve le plus, c'est que m'a CG à l'air d'être la seule à ne pas avoir de pilotes pour ubuntu sur le
site d'amd. Moi qui me faisait une joie de faire de la 3D sous linux sans les bugs intanpestifs de Windaube et de peut-être migrer complètement... J'ai sûrement fait une mauvaise manip' puique je suis vraiment débutant en linux et je n'ai que mes maigres connaissances de programmeur. Et puis, dans tout ce que j'ai lu, notamment sur le dépôt d'amdvlk, ma carte à l'air d'être supportée.
Voilà, merci pour avoir pris le temps de me lire et merci d'avance pour vos réponses.