Как стать автором
Обновить

GPU (desktop/laptop) Passthrough (Проброс видеокарты в ВМ) в ProxMox. Нюансы настроек. переезжаем в Linux

Время на прочтение 8 мин
Количество просмотров 27K
image

Предыдущие статьи «Как из домашнего ПК средствами виртуализации сохранить игровую систему» и Проброс видеокарты в ноутбуке. Laptop GPU Passthrough породили множество откликов и значительный интерес к теме виртуализации. Благодаря Вашим вопросам и сообщениям на Хабрахабре и Тостере возникло понимание, что тему необходимо расширить и дополнить, а потому приглашаю всех Вас под кат, что бы обсудить нюансы этой темы, и разобрать типовые ошибки, проблемы и пути их решения для всех тех, кому это интересно с практической точки зрения ;)

1. Актуализация статьи о настройке проброса ВК в ВМ на десктопе от 27 января 2019


Здесь нужно сказать следующее:

1.1 т.к. статья была написана когда актуальная версия ProxMox была 5-я, а на текущий момент уже 7-я, то в настройки вкрался ньюанс, а именно: начиная с 6-й версии ProxMox'а для случаев когда юзер для ВМ использует БИОС UEFI, а иначе ВК не пробросить в ВМ, необходимо при конфигурировании оборудования гостевой виртуальной машины добавлять EFI диск, который занимает 4.19Мб и хранит информацию о настройка виртуального БИОСа.

image

Остальные настройки и положения из той статьи актуальны по сей день без изменений.

1.2 Так выглядит пример настроенной системы, на которой я уже живу 3 года без переустановки,
(снято на тапок, освещение тоже не очень, видео годится только в качестве иллюстрации)


2. Актуализация статьи о настройке проброса ВК в ВМ на ноутбуке от 6 сентября 2021


Здесь нужно сказать следующее:
2.1 О MUXless и MUXed организациях подключения дисплея к видеокартам. Дело в том что я не совсем верно, как правильно меня поправили в комментариях к моей статье, выразился. Т.е. проброс ВК в ВМ возможен во всех случаях (MUXless и MUXed), со своими нюансами естественно, при условии если железо поддерживает соответствующие технологии:

image

2.2 Второе замечание из комментариев к статье: Лучше в кач-ве контроллера пользовать virtio scsi single, но тогда при установке системы потребуется вторым диском DVD подключать диск с драйверами и подсовывать драйвера во время установки, либо сперва установить в гостевой ВМ Windows на IDE/SATA виртуального диска, установить в системе драйвера и в файле настроек изменить подключение виртуального диска на SCSI

2.3 Так выглядит пример настроенной системы на ноутбуке
(снято на тапок, освещение тоже не очень, видео годится только в качестве иллюстрации)


Некоторые нюансы по настройкам железа


3.1 Проброс в ВМ клавиатуры/мыши (порт PS/2) или клавиатуры ноутбука (подключенной шлейфом к мат.плате) (не usb устройства):
сперва вводим команду в консоли (при необходимости прав добавляя sudo)
## dmesg | grep input
Ищем в листинге текста запись навроде

input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2

Запоминаем цифру 2 в конце, она может быть и другой. Потом в файл настроек ВМ в строку добавляем/правим:
args: -object 'input-linux,id=kbd,evdev=/dev/input/event2,grab_all=on,repeat=on'
вставляя 2 в конец evdev=/dev/input/event2

Для мыши/тачпада — аналогично.

3.2 Что касается USB устройств там все проще, устройства прокидываются прямо из веб формы по ID или же целиком можно прокинуть порт. Однако есть нюанс — если Вы по каким-либо причинам не можете как и я прокинуть аудиоустройство в ВМ, то проброс порта/устройства через USB решает эту проблему, но звук может начать отваливаться через некоторое время работы, шипеть/гудеть и прочие… прочее, в то же время на нативной системе все будет замечательно. В этом случае необходимо пробрасывать не порт/устройство, а сам контроллер USB как PCIe устройство по методу указанному в статье о пробросе ВК в ВМ, только без доп.настроек конфигов системы. И все резко наладится. Но в то же время через хост после запуска ВМ с такими настройками пробросить другие устройства с этого контроллера больше не получится.

Дополнительно с 6й версии ProxMox было добавлено виртуальное аудио-устройство

image

которое будет работать только в том случае, если Вы будете админить ВМ через SPICE, т.е. через WEB-интерфейс или специальный клиент SPICE в системе, навроде RDP. Кроме того сам звуковой контроллер убран из lspci выдачи в консоли так что если нужен звук — заводим или PCI-E звуковоую карту или PCI-E USB контроллер с внешней USB звуковой картой. Возможно в будующем эта проблема будет решена. Да, звук будет работать нормально при пробросе USB звуковой карты как порта с девайсом, но микрофон при этом работать не будет. Нормальная работа микрофона без наводок возможна только с полным пробросом контроллера, при этом звук будет тихим.

3.3 Жесткие диски можно пробрасывать как через проброс контроллера как PCIe устройство по методу указанному в статье (не рекомендую пробрасывать контроллер интегрированный в материнскую плату, только подключенные к PCIe), в этом случае диски выпадают для хоста и управление ими полностью на себя берет гостевая ВМ, либо напрямую:
заходим в
## cd /dev/disk/by-id
через dir смотрим листинг…
копируем строки вида ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1АС9SХ9, в которой прописан интерфейс подключения, марка и номер серии жесткого диска. Затем открываем Файл конфигурации ВМ и пишем:
sata1: volume=/dev/disk/by-id/ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1АС9SХ9
и все работает, при этом учитывайте, что sata0-sata5, т.е. для одной ВМ число подключаемых таким образом дисков, включая виртуальных, не может превышать 6шт. В гостевой системе такие диски имеют урезанный QEMU SMART. который каждый раз при старте ВМ обнуляется и совершенно не информативен. SMART таких жестких дисков можно мониторить через WEB-интерфейс ProxMox'а или другими методами хоста на Linux:

image

4. Некоторые замечания по настройке Debian Linux и установке Софта


Все что будет написано дальше — спорно, т.к. автор еще только учится и разбирается в новой для себя ОС Linux. В тех случаях если написанное не является верным — прошу наставить на путь истинный. Спасибо.

4.1 Linux при настройке локального времени почему-то считает что время установленное в BIOS это время по Гринвичу (GMT+0), в соответствии с локализацией к этому времени добавляются еще свой родной часовой пояс, MSK (GMT+3) в случае автора. В то время как Windows время из BIOS считает местным, в зависимости от настроек часового пояса в системе юзера. Таким образом, если Linux стоит дуал-бутом в Windows и Linux, местное время в двух ОС принимает разницу в 3 часа. Немного неудобно.

4.2 Локализация.
4.2.1 При выборе настроек региона в KDE необходимо выбирать те, которые написаны кириллицей «Россия — русский (ru_RU)». Если выбирать «Russia (ba_RU)», «Russia (cv_RU)», «Russia (myv_RU)», то это русскоязычные настройки для республиканских народов РФ, в частности Чувашей и других. Я ничего не имею против, но я потерял прилично времени прежде чем разобрался почему у меня проблемы с кодировкой. Хотя возможно это именно то что Вы искали.

image

4.2.2 Для того что бы переключаться с английской расскладки на русскую и обратно необходимо добавить русскую раскладку. Для этого в настройках жмем кнопку Add, после чего выбираем русскую раскладку, переключение между раскладками настраивается тут же в блоке «Shortcuts for switching layout» -> «Main shortcuts». Дополнительно можно настроить нюансы переключений между языками.

Маленький нюанс. В Windows при смене языка и если нужно сразу вводить текст с заглавной буквы я просто жму Ctrl+Shift, затем отпускаю клавишу Ctrl и, удерживая Shift, последующие символы вводятся заглавными буквами. Здесь это не так, после переключения, если не нажимать Shift повторно, а продолжать удерживать, то вводимые буквы набираются в нижнем регистре. Немного бесит, если честно, если Вы знаете как решить данную проблему или обхитрить систему — прошу дать знать. Спасибо.

image

4.2.3 Для того что бы выставить приоритет на хосте для WiFi перед LAN необходимо использовать метрики. Возможно я перемудрил, но зато работает:
## nano /etc/network/interfaces
auto lo
iface lo inet loopback

auto enp7s0f1
iface enp7s0f1 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.11.200/24
        gateway 192.168.11.1
        bridge-ports enp7s0f1
        bridge-stp off
        bridge-fd 0
        metric -100

auto wlp0s20f3
        metric 100

4.3 Установка привычного или аналогичного софта в Linux.
4.3.1 Установка браузера Vivaldi. Не смотря на то что многое в линуксе решается через консоль, хочется перед глазами иметь софт, по крайней первое время, максимально похожий на тот чем пользуешься в Windows. В данном случае проблемы начинаются сразу. Установка Vivaldi из deb-пакета не прокатила, пришлось подключать репозиторий:

APT (Debian, Ubuntu, Mint…)
Import the public key (to allow for verification of the APT repository)–triple-click to select the entire line

wget -qO- https://repo.vivaldi.com/archive/linux_signing_key.pub | sudo apt-key add -

Add the repository

sudo add-apt-repository 'deb https://repo.vivaldi.com/archive/deb/ stable main'

Install Vivaldi

sudo apt update && sudo apt install vivaldi-stable

help.vivaldi.com/desktop/install-update/manual-setup-vivaldi-linux-repositories

4.3.2 Установка Discord из deb-пакета не прокатила, пришлось искать пути решения, которые были найдены в ролике на YouTube


4.3.3 Несколько слов об софте для которого пришлось искать аналоги:
а. софт на который я нашел аналоги к которым можно привыкнуть:

  • Total/Windows Commander — Double Commander как самый продвинутый из всех авриантов, но есть и порт FAR manager for linux.
  • MS Office — Libra Office/WPS Office здесь сразу стоит принять что VBA макросы полноценно не заведутся нигде, если нужны макросы, то придется осваивать JS и другие языки, собственно макросовая тема под Линуксом сильно уступает в кол-ве контента для VBA. При этом так же нужно быть готовым к тому что офисные файлы будут отображаться с возможным искажением или даже потерями строк, по сравнению с открытием тех же файлов на Windows в MS Office. Что бы что-то посмотреть сойдет, то что бы работать и быть уверенным в том что на любом конфиге на любом офисном софте один и тот же файл откроется одинакого… к сожалению нет. Здесь я только вижу путь проектировщика — после любых правок проекта выводи все листы на печать в файл PDF-формата. Зато печататься у всех будет одинаково.
  • Paint — KolourPaint/Krita — для простых манипуляций с графическими файлами.

б. софт на который я пока что не нашел для себя удобных аналогов:

  • WinRaR — RAR под Линукс существует и его даже можно скачать, но это приложение для консоли. Возможно можно будет заколхозить с Double Commander'ом, но пока не дошли руки.
  • Notepad++ — шикарный текстовый редактор, аналог которого сложно найти под Линукс. Говорят есть версия flatpak, но как ставить такой софт я еще не разобрался.
  • ACDSee/FastStone — программа для просмотра изображений и простенького их редактирования. Под Линуксом портированных версий не имеют.

5. Ноутбук, температуры и профили для карлсонов


Собственно эта тема ищется сложнее всего, как и софт по данной тематике. Собственно ее можно разбить на 2 части:
5.1 Мониторинг температур. Здесь выручает консоль, т.к. есть даже статья на данную тематику, но дьявол кроется в деталях. После установки и настройки lm-sensors какие-никакие датчики температур начинают работать и опознаваться системой, можно даже Psensor поставить или мониторить из-под консоли, или поставить и настроить Conky. которая опять же настраивается даже не через консоль, а конфигурационный текстовый файл…

И вот мы решили мониторить температуру:

image

И возникают одни вопросы, что такое сенсоры: temp1, Sensor 1, Sensor 2? Где тут температуры дискретной ВК и общей на ЦП!?

fancontrol у меня не установился… т.е. управлять карлсонами деже из командной строки не могу и стоит надеяться только на пресеты БИОСа… после удобного control center 3.0 это фиаско, и одна из двух вещей которые сдерживают окончательный переход с Windows на Linux…

5.2 Андервольтинг/Даунвольтинг — управление множителем и питанием процессора.
То ли тема не популярна под Линукс, то ли мне нужно пройти пару семестров о поиске в google, аналогов IntelXTU/TrottleStop под линукс днем с огнём не сыщешь…

5.3 Данный пункт относится к ноутбукам Clevo.
Несмотря на то, что сам ОЕМ производитель данные ноутбуки никогда сам не сертифицировал для Линукс и не выпускал для них драйверов под Линукс и софт, тем не менее некоторые ноутбуки, в т.ч. и игровые, продаются двумя фирмами с предустановленными Линукс Дистрибутивами. Это System76 и Tuxedo.

Ссылка на библиотеку для ControlCenter и софт Tuxedo:
packages.ubuntu.com/groovy/amd64/libappindicator3-1/download
www.tuxedocomputers.com/en/Infos/Help-and-Support/Instructions.tuxedo
deb.tuxedocomputers.com/ubuntu/pool/main/t
github.com/tuxedocomputers

Ссылка на софт System76:
support.system76.com/articles/system76-software
github.com/system76

System76 пилит софт только под Arch и Fedora Linux, Tuxedo делает софт еще и под Ubuntu, но судя по всему 100% совместимости нет. fancontrol от Tuxedo в Debian ставится отказывается, в то время как tuxedo-control-center встал со скрипом… видимо в данном случае совместимость софта между Ubuntu и Debian не полноценная, а может быть я чего-то не знаю/не учел.

image

P.S.


Несмотря на то что графические интерфейсы Linux в последнее время здорово продвинулись и обгоняют Windows проблемы с софтом и настройками все еще присутствуют. На текущий момент настроить проброс ВК в ВМ, ИМХО, проще чем подчинить параметры питания и скорость вращения профилей куллера в ноутбуке…

Новый день принесет новый опыт. Всем добра, берегите себя и своих близких, а так же Ваши гаджеты.
Теги:
Хабы:
+10
Комментарии 25
Комментарии Комментарии 25

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн