LINUX.ORG.RU

Завести вулкан...

 , ,


0

2

Добрый день.
Пытаюсь включить виртуалку на шиндошсдрайвер вулкан, для поддержки дх11 в стим протон.

Глубокое копание выявило, что нужен драйвер не радеон, а amdgpu.
Окай, включил его в новом ядре. Умничка Xorg сам предложил его при -confgire, но...не старуютъ иксы.

Вопрос...как правильно готовить вулкан на 7970/debian?

самая подозрительная ошибка в дмесг:

 amdgpu 0000:01:00.0: Direct firmware load for amdgpu/tahiti_mc.bin failed with error -2
[   20.059101] amdgpu 0000:01:00.0: si_mc: Failed to load firmware "amdgpu/tahiti_mc.bin"
[   20.059136] amdgpu 0000:01:00.0: Failed to load mc firmware!
[   20.059260] [drm:amdgpu_device_init [amdgpu]] *ERROR* sw_init of IP block <gmc_v6_0> failed -2
[   20.059296] amdgpu 0000:01:00.0: amdgpu_device_ip_init failed
[   20.059329] amdgpu 0000:01:00.0: Fatal error during GPU init
[   20.059362] [drm] amdgpu: finishing device.
[   20.059739] amdgpu: probe of 0000:01:00.0 failed with error -2

судя по табличке генту вики, карта поддерживает GCN1.1+
GCN1.1+
а значит для grub должны быть строчки:
radeon.cik_support=0
amdgpu.cik_support=1
?
сейчас там всё подряд:
GRUB_CMDLINE_LINUX_DEFAULT="scsi_mod.use_blk_mq=1 console=xvc console=tty amdgpu.exp_hw_support=1 radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1"

также напихана каша в /etc/modprobe.d
cat /etc/modprobe.d/local.conf
options amdgpu cik_support=1
options radeon cik_support=0
options radeon si_support=0
options amdgpu si_support=1

cat /etc/modprobe.d/blacklist.conf
blacklist radeon

ичсх, Не работает блеклист, после sudo update-initramfs -u -k all
вот сейчас успешно сижу, иксы загрузились (кстати, где посмотреть используемый иксами драйвер?)в lspci
Kernel modules: radeon, amdgpu

darkenshvein ★★★★★
() автор топика

Судя по логу, тебе нужно установить firmware.

В Debian, например, пакет называется firmware-amd-graphics.

Kron4ek ★★★★★
()
Последнее исправление: Kron4ek (всего исправлений: 1)
Ответ на: комментарий от fornlr

угу, которая стоит на десятку дороже и по скорости прирост почти не даёт.

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от Kron4ek

aptitude search firmware-amd-graphics
i firmware-amd-graphics
стоит он. возможно, конфликтует с тем же самым драйвером, галочки которого я проставлял в ядре

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

Но он у тебя явно ругается на firmware. Поставь стоковое ядро и проверь, как там будет.

Kron4ek ★★★★★
()

c пикабу.
оное нужно?
Также настоятельно советую создать файл
/etc/X11/xorg.conf.d/20-amdgpu.conf c содержимым
Section «Device»

Identifier «AMD»

Driver «amdgpu»

Option «TearFree» «on»

Option «DRI» «3»

EndSection

darkenshvein ★★★★★
() автор топика

самая подозрительная ошибка в дмесг:

Похоже что у тебя нет нужного файла с прошивкой, либо он есть, но не той версии.

сейчас там всё подряд:

Это можешь оставить, лишнее помешать не должно. Ещё потенциально полезная опция: «amdgpu.gpu_recovery=1».

Кроме параметров ядра и фимварей нужен драйвер amdgpu (опенсорсный, а не проприетарный -pro) для xorg.

Ну и желательно, чтобы весь стек (ядро, драйвер иксов, mesa) был как можно более свежим.

У меня вулкан работает на «[AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] [1002:6798]» в федоре с дистрибутивным ядром (4.20.5), месой из гита и драйвером иксов из гита. Но гитовые версии не обязательны, по идее всё должно работать просто с последними релизами.

Deleted
()
Ответ на: комментарий от darkenshvein

Это вряд ли нужно, Xorg сам должен подгружать нужный драйвер. Впрочем ничего плохого не случится, если ты это добавишь. Однако, как ты уже знаешь, проблема не в этом, а в firmware.

Kron4ek ★★★★★
()
Ответ на: комментарий от darkenshvein

c пикабу. оное нужно?

...

Option «TearFree» «on»

Option «DRI» «3»

Судя по вики арчеводов, TearFree должно определяться автоматически, а DRI == 3 по умолчанию в свежих иксах. Так что видимо нет, не надо.

Deleted
()

Ubuntu 16.04, ядро 4.15:

$ lsinitramfs /boot/initrd.img-$(uname -r) | grep tahiti

lib/firmware/radeon/tahiti_rlc.bin
lib/firmware/radeon/tahiti_mc.bin
lib/firmware/radeon/tahiti_pfp.bin
lib/firmware/radeon/tahiti_ce.bin
lib/firmware/radeon/tahiti_me.bin
lib/firmware/radeon/tahiti_smc.bin
Проверь что у тебя тоже самое. Похоже это firmware не в каталоге amdgpu, наверное в этом и проблема.

Aber ★★★★★
()
Последнее исправление: Aber (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ах да, ещё, кроме очевидного (либы mesa, связанные с вулканом), нужно ставить vulkan-loader. Под i686 и x86_64. Название пакета для дебиана не подскажу.

Deleted
()
Ответ на: комментарий от darkenshvein

Блэклист вроде не нужен (УМВР без него).

кстати, где посмотреть используемый иксами драйвер?

/var/log/Xorg.*.log

в lspci

Kernel modules: radeon, amdgpu

Надо смотреть не «Kernel modules», а «Kernel driver in use».

Deleted
()
Ответ на: комментарий от darkenshvein

ну он уже стоит(

Если пакет с фирмварью стоит, но при этом в dmesg драйвер amdgpu всё ещё ругается на фирмварь, то тут возможно несколько причин:

  • Фирмварь не той версии.
  • Ядро старое и в нём что-то сломано.
  • Драйвер грузится на стадии работы из initramfs и там фирмвари нет или она не той версии.

снести все доп. опции из граба и

Не знаю как сейчас, но раньше без этих опций amdgpu не работал на старых картах, так как их поддержка считалась экспериментальной. Даже если это и поменялось, то опции мешать не должны.

Deleted
()
Ответ на: комментарий от fornlr

Проще проапгрейдить ядро. Дело в том что хорошие опенсорсные драйвера сразу под все GCN видеокарты сделать не хватило ресурсов, поэтому начали с более новых видеокарт GCN а старые GCN 1.0/1.1 оставили на десерт. Дистрибутивы со старыми ядрами не нужны, да и просто старыми ядрами пользоваться - себя и Линуса не уважать! Может этот дополнительный стимул проапгрейдиться даже к лучшему

Видеокарты AMD семейств Southern Islands / Sea Islands нормально работают только с непротухшими ядрами! Желательно 4.17 и выше. Диву даюсь что некоторые ненужные дистры до сих пор юзают старьё вроде 4.9/4.12

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

4.9

Это LTS ядро, у него EOL 2023 году. На NAS точно эту штуку оставлю.

Aber ★★★★★
()
Ответ на: комментарий от Aber

ls /lib/firmware/radeon/
тут все бинарники, в том числе и на сабжики
ls /lib/firmware/radeon/|grep -i tah
tahiti_ce.bin
TAHITI_ce.bin
tahiti_k_smc.bin
TAHITI_mc2.bin
tahiti_mc.bin
TAHITI_mc.bin
tahiti_me.bin
TAHITI_me.bin
tahiti_pfp.bin
TAHITI_pfp.bin
tahiti_rlc.bin
TAHITI_rlc.bin
tahiti_smc.bin
TAHITI_smc.bin
TAHITI_uvd.bin
TAHITI_vce.bin

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

/var/log/Xorg.*.log

какую строчку? уже глядел глядел, не нашёл))

Примерно вот так это выглядит:

[im@im-desktop ~]$ grep -i amdgpu /var/log/Xorg.0.log | head -n 20
[    24.902] (II) Applying OutputClass "AMDgpu" to /dev/dri/card0
[    24.902] 	loading driver: amdgpu
[    24.902] (==) Matched amdgpu as autoconfigured driver 0
[    24.902] (II) LoadModule: "amdgpu"
[    24.902] (II) Loading /usr/lib64/xorg/modules/drivers/amdgpu_drv.so
[    24.908] (II) Module amdgpu: vendor="X.Org Foundation"
[    24.990] (II) AMDGPU: Driver for AMD Radeon:
	All GPUs supported by the amdgpu kernel driver
[    24.992] (II) AMDGPU(0): [KMS] Kernel modesetting enabled.
[    24.996] (II) AMDGPU(0): Creating default Display subsection in Screen section
[    24.996] (==) AMDGPU(0): Depth 24, (--) framebuffer bpp 32
[    24.996] (II) AMDGPU(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[    24.996] (==) AMDGPU(0): Default visual is TrueColor
[    24.996] (==) AMDGPU(0): RGB weight 888
[    24.996] (II) AMDGPU(0): Using 8 bits per RGB (8 bit DAC)
[    24.996] (--) AMDGPU(0): Chipset: "AMD Radeon HD 7900 Series" (ChipID = 0x6798)
[    25.391] (II) AMDGPU(0): glamor X acceleration enabled on AMD Radeon HD 7900 Series (TAHITI, DRM 3.27.0, 4.19.12-301.fc29.x86_64, LLVM 7.0.0)
[    25.391] (II) AMDGPU(0): glamor detected, initialising EGL layer.
[    25.391] (==) AMDGPU(0): TearFree property default: auto
У тебя драйвер иксовый amdgpu установлен?

Deleted
()
Ответ на: комментарий от darkenshvein

ls /lib/firmware/radeon/

тут все бинарники, в том числе и на сабжики

Судя по логу из первого поста, amdgpu ищет фирварь в другой директории. То есть /lib/firmware/amdgpu/ вместо /lib/firmware/radeon/. Там у тебя есть файлы?

Возможно достаточно будет просто скопировать. У меня в системе файлы tahiti_mc.bin одинаковые:

$ sha1sum /lib/firmware/*/tahiti_mc.bin
feec25c51f2594b60ebfbaffaac98927359ca156  /lib/firmware/amdgpu/tahiti_mc.bin
feec25c51f2594b60ebfbaffaac98927359ca156  /lib/firmware/radeon/tahiti_mc.bin

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Я опыт на ubuntu поставил, у меня не получилось посредством update-initramfs -u, сборка нового initrd игнорирует скопированные файлы. Так что ТС нужно искать новый пакет где все собрано либо разбираться как вообще происходит сборка initrd.

Aber ★★★★★
()
Ответ на: комментарий от Aber

А если вообще в initramfs не добавлять ни radeon.ko, ни amdgpu.ko? На ранней стадии загрузки графика вроде не очень то и нужна.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от fornlr

Почему же? На свежих ядрах 4.17+ эти GCN1.0/1.1 прекрасно работают! Во всяком случае у меня есть древняя GCN1.0 в ноуте, со старыми ядрами иногда ловил kernel panic при использовании определённых функций, а на новых всё замечательно

SakuraKun ★★★★★
()
Ответ на: комментарий от Deleted

угугу
aptitude search video-amd
v xserver-xorg-video-amd:i386 -
i A xserver-xorg-video-amdgpu

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

Вот как раз сам драйвер для xorg достаточно только для основной архитектуры, то есть amd64.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от darkenshvein

ls /lib/firmware/radeon/
тут все бинарники, в том числе и на сабжики

онглийским же языком драйвер пишет - хочет видеть фирмвари в amdgpu. а что там в radeon - его не волнует.

и да, без фирмварей работать не будет.

NiTr0 ★★★★★
()
Ответ на: комментарий от Aber

да, сучка такая, ведь не там ищет!
спасибо

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от NiTr0

я понял поправлю!

и да, без фирмварей работать не будет.

дк это ведь и есть фирмавари? только пути не те

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от Aber

да, tahiti_mc.bin находится в папке
/lib/firmware/radeon
но меня сомнение взяло. а это не от драйвера радеон? или просто путь неверный?

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

mironov_ivan выше хеш суммы firmware привел, суммы одни, значит файлы firmware не отличаются.

anonymous
()

Спасибо. итак, примерное решение для дебиана
1. компиляем ядро с нужными драйверами
2. прописываем в граб
amdgpu.exp_hw_support=1 radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1

3. копируем Таити или что там у вас из
/lib/firmware/radeon
в
/lib/firmware/amdgpu
прописывание в options update-initramfs -u -k all кажись не нужно

4. по надобности генерируем xorg.conf c помощью Xorg -configure

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от darkenshvein

Если в дебиане такие проблемы с ядрами/драйверами, возможно лучше сменить дистр? Тем более что там теперь непотребства творятся - Группа по антихарассменту из Debian удалила пакет Weboob за неполиткорректное имя

SakuraKun ★★★★★
()
Ответ на: комментарий от darkenshvein

фирмвари лежащие хрен знает где - то же что и их отсутствие :)

NiTr0 ★★★★★
()
Ответ на: комментарий от darkenshvein

а фирмвари не зависят от драйвера.

NiTr0 ★★★★★
()
Ответ на: комментарий от SakuraKun

Подобная ситуация для карт GCN 1.0 характерна для других дистрибутивов. Debian, Ubuntu, Fedora, Archlinux - все они требуют ручной конфигурации. Хорошо то, что на решение проблемы поддержки старых карт уходит несколько минут.

anonymous
()
Ответ на: комментарий от anonymous

кстати, теперь надо восстанавливать стим, зависимости которого я похерил, когда обновлял мезу из тестинга, хехехе...

Steam needs to install these additional packages:
libgl1-mesa-dri:i386, libgl1-mesa-glx:i386

такие невзрачные и столько пакетов гробят!

darkenshvein ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Подобная ситуация для карт GCN 1.0 характерна для других дистрибутивов

«характерна для других дистрибутивов» со старыми софтом/драйверами. после недавней свежей установки я ничего не настраивал, но мой графоний прекрасно работает на ноутбучной GCN1.0 карте. Если вам требуются дополнительные телодвижения, то или дистрибутив со старьём или дефолтные настройки плохие что вам их исправлять нужно. Но зачем тогда сидеть на таком дистре?

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

я конечно понимаю, что дистрибутив - это дело привычки, но может быть хватит поедать кактусы и мучать нас своими вопросами?

SakuraKun ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.