Случайно наткнулся на материал, который выглядит так, как я хотел когда-то написать сам, но не осилил.
Сам лично, я строго по нему не делал, потому не могу дать гарантию что это 100% рабочая пошаговая инструкция. Но выглядит полностью созвучно со всем моим опытом в данном вопросе - т.е. должно работать. Принципиальных косяков я тут не вижу. Причем еще разжевано что для чего делается (в большинстве мест).
Потому, оставляю ссылку, как настоятельно рекомендуемую к прочтению по данному вопросу: https://noostyche.ru/blog/2021/02/11/qe ... ty-nvidia/
Тем более, это единственный попавшийся мне толковый материал на данную тему на русском языке.
Руководство по пробросу видеокарты для Mint 20.х в QEMU-KVM
-
Автор темы - Сообщения: 4504
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 99
- Благодарил (а): 51 раз
- Поблагодарили: 1992 раза
- Контактная информация:
Руководство по пробросу видеокарты для Mint 20.х в QEMU-KVM
Небольшое уточнение: по личному опыту, для карт GTX 950 и GTX 1650 не строго обязательны пункты с включением MSI и установкой драйвера в безопасном режиме. Во всяком случае таких последствий пропуск этих пунктов у меня не вызывал, так что это скорее ситуативно, и от железа зависит. А вот про обход Error 43 - это обязательно к исполнению, без этого даже начать установку драйвера не получится. Так же у карт серий GTX 16хх и новее не два, а 4 устройства которые нужно пробрасывать вместе.
Так же, в качестве гостя по этому рецепту можно использовать Win 8.1. (И линуксы, но это отдельный разговор.)
А вот Win7 - не пытайтесь зря. Не получится установить в режиме UEFI (Несовместимость с реализацией EFI в прошивке OVMF. Причем баг на стороне Win7 а не прошивки - нарушает стандарт).
Так же, в качестве гостя по этому рецепту можно использовать Win 8.1. (И линуксы, но это отдельный разговор.)
А вот Win7 - не пытайтесь зря. Не получится установить в режиме UEFI (Несовместимость с реализацией EFI в прошивке OVMF. Причем баг на стороне Win7 а не прошивки - нарушает стандарт).
-
Автор темы - Сообщения: 4504
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 99
- Благодарил (а): 51 раз
- Поблагодарили: 1992 раза
- Контактная информация:
Руководство по пробросу видеокарты для Mint 20.х в QEMU-KVM
Нашел интересный материал как дополнение, к сожалению уже на английском, но крайне ценный тем, что в нем описано динамическое переключение видеокарты. Т.е. при старте машины она у хоста, можно запускать игры или гонять CUDA и прочее, а при необходимости - отвязывается от хоста и подключается к виртуалке без перезагрузок. Это не отменяет необходимости иметь две видеокарты на хосте, но увеличивает гибкость всего сетапа на порядок.
https://github.com/bryansteiner/gpu-pas ... h-tutorial
Сам еще не тестировал (и не у всех заработает), но это законченный рецепт, а не разрозненные намеки, как в большинстве случаев.
Так же полезная ссылка (упоминается в предыдущем материале но на всякий случай): https://passthroughpo.st/simple-per-vm- ... ok-helper/
Скрипты для автоматизации задач при запуске и остановке VM. (Например чтобы автоматом частоту процессора на режим performance переключать при старте, но и для привязки видеокарты годится).
https://github.com/bryansteiner/gpu-pas ... h-tutorial
Сам еще не тестировал (и не у всех заработает), но это законченный рецепт, а не разрозненные намеки, как в большинстве случаев.
Так же полезная ссылка (упоминается в предыдущем материале но на всякий случай): https://passthroughpo.st/simple-per-vm- ... ok-helper/
Скрипты для автоматизации задач при запуске и остановке VM. (Например чтобы автоматом частоту процессора на режим performance переключать при старте, но и для привязки видеокарты годится).
-
Автор темы - Сообщения: 4504
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 99
- Благодарил (а): 51 раз
- Поблагодарили: 1992 раза
- Контактная информация:
Руководство по пробросу видеокарты для Mint 20.х в QEMU-KVM
Наконец провел эксперимент, и вполне успешно: по этой методике получилось динамически отвязать GeForce 1650 от vfio. У меня в общем-то задача стояла обратная обычной - мне нужно, чтобы карта была почти всегда привязана к vfio для qemu/kvm, но иногда - использовать ее для рендера в blender (cuda/OptiX) непосредственно на хосте. При этом не стоит задача перелючить на nvidia вывод иксов - нужен лишь чистый рендер в cuda. Так вот, результат используя эту инструкцию с двумя скриптами unbind_vfio.sh и bind_vfio.sh + kvm.conf: получается прекрасно. Но hook-и для автоматизации даже не ставил, переключаю вручную запуском скриптов лично.
-
Автор темы - Сообщения: 4504
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 99
- Благодарил (а): 51 раз
- Поблагодарили: 1992 раза
- Контактная информация:
Руководство по пробросу видеокарты для Mint 20.х в QEMU-KVM
После апгрейда до RTX 3060 выяснил 2 вещи:
- У нее опять 2 устройства для проброса, а не 4 - как у 1650.
- У этой карты (и по слухам - у остальных 3ххх тоже) есть специфическая особенность в прошивке. Если не загружен драйвер (или загружен vfio-pci) - карта работает в профиле энергопотребления P0 - максимальном, и не сбрасывает частоту ядра и памяти. Т.е. даже ничего не делая она тянет ~43Wt. Тогда как в полноценном idle на P8 она тянет лишь 12-13Wt. Чтобы решить эту проблему (а мои жаба с хомяком в один голос ругаются, что это именно проблема), нужно:
1. Освоить динамическое переключение драйвера как описано в руководстве из этого сообщения: Руководство по пробросу видеокарты для Mint 20.х в QEMU-KVM (Пост slant #120779). На самом деле ничего особо сложного - у меня заработало с полпинка и первого раза.
2. Добавить в автозагрузку для своего пользователя вызов переключения на nvidia. (чтобы постоянно был загружен именно он, а vfio-pci загружать только перед стартом VM). Но изначально для старта системы лучше оставить конфиг с vfio-pci - чтобы иксы не пытались на nvidia запускаться (а продолжали стартовать на второй отдельной карте). Т.к. динамическое переключение все равно требует переключаемую карту полностью освобождать от всех задач, в том числе и иксов.
3. В скрипт который делает переключение на драйвер nvidia добавить такую строчку:
P.S. Когда загружается виртуалка с виндой, управлением профилями питания карты занимается драйвер этой самой винды - т.к. vfio-pci это просто заглушка. И под виртуальной виндой idle тоже работает нормально, лишнего жора нет.
- У нее опять 2 устройства для проброса, а не 4 - как у 1650.
- У этой карты (и по слухам - у остальных 3ххх тоже) есть специфическая особенность в прошивке. Если не загружен драйвер (или загружен vfio-pci) - карта работает в профиле энергопотребления P0 - максимальном, и не сбрасывает частоту ядра и памяти. Т.е. даже ничего не делая она тянет ~43Wt. Тогда как в полноценном idle на P8 она тянет лишь 12-13Wt. Чтобы решить эту проблему (а мои жаба с хомяком в один голос ругаются, что это именно проблема), нужно:
1. Освоить динамическое переключение драйвера как описано в руководстве из этого сообщения: Руководство по пробросу видеокарты для Mint 20.х в QEMU-KVM (Пост slant #120779). На самом деле ничего особо сложного - у меня заработало с полпинка и первого раза.
2. Добавить в автозагрузку для своего пользователя вызов переключения на nvidia. (чтобы постоянно был загружен именно он, а vfio-pci загружать только перед стартом VM). Но изначально для старта системы лучше оставить конфиг с vfio-pci - чтобы иксы не пытались на nvidia запускаться (а продолжали стартовать на второй отдельной карте). Т.к. динамическое переключение все равно требует переключаемую карту полностью освобождать от всех задач, в том числе и иксов.
3. В скрипт который делает переключение на драйвер nvidia добавить такую строчку:
/usr/bin/nvidia-smi -pm 1
- это включит режим persistence и запретит драйверу выгружаться если для видеокарты нету никаких задач. А он будет выгружаться т.к. в подобном сетапе рабочий стол отрисовывает другая карта (у меня - intel-овское видео в процессоре), а 3060 можно использовать для всяких CUDA приложений - нейросеток, рендера из Blender и т.д. Причем здесь бонусом идет большее количество доступной VRAM и немного лучшая скорость, чем из под винды, или если обычная графика в хост-системе тоже на ней же (ресурсы ядер не заняты совсем).P.S. Когда загружается виртуалка с виндой, управлением профилями питания карты занимается драйвер этой самой винды - т.к. vfio-pci это просто заглушка. И под виртуальной виндой idle тоже работает нормально, лишнего жора нет.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя