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 ★
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария