LINUX.ORG.RU

Hot-unplug eGPU

 , , ,


1

1

Имеется:

  1. Archlinux 6.11.9-arch1-1
  2. Ноут на 7640U с AMD Radeon 760M
  3. Gnome
  4. Wayland
  5. AMD RX580
  6. TH3P4G3

Подключение egpu не проблема, всё детектится запускается и играется. Gnome настроен предпочитать AMD Radeon 760M. Игры через DRI_PRIME=1 играются на внешней карте. Проблема когда нужно отключить egpu. Убеждаемся что никто не использует egpu через fuser -v /dev/dri/card0, и отключаем, через какое-то время (меньше минуты) всё замирает и повисает. Последние сообщения:

kernel: amdgpu 0000:05:00.0: amdgpu:
                                   last message was failed ret is 65535

пробовал через echo 1 | sudo tee /sys/bus/pci/devices/0000:00:03.1/remove что на саму видюху, что на USB4 порт, та же фигня.

Вопрос, как правильно извлечь видеокарту без перезагрузки?


Использовать Windows, на полярисах (RX 580) ни ресет, ни unbind amdgpu нормально не работают, боролся-боролся, купил RX 7600 - проблема пропала.
Насколько знаю, ограничения такой старой видеокарты и архитектуры ядра, попытка хоть как-то её отвязать от ядра (и ресетнуть) бросает kernel NULL pointer dereference.

В принципе можно ещё vendor-reset попробовать, может поможет.

Подозреваю, что такая же проблема и у меня была: AMD Polaris не умеет в GPU Reset?

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

Спасибо, vendor-reset не помогает при первом взгляде, но ещё покопаю. Покупать RX 7600 как-то не хочется, не больно много играю, да и ничего требовательного нет. 580 справлялась на ура, всё равно большинство в проц упирается.

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

Из вариантов есть пробрасывать карту в VM с Windows/Linux - так, чтобы на хосте она вообще не светилась.

vendor-reset не помогает при первом взгляде

Там есть небольшие трудности с настройкой, в логах строки с ним появляются при ресете GPU?

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

Там есть небольшие трудности с настройкой, в логах строки с ним появляются при ресете GPU?

нет, только что модуль загрузился и ядро tainted

Nov 19 15:47:05 archlinux kernel: vendor_reset: loading out-of-tree module taints kernel.
Nov 19 15:47:05 archlinux kernel: vendor_reset: module verification failed: signature and/or required key missing - tainting kernel
Nov 19 15:47:05 archlinux systemd-modules-load[177]: Inserted module 'vendor_reset'
Nov 19 15:47:05 archlinux kernel: vendor_reset_hook: installed
ksim
() автор топика
Последнее исправление: ksim (всего исправлений: 1)
Ответ на: комментарий от ksim

Не знаю что помогло, но заработало вроде и отключил, и подключил и поиграл, и опять отключил.

echo 1 | sudo tee /sys/bus/pci/devices/<адрес карты>/remove извлекает и потом вытаскиваешь кабель и всё норм

Может vendor_reset заработал магически, но в логах пусто

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

У vendor-reset правила udev для некоторых карт кривые: vendor_id/device_id указаны не в том регистре, поэтому не срабатывают и не прописывается метод сброса. Возможно, это твой случай: автоматом не прописался, а указанный ручками - сработал.

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

Спасибо, Возможно это! попробую. Так как у меня полное отключение, а не то что в виртуалке работало, а потом теперь надо linux драйвер загрузить, возможно проблема не в vendor_reset и не в reset bug, и такое извлечение сработает лучше.

ksim
() автор топика