Vmware как настроить видеокарту

Проброс видеокарты в виртуальную машину

Говорят, что современные аппаратные технологии поддержки виртуализации (VT-d у Intel, IOMMU у AMD) позволяют отдавать физическое устройство на шине PCI в непосредственное управление виртуальной машине. В том числе видеокарту.
Воображение рисует такую конфигурацию: настольный сервер с гипервизором, на нем запускается гостевая пользовательская операционная система, имеющая доступ к необходимым устройствам ввода-вывода, один-два неприхотливых сервера по мере надобности, ну и сколько надо виртуалок для бесчеловечных экспериментов. Управляем гипервизором через консоль в гостевой ОС либо удаленно, с ноутбука, скажем.
Вдохновленный этой картиной, я решил попробовать, но оказалось, что проброс (passthrough) видеоадаптера — задача не совсем тривиальная. Только месяца через три боданий с железом и чтения форумов удалось получить положительный результат. В качестве гипервизора пробовал VMware и Xen. Получилось только с Xen.

Коротко.
Железо:

  • Материнская плата Gigabyte GA-Q67M-D2H-B3
    Прошивка BIOS — F5
    Setup: CPU->Intel Virtualization Technology=ON
    Setup: Chipset->North Bridge->VT-d=ON
  • Процессор Intel Core i5 2500 3.3 GHz
  • Память 16 GB
  • ATI Radeon HD 3470 в первом слоте PCIe, используется гипервизором
  • ATI Radeon HD 3450 во втором слоте PCIe, отдается гостевой ОС
  • Сетевой адаптер Intel в слоте PCI

Софт:

  • XCP (Xen Cloud Platform) 1.0 (XenServer build 42052c)
  • Citrix XenCenter для управления
  • Windows 7 64 bit в качестве гостевой ОС, ATI Catalyst 12.1

Поначалу я долго экспериментировал с VMware vSphere 5.0. Собственно, аппаратная конфигурация подбиралась именно под нее. По дороге открылся ряд интересных подробностей: например, VT-d должен поддерживаться и процессором (пишут, что процессоры с индексом K не годятся), и чипсетом и материнской платой. С видеокартами вообще беда: известно, что с большинством этот фокус не проходит, с некоторыми (довольно короткий список) у одних получается, у других нет. Долгое и содержательное (хотя не слишком радостное) обсуждение было тут:
VMware Communities: VMDirectPath and ATI Radeon. Radeon 3450 ходил, пожалуй, в фаворитах как одна из самых пробрасываемых карт.
Я перебрал приличное количество разнообразных комбинаций железа. В конкурсе участвовали две материнские платы, три видеокарты плюс интегрированное видео SandyBridge (IGD), три сетевых адаптера и один процессор. Несколько раз я бросал эти бесплодные попытки на неделю-другую, потом придумывались какие-то варианты. По дороге был один момент, когда почти получилось: виртуалка правильно определила монитор, но дальше дело не пошло. Уперся в то, что карта вроде бы нормально пробрасывалась в виртуалку, и в девайс менеджере показывалась ровно, но Каталист упорно отказывался иметь с ней дело. Карта как живая, но не работает.

Можно было попробовать много чего еще: Windows XP и Linux в качестве гостевых систем (ставил Windows 7 в 32 и 64-разрядном исполнении), добыть очередную видеокарту… В конце концов плюнул и решил зайти с другого конца, попробовав другой гипервизор. Не мудрствуя, взял то, что на виду: Xen в составе Xen Cloud Platform(XCP).
XCP поставился без сучка без задоринки.

На некоторое время поставил в тупик вопрос: как этой системой рулить? В смысле, должна же быть какая-нибудь консоль управления, желательно под винды? Поковырявшись полдня с условно-штатным OpenXenManager я пришел к мысли, что то ли лыжи не едут, то ли эта кроссплатформенная тулза на винде не живет. Один или два раза она сконнектилась с сервером, но померла где-то в процессе работы, остальные разы глухо висла при коннекте, сливая неудежимый поток исключений в консоль Питона.
К счастью, более широкий взгляд в окружающий интернет открыл мне, что Citrix XenCenter прекрасно может рулить opensource-ным Xen-ом, а сам вполне бесплатен. Правда, при коннекте кричит, что через N дней у вашего сервера истечет Evaluation period, но знающие люди пишут, что это он просто не в курсе насчет opensource редакции сервера, а на самом деле все будет работать.
XenCenter позволяет создавать-включать-гасить виртуалки, а проброс устройств надо настраивать из sysadmin-friendly интерфейса командной строки.

Против ожиданий, проблем тут не случилось. Сделал все по мануалу, и хватило его одного. Вот народ жалуется, что по Xen-у документации мало. Так другой раз и хорошо, что мало, если этого хватает. Сколько я по vSphere прочел, и все без толку… Впрочем, не хочу говорить дурных слов про vSphere. Под ней зато так железо настроилось, что Xen пролетел прямо со свистом.
Итак, с помощью XenCenter я организовал виртуалку о двух ядрах и 4 ГБ памяти, накатил туда седьмую 64-битную винду и пошел пробрасывать.

В соответстви с руководством правим /boot/extlinux.conf , вставляя строку «iommu=1 iommu_inclusive_mapping=1» после каждого вхождения «/boot/xen.gz»
Выполняем extlinux /boot .
Шаги, связанные с модулем pciback , пропускаем — пишут, что в шестерке он уже вкомпилирован в ядро.
Делаем xe vm-list и находим uuid нашей виртуалки, у меня uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
Выполняем команду lspci и находим в выводе нашу карту, например 02:00.0 VGA compatible . 02:00.1 Audio… (двойка удивительным образом соответствует номеру слота, куда воткнута карта).
Записываем однострочный скрипт вида
xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:02:00.1 uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
У меня на карте, помимо видеоадаптера, еще звук — поэтому, помня грабли, на которые наступал в vSphere, добавляю оба устройства: 0/0000:02:00.0, 0/0000:02:00.1.
Выполняем скрипт. Для контроля xe vm-param-list uuid=d103a91d-5c38-844f-14d5-64b3c495eb08 | more — действительно
Останавливаем и снова запускаем виртуалку (пишут, что именно так, а не ребутом — не стану проверять лишний раз).
При первой попытке карта у меня в первом слоте PCIe (01:00.0, 01:00.1) и по умолчанию используется гипервизором. После перезапуска виртуалки монитор гаснет.
В XenCenter (с ноутбука) заходим в консоль виртуалки и после логина в винду видим, что она просит ребута. Признак того, что она нашла новое устройство. Не будем ей отказывать. Ребут. Действительно, в Device Manager появился новый видеоадаптер Radeon 3450 с драйвером Microsoft WDDM 1.1. Из предыдущего опыта известно, что драйвер нужен родной. Качаю и ставлю свежий ATI Catalist 12.1, тот после установки, как обычно просит ребута. Ребут… опаньки. Первая попытка накрывается медным тазом: падает гипервизор. Да… vSphere в такой ситуации одерживала убедительную победу над виртуалкой, устраивая ей BSOD.
Перепускаем хост и, по рекомендации лучших собаководов, смотрим, что пишет нам команда
dmesg . Пишет она, помимо прочего, такое:

pciback 0000:01:00.1: secondary bus reset failed for device — all functions need to be co-assigned — err: 6
pciback 0000:01:00.1: FLR functionality not supported; attempts to use secondary bus reset unsuccessful;
pciback 0000:01:00.1: FLR not performed for device

Похоже, что передача карты на горячую нам не светит. Ладно. Дадим гипервизору свой VGA адаптер, благо видеокарт мне теперь хватает. Переставляем Radeon 3450 во второй слот, в первый ставим валяющийся рядом 3470. К каждой карте прицепляем по монитору. Включаем хост, запускаем виртуалку. Винда просит перезагрузки после изменения конфигурации. Ребут. Логинимся…

В консоли XenCenter заставка зависает, и я не сразу соображаю, что правый монитор светится синим


Оно все-таки произошло.
Итого, на Xen срослось за 3 дня (после того, как 3 месяца упражнялся на VMware).

Я залогинился. Картинка на мониторе самая обыкновенная, без особенностей. Разрешение 1920х1200 держит. Не тупит (хотя тестов не гонял). Видео с YouTube проигрывается нормально.

На этой радостной ноте завершу свой правдивый отчет, а сам займусь пробросом клавиатуры, мыши и прочей периферии.

Update:
Пробросил клавиатуру и мышь, пишу из виртуалки под Win7. Здесь ничего, жить можно.
Индекс производительности 3.5

Я даже еще не отключил Aero и прочие визуальные эффекты, вредные нашему делу, но работает шустро.

Читайте также:  Поменял кнопку home не работает touch id

Проброс USB сделал грубо и цинично:
xe vm-param-set other-config:pci=0/0000:02:00.0,0/0000:02:00.1,0/0000:00:1a.0,0/0000:00:1d.0 uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
То есть пожертвовал виртуалке USB контроллеры. С другой стороны, Xen пока без них обойдется.

Что еще? Поставил XenCenter, Xen нормально администрится (кто бы сомневался). Внешний USB-диск, естественно, тоже нормально прицепляется. Теперь надо понять, как пробрасывать CD-ROM.

К сожалению, ничего не вышло у меня с USB Passthrough, равно как и со справедливо упомянутым в комментариях Xen VGA Passthrough (Scraelos), потому как нет под XCP файла «/etc/xen/ cfgfile». Как прописать необходимые настройки с помощью xe — я не разобрался. Если знатоки Xen помогут, буду очень признателен.

Update: ToDo:

  • Пробросить CD-ROM (-)
  • Сконфигурировать статический IP (+)
  • Протестировать производительность (частично сделано)
  • Попробовать пересадить dom0 на IGD, освободится один слот PCIe (-)
  • Попробовать пересадить dom0 на onboard NIC, освободится слот PCI (+)
  • Попробовать впарить dom0 клавиатуру на PS/2
  • Организовать файловую систему для обмена даными между гостевыми ОС
  • Организовать переключение между гостевыми ОС (скриптами, наверное)

Update 06.02.2012:
dom0 на IGD пересаживаться отказался в категорической форме. Кроме того, повторил попытку пробросить primary VGA adapter — без толку. Вернулся к прежней конфигурации адаптеров.
Уперся в проблему с пробросом CD(DVD)-Writer. CD-ROM пробрасывается штатно, но только RO, а мне надо RW. По этому поводу нашел 2 рекомендации: воткнуть и пробросить отдельный SATA контроллер и использовать USB CD/DVD-Writer (благо USB пробрасывается). К сожалению, даже эти (имхо, костыльные) решения у меня на данный момент не заработали. Контроллер пробрасываться отказался. Попытка подключить штатный SATA CD/DVD привод через переходник USB-SATA ни к чему хорошему не привела. Продолжаю опыты.

Источник

Проброс видеокарты NVIDIA в VMware ESXi 6.0

diz решил поделиться своим опытом проброса видеокарты NVDIA GTX в ESXi 6.0.

Добрый день, дорогие друзья!

Говорят, что с 2015-ого года работодатели стали сразу выгонять с собеседования ИТ-шников, если вдруг выясняется, что у них нет личного сервера с развернутым частным облаком.

Чтобы не выбиваться из тренда, я собрал дома небольшой двухпроцессорный сервер на базе материнской платы SUPERMICRO X9DRI-F и пары Xeon E5-2670. Т.к. несколько лет своей жизни я посвятил, в т.ч. администрированию инфраструктуры VMWare, то в качестве гипервизора виртуализации был выбран именно ESXi.

Частное облако-домашняя лаба — это, конечно, замечательно и здорово, однако, для комфортной повседневной работы и StarCraft2 желательно иметь доступ к дискретной видеокарте.

Тому, как задружить “бытовую” nVidia GTX и ESXi 6 и посвящается данная статья — краткий проводник-путеводитель по граблям.

Первое, что вам захочется сделать после установки дискретной видеокарты в сервер — переключить приоритет инициализации видеокарты в BIOS в пользу внешней, чтобы видеть POST прямо на экране подключенного к ней монитора. Этого делать не стоит, т.к. в таком случае вы потеряете возможность использовать iKVM материнской платы.

Итак, приступаем к пробросу видеокарты в виртуальную машину с MS Windows 10. Увидев web-интерфейс ESXi 6 я искренне обрадовался тому, что завязал с системным администрированием четыре года назад. Откладываем этот замечательный интерфейс в сторону, т.к. проброс видеокарты через него вы настроить не сможете, при старте виртуальная машина будет ругаться на несоответствие идентификатора устройства PCIe (PCIe passthrough device id invalid) и переключаемся на старый добрый и толстый клиент:

Жмем “Edit..”: И ставим галочки только напротив видеокарты и связанного HD AUDIO. Яочень рекомендую сперва добиться ее работоспособности, а уже потом пробрасывать мышку-клаву и звук. Затем переходим к добавлению PCIe устройства в виртуальную машину:

В мире розовых пони, где nVidia не жлобы, а VMWare тестируют свои продукты перед релизом, на этом все бы и закончилось. В нашем реальном мире грабли только начинаются. Сперва выясняется, что мы выдали виртуальной машине >2 Гб памяти и теперь она не может поделить адресное пространство с видеокартой. SUPERMICRO протягивает свой FAQ помощи http://www.supermicro.com/support/faqs/results.cfm?id=34 Цитирую:

“We need to make sure GPU BARs are memory mapped above 4GB and to enable EFI firmware add the following 3 lines to configuration (.vmx) file of VM: «pciPassthru.use64bitMMIO = «TRUE» «, «firmware = «efi» » and «vmci.msix = FALSE «.”

VMX файл можно отредактировать руками, а можно в настройках виртуальной машины:

Еще раз обращу внимание, что тип firmware виртуальной машины должен быть “EFI”, кстати, его можно поменять только через web gui, если будете пытаться менять его через толстый клиент, то он перескочит обратно на “BIOS”.

Далее наша виртуальная машина должна успешно запуститься, а драйвер видеокарты порадовать нас такой ошибкой: Суть проблемы: nVidia хочет чтобы все покупали видеокарты серий TESLA и QUADRO и выступает против того, чтобы пользователи занимались виртуализацией видеокарт “бытовых” серий. Драйвер детектит запуск в виртуальной машине и не дает видеокарте стартовать. Обходится при помощи того же трюка, который используется в nested виртуализации — прописыванием строчки hypervisor.cpuid.v0 = “FALSE” в vmx файле виртуальной машины.

Почти все. Теперь при включении виртуальной машины у нас всего-навсего наглухо виснет гипервизор, даже не выкидывая PSOD. Просто все замирает без каких-либо записей в логах. Можно притвориться умным и сказать, что эту проблему мне помогло решить чтение главы “Problems with Device Assignment Dependencies” документа “Configuration Examples and Troubleshooting for VMDirectPath”, доступного по ссылке http://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/vsp-4-vmdirectpath-host-technical-note.pdf, но нет. Форумы в интернете забиты вопросами по этим симптомам с криками о том, что при переходе с версии 5.0 к более старшим VMWare сломала passthrough видеокарт (это относится как к nVidia, так и к ATI) и только один человек c ником mvrk нашел решение: необходимо отредактировать файл по пути /etc/vmware/passthru.map хоста виртуализации и исправить для нашей видеокарты режим проброса с bridge на link:

Вот теперь можно переходить к пробросу мышки и клавиатуры. Тут тоже не обошлось без “особенностей”: когда я пробросил оба USB контроллера материнской платы в vm, драйвер видеокарты снова стал падать с 43й ошибкой. Решилось пробросом только одного контроллера, к портам которого я подключил оба устройства.

Спасибо за внимание и всего хорошего!

P.S. Как здорово, что я больше не админ.

Проброс видеокарты NVIDIA в VMware ESXi 6.0: 64 комментария

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

Могу прогнать тесты, если есть интерес и если есть с чем сравнить. StarCraft2 LotV идет на максимальных настройках в разрешении 1440×900 (больше не поддерживает мой монитор), показывая 70-100 fps, но это игра с относительно низкими системными требованиями.

Я оценивал производительность по игре Deus Ex 3 — в Hyper-V SharedVGA через WiFi было FPS 10-20 (игра ощутимо подтормаживала при каждом движении).

Тут у нас прямой проброс видео, снижение производительности, по идее, должно быть небольшое.

Отличная статья, я в свое время остановился на падении ESXI 😉
но подглядел, что можно vmware обмануть с помощью паяльника
например https://geektimes.ru/post/173545/

Здравствуйте! сделал все по описанию, но карточка у меня GeForce GT610 от Асуса…
но карточка все равно не работает и показывает ошибку 43 …

Загрузите vmx файл и скриншоты настроек проброса видеокарты куда-нть.

Добрый день!
Вчера пробросил аудио, звук есть но со скрипом и шумом, уши вянут.
Есть ли у вас на этот счет решение?
Материнка Asus H97M-Plus

К сожалению, кроме как обновить драйвера, а затем открыть документ, ссылку на который я приводил в статье и тупо перебирать параметры о которых там идет речь, посоветовать ни чего не могу.

Добрый день!
Подскажите пожалуйста как можно получить доступ к файлу по адресу
/etc/vmware/passthru.map ?

1. Включить SSH доступ через клиент ESXi
2. Подключиться по SSH
3. Отредактировать файл при помощи текстового редактора VI

Читайте также:  Телевизор dexp как настроить цифровое кабельное телевидение

Доброго вечера. А можно ли прокинуть видеокарту на сразу 4 виртуалки, чтобы они ее юзали и дать каждой виртуалке свой видеовыход?

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

Добрый день, Василий.
Нет, не удастся.

На крайние 2 вопроса все говорят «нет» и «не удастся», но это не свосем верно.
Обычный vmware драйвер поддерживает DirectX 10 и OpenGL ES 2.0, используа аппаратные ресурсы установленной видеокарты. Что позволяет нормально играть во что-то не особо требовательные. Это работает сразу и не требует проброса видеокарт и прочих танцев с бубном.

1. На вопрос «предоставить каждой виртуалке свой видеовыход видеокарты» — ответ однозначно нет. Либо всю видеокарту одной виртуалке, либо вообще никакого видеовыхода.

2. Обычный драйвер не будет использовать аппартные ресурсы видеокарты. То о чем вы пишете «сразу и не требует проброса видеокарт и прочих танцев с бубном.» — это будет обычный софтварный рендеринг. Средствами процессора, не видеокарты.
Для того чтобы использовать ресурсы видеокарты (это называется vSGA) вы дложны установить на esxi драйвер видеокарты и запустить xorg.
Официально вы можете это сделать ТОЛЬКО для видеокарт Nvidia Grid, а не любой «обычной видеокарты». Для этого скачать и установить пакет vib с драйвером и запустить сервис xorg.

Есть варианты заставить работать vSGA с более широким набором видеокарт, но мы же обсуждаем «без танцев с бубном» не так ли?

Добрый день. Выучил эту статью уже наизусть, но никак не могу заставить виртуалку работать верно. Видюху пробросил, драйвер, вроде, работает, но мониторов в списке хоть ты тресни — нет и все. Подключено 2 монитора: по hdmi и vga.
VMware ESXi, 6.5.0, 4564106
S1200BTL (чип c204)
Xeon(R) CPU E31220 @ 3.10GHz
видеокарта msi (nvidia 710) для pcie x8
Виртуалка — win 7 х64; память 4gb, зарезервирована, в диспетчере устройств видюха определяется.
Еще, перепробовал на трех контроллерах: z97, z87, b85; ставил другие видюхи, 6 штук перепробовал (ati и nvidia), esxi 5.1, 5.5, 6.5, пробовал другие гостевые системы — gentoo, ubuntu, даже XP. Могу уже свою таблицу составить, если заработает.
Единственный раз, когда заработало — на тестовом стенде, когда только я начал ковыряться, с чипсетом z97 (asus z97-p)/i5-4690 с относительно коротким кабелем (стандартным 1,8м).
У меня же кабели vga — 15м, hdmi — 5 метров. Сами кабели и мониторы проверенные — вчера, до того, как я начал в очередной раз экспериментировать, были подключены к другому системнику и прекрасно работали.

Исходя из количества тестов, кроме длины кабеля в общем-то и вариантов нет. Прошу помощи, может, кто подскажет, что еще можно проверить.

Опишите подробно действия, и скриншоты бы не помещали.

На z97-p сделал проброс видюхи, добавил через веб-интерфейс видюху в виртуалку и все заработало.
В остальных случаях я пробовал как штатно, так и прямо по тексту, за исключением проброса видюхи через веб — оно работает и ни на что не ругается. Я также в нескольких случаях устанавливал vmware tools, но после установки и запуска виртуалка падала в бсод. Отключение программного адаптера от vmware делу не помогло: рабочий стол можно лицезреть через клиент vmware (при этом мониторов в списке вообще нет); включение и отключение поддержки 3d приводит либо к бсоду, либо просто не помогает.
Я также несколько раз тестировал изменение строчки в /etc/vmware/passthru.map, разницы для nvidia 710 нет. Сейчас стоит bridge.
Скрин:
http://2421329.ru/vmscr.png
Какие еще сделать?

Сегодня мне подкинули еще один монитор, который собираюсь подключить коротким кабелем. Расскажу вечером, что получится — самому интересно.

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

Поменял на link, перезагрузил хост — не помогло. Поставил в той же машине win 10 x64 — заработало. Хотите верьте, хотите — нет. В этой же виртуалке пробовал win 7 x64, win 7 x32, centos 7 x64, ubuntu 16, ubuntu 14. Все с проприетарными драйверами. Получается, проблема решена. Спасибо за небезразличие.

Если не секрет — а какие цели в такой реализации?

Не секрет. Сделал виртуалку в основном для интерактивного зеркала себе в ванну. Зеркало-шпион 5% (5% светопропускаемости маловато, кстати, — буду менять на 12%), за ним монитор.
Второй же монитор в виртуалке подключен на кухне для того, чтобы жена могла смотреть рецептики всякие.
А сам сервак постоянно работает — на нем почта, в-центр, торренты качаются и тд. Так что подумал: «что памяти зазря пропадать?».

Кстати, не хочу, если честно проверять еще пару моментов, которые имели место вчера быть: подключая клавиатуру с мышкой для проброса в виртуалку, заодно поправил монитор, который подключен к встроенной видюхе (на котором сам гипервизор; ранее, видимо, я его задел и, вполне вероятно, был отключен) и после перезагрузки все опять сломалось. Я также добавил внутрь виртуалки один из контроллеров юсб, который, кстати, не появился в системе. И добавил hdmi звук видюхи.

Чтобы все вернуть я не стал экспериментировать и удалил все, что добавил (юсб + hdmi), вытащил кабель и вуаля:

Нашёл старенький 8400 GS, попробовал прокинуть в гостевую win10x64 на vSphere 6.5 (asus h81m + i5-4440 ). Получил BSOD «video_tdr_failure.» Делал всё по инструкции. Печалька.

Ставьте заново без вмтулз

Andrey Kouznetsov, я так и делал.

Вротмненоги. Счастье было так близко.
Видеокарта мифическим образом исчезла из гостевой после недели работы.
Пропала бесшумно и безапелляционно. Пока был в отъезде.
Из гостевой, той самой, на которой все заработало. Win10 x64.
Покопался в логах, нашел интересный момент.
Лог включения:
—
2017-04-19T21:52:02.917Z cpu3:193202)VSCSI: 2611: handle 8203(vscsi0:0):Reset request on FSS handle 85787877 (0 outstanding commands) from (vmm0:win_bath)
2017-04-19T21:52:02.917Z cpu3:65697)VSCSI: 2891: handle 8203(vscsi0:0):Reset [Retries: 0/0] from (vmm0:win_bath)
2017-04-19T21:52:02.917Z cpu3:65697)VSCSI: 2679: handle 8203(vscsi0:0):Completing reset (0 outstanding commands)
2017-04-19T21:52:06.702Z cpu0:193197)NetPort: 1879: disabled port 0x200000b
2017-04-19T21:52:06.702Z cpu0:193197)Net: 3732: disconnected client from port 0x200000b
2017-04-19T21:52:06.702Z cpu0:193197)WARNING: PCI: 780: Reporting transaction pending on device 0000:01:00.1
2017-04-19T21:52:11.703Z cpu1:193197)PCI: 649: Device 0000:01:00.0: restoring TV/VC Map (0xff) to offset 114
2017-04-19T21:52:11.703Z cpu1:193197)WARNING: PCI: 813: Detected transaction pending on device 0000:01:00.1 after reset
2017-04-19T21:52:11.738Z cpu2:65594)WARNING: PCI: 780: Reporting transaction pending on device 0000:01:00.0
2017-04-19T21:52:16.739Z cpu3:65594)PCI: 649: Device 0000:01:00.0: restoring TV/VC Map (0xff) to offset 114
2017-04-19T21:52:16.739Z cpu3:65594)WARNING: PCI: 813: Detected transaction pending on device 0000:01:00.0 after reset
2017-04-19T21:52:16.739Z cpu3:65594)WARNING: VmMemPin: 368: vm 193198: bpn 0x1000000e0 count was zero (count=0)
2017-04-19T21:52:16.739Z cpu3:65594)WARNING: VmMemPin: 368: vm 193198: bpn 0x1000000e1 count was zero (count=1)
2017-04-19T21:52:16.739Z cpu3:65594)WARNING: VmMemPin: 368: vm 193198: bpn 0x1000000e2 count was zero (count=2)
2017-04-19T21:52:16.739Z cpu3:65594)WARNING: VmMemPin: 368: vm 193198: bpn 0x1000000e3 count was zero (count=3)
2017-04-19T21:52:16.739Z cpu3:65594)WARNING: VmMemPin: 368: vm 193198: bpn 0x1000000e9 count was zero (count=9)
2017-04-19T21:52:16.739Z cpu3:65594)WARNING: VmMemPin: 368: vm 193198: bpn 0x1000000f3 count was zero (count=19)
2017-04-19T21:52:16.739Z cpu3:65594)WARNING: VmMemPin: 368: vm 193198: bpn 0x1000000fd count was zero (count=29)
2017-04-19T21:52:38.955Z cpu0:67592 opID=4c55a784)World: 12230: VC opID 818da587 maps to vmkernel opID 4c55a784
2017-04-19T21:52:38.955Z cpu0:67592 opID=4c55a784)Config: 706: «SIOControlFlag2» = 1, Old Value: 0, (Status: 0x0)
2017-04-19T21:52:39.732Z cpu0:193492)MemSched: vm 193492: 6366: extended swap to 28160 pgs
2017-04-19T21:52:40.997Z cpu3:193492)World: vm 193493: 7375: Starting world vmm0:win_bath of type 8
2017-04-19T21:52:40.997Z cpu3:193492)Sched: vm 193493: 6184: Adding world ‘vmm0:win_bath’, group ‘host/user’, cpu: shares=-3 min=0 minLimit=-1 max=-1, mem: shares=-3 min=1048576 minLimit=-1 max=-1
2017-04-19T21:52:40.997Z cpu3:193492)Sched: vm 193493: 6199: renamed group 533824 to vm.193492
2017-04-19T21:52:40.997Z cpu3:193492)Sched: vm 193493: 6216: group 533824 is located under group 4
2017-04-19T21:52:41.183Z cpu0:193492)World: vm 193496: 7375: Starting world vmm1:win_bath of type 8
2017-04-19T21:52:41.183Z cpu0:193492)World: vm 193497: 7375: Starting world vmm2:win_bath of type 8
2017-04-19T21:52:41.183Z cpu0:193492)World: vm 193498: 7375: Starting world vmm3:win_bath of type 8
2017-04-19T21:52:42.825Z cpu2:193492)VSCSI: 3787: handle 8204(vscsi0:0):Creating Virtual Device for world 193493 (FSS handle 346686371) numBlocks=67108864 (bs=512)
2017-04-19T21:52:42.825Z cpu2:193492)VSCSI: 273: handle 8204(vscsi0:0):Input values: res=0 limit=-2 bw=-1 Shares=1000
2017-04-19T21:52:42.830Z cpu2:193492)WARNING: PCI: 780: Reporting transaction pending on device 0000:01:00.0
2017-04-19T21:52:47.830Z cpu0:193492)PCI: 649: Device 0000:01:00.0: restoring TV/VC Map (0xff) to offset 114
2017-04-19T21:52:47.830Z cpu0:193492)WARNING: PCI: 813: Detected transaction pending on device 0000:01:00.0 after reset
2017-04-19T21:52:47.831Z cpu0:193492)IOMMU: 2176: Device 0000:01:00.0 placed in new domain 0x430331c38a40.
2017-04-19T21:52:47.831Z cpu0:193492)WARNING: PCI: 780: Reporting transaction pending on device 0000:01:00.1
2017-04-19T21:52:52.832Z cpu0:193492)PCI: 649: Device 0000:01:00.0: restoring TV/VC Map (0xff) to offset 114
2017-04-19T21:52:52.832Z cpu0:193492)WARNING: PCI: 813: Detected transaction pending on device 0000:01:00.1 after reset
2017-04-19T21:52:52.885Z cpu1:193493)VMMVMKCall: 218: Received INIT from world 193493
2017-04-19T21:52:52.885Z cpu1:193493)CpuSched: 692: user latency of 193626 LSI-193493:0 0 changed by 193493 vmm0:win_bath -6
2017-04-19T21:52:52.885Z cpu1:193493)LSI: 1805: LSI: Initialized rings for scsi0 async=1
2017-04-19T21:52:52.886Z cpu2:193496)VMMVMKCall: 218: Received INIT from world 193496
2017-04-19T21:52:52.886Z cpu3:193497)VMMVMKCall: 218: Received INIT from world 193497
2017-04-19T21:52:52.886Z cpu0:193498)VMMVMKCall: 218: Received INIT from world 193498
2017-04-19T21:52:52.886Z cpu1:193625)WARNING: NetDVS: 681: portAlias is NULL
2017-04-19T21:52:52.886Z cpu1:193625)Net: 2524: connected win_bath eth0 to VM Network, portID 0x200000c
2017-04-19T21:52:52.886Z cpu1:193625)CpuSched: 692: user latency of 193494 NetWorld-VM-193493 0 changed by 193625 vmx-vcpu-0:win_bath -6
2017-04-19T21:52:52.886Z cpu1:193625)NetPort: 1660: enabled port 0x200000c with mac 00:00:00:00:00:00
2017-04-19T21:52:52.904Z cpu3:67605)Config: 706: «SIOControlFlag2» = 0, Old Value: 1, (Status: 0x0)
2017-04-19T21:52:53.469Z cpu1:193625)WARNING: PCI: 780: Reporting transaction pending on device 0000:01:00.0
2017-04-19T21:52:58.470Z cpu3:193625)PCI: 649: Device 0000:01:00.0: restoring TV/VC Map (0xff) to offset 114
2017-04-19T21:52:58.470Z cpu3:193625)WARNING: PCI: 813: Detected transaction pending on device 0000:01:00.0 after reset
2017-04-19T21:52:58.470Z cpu3:193625)WARNING: PCI: 780: Reporting transaction pending on device 0000:01:00.0
2017-04-19T21:53:03.471Z cpu2:193625)PCI: 649: Device 0000:01:00.0: restoring TV/VC Map (0xff) to offset 114
2017-04-19T21:53:03.471Z cpu2:193625)WARNING: PCI: 813: Detected transaction pending on device 0000:01:00.0 after reset
2017-04-19T21:53:03.474Z cpu2:193625)WARNING: PCI: 780: Reporting transaction pending on device 0000:01:00.1
2017-04-19T21:53:08.475Z cpu2:193625)PCI: 649: Device 0000:01:00.0: restoring TV/VC Map (0xff) to offset 114
2017-04-19T21:53:08.475Z cpu2:193625)WARNING: PCI: 813: Detected transaction pending on device 0000:01:00.1 after reset
2017-04-19T21:53:08.475Z cpu2:193625)WARNING: PCI: 780: Reporting transaction pending on device 0000:01:00.1
2017-04-19T21:53:13.476Z cpu1:193625)PCI: 649: Device 0000:01:00.0: restoring TV/VC Map (0xff) to offset 114
2017-04-19T21:53:13.476Z cpu1:193625)WARNING: PCI: 813: Detected transaction pending on device 0000:01:00.1 after reset
2017-04-19T21:53:14.375Z cpu3:193493)VSCSI: 2611: handle 8204(vscsi0:0):Reset request on FSS handle 346686371 (0 outstanding commands) from (vmm0:win_bath)
2017-04-19T21:53:14.375Z cpu0:65697)VSCSI: 2891: handle 8204(vscsi0:0):Reset [Retries: 0/0] from (vmm0:win_bath)
2017-04-19T21:53:14.375Z cpu0:65697)VSCSI: 2679: handle 8204(vscsi0:0):Completing reset (0 outstanding commands)
2017-04-19T21:53:14.375Z cpu3:193493)VSCSI: 2611: handle 8204(vscsi0:0):Reset request on FSS handle 346686371 (0 outstanding commands) from (vmm0:win_bath)
2017-04-19T21:53:14.375Z cpu0:65697)VSCSI: 2891: handle 8204(vscsi0:0):Reset [Retries: 0/0] from (vmm0:win_bath)
2017-04-19T21:53:14.375Z cpu0:65697)VSCSI: 2679: handle 8204(vscsi0:0):Completing reset (0 outstanding commands)
2017-04-19T21:53:20.116Z cpu1:193497)VSCSI: 2611: handle 8204(vscsi0:0):Reset request on FSS handle 346686371 (0 outstanding commands) from (vmm0:win_bath)
2017-04-19T21:53:20.116Z cpu0:65697)VSCSI: 2891: handle 8204(vscsi0:0):Reset [Retries: 0/0] from (vmm0:win_bath)
2017-04-19T21:53:20.116Z cpu0:65697)VSCSI: 2679: handle 8204(vscsi0:0):Completing reset (0 outstanding commands)
—
Вот здесь явно какая-то проблема:
2017-04-19T21:53:13.476Z cpu1:193625)PCI: 649: Device 0000:01:00.0: restoring TV/VC Map (0xff) to offset 114

Читайте также:  Не работает один звуковой выход

Думаю, что по какой-то причине при включении гостевой ОС, esxi не пробрасывает внутрь видюху; например из-за проверки ACS. Метод выключения проверки нашел только для 5.5: esxcfg-advcfg -k TRUE disableACSCheck. После перезагрузки хоста, наверняка, все заработает (потому что после прошлого включения все было в порядке примерно неделю). Но почему сейчас видюхи нет в списке устройств? Кто-нибудь встречал подобное поведение?

Замечательная статья. Вот пытаюсь прокинуть NVIDIA QUADRO 600 в Microserver G8, на ESXi 6.5. Если у VM памяти 2Гб, то прокидывается без проблем, а вот при увеличении памяти у VM, она перестаёт запускаться, пишет:
Error message from localhost.localdomain: We will respond on the basis of your support entitlement. error

Выставлял:
pciPassthru.use64bitMMIO = TRUE
firmware = efi
vmci.msix = FALSE
hypervisor.cpuid.v0 = FALSE

но не помогает. Может кто подскажет, как это вылечить?

Отвечаю на свой комментарий. В логах VM была следующая ошибка:
vcpu-0| I125: Failed to adjust IOMMU: Failure
vcpu-0| W115: MONITOR PANIC: vcpu-0:PCIPassthru: failed to adjust IOMMU mappings.
…
vcpu-0| I125+ vcpu-0:PCIPassthru: failed to adjust IOMMU mappings.

VM успешно запустилась при указании только одного параметра (кстати, успешно работает и на VM без EFI):
pciHole.start = 2048

подробности в kb2142307. Но к большому сожалению, хоть видеокарта успешно пробросилась в виртуалку, там она корректно не заработала (при любых запусках тестов, писалось, что видеокарта не обнаружена).

Действительно работает — проверял на VM 6.0:

1) На Гипервизоре — первым делом прописал «link» (в /etc/vmware/passthru.map):
# NVIDIA
10de ffff link false

Далее перезагрузил гипер-визор.

2) В файле виртуальной машины (.vmx) прописал вот это:
pciPassthru.use64bitMMIO = «TRUE»
vmci.msix = «FALSE»

3) Далее в виртуальную машину — добавил оба PCI-Ex устройства (карта+HDMI звук)

4) Вот это — firmware = «efi» — не понадобилось (т.к. моя виртуалка уже была установлена на BIOS (классическом) загрузчике и после установки в EFI перестала загружаться. Поэтому это отключил обратно на BIOS (EFI не стал включать):

5) Далее включил виртуалку и там появилась некая-видеокатра. Поставил к ней родные драйвера. После перезагрузки — определилась верно, но «устройство было выключено (из-за неполадок)».

Не страшно — выключил машину и прописал в конец (.vmx) файла:
hypervisor.cpuid.v0 = «FALSE»

6) Далее включил виртуалку = всё работает!
Единственно через GUI (vSphere Client) управление консолью машины
стало не удобно, т.к. «уехала» мышка. В принципе не суть — через любой удалённый администратор нормально управляется.

7) Приложения которые перестали ругаться на отсутствие поддержки аппаратного ускорителя (до этого ругались 🙂
— Автокад 16-й,
— Фотошоп 2015.

Без firmware = «efi» у меня не работало. Судя по сообщениям и по тому, что я намониторил, пока писал статью, вся тема с пробросом видео в виртуалку — люто кривая.

NVIDIA QUADRO 600 проброс в ESXi 6.0 на Windows 7 у кого то получилось, есть тесты?

ESXi 6.0 + NVIDIA QUADRO 600 + Windows 10
Пробовал всё но виртуальную машину не запускало в логах
PCIPassthru: 0000:81:00.0 : Device BAR 1 requested 64-bit memory address that exceeded MPN type (62122138533888).
Помогло только на уровне BIOS в SUPERMICRO
MMIOHBase — 512G (default 56T)
https://octo.vmware.com/enable-compute-accelerators-vsphere-6-5-machine-learning-hpc-workloads/

Пытаюсь найти решение проблемы PSOD при перезагрузке VM c проброшенной видеокартой. Может кто подскажет, куда копать?
Было: esxi 5.5 + WS460 Gen8 + Quadro 1000M, VM на RHEL6 (bios boot) с проброшенной Quadro работали великолепно.
Стало: esxi 6.5 + тоже самое железо, VM c тем же линуксом и проброшенной quadro загружается и работает отлично. Стоит дать виртуальной машине команду reboot (или shutdown с последующим включением) происходит PSOD в момент, когда второй раз (после загрузки хоста) инициализируется драйвер видеокарты внутри VM. Т.е. этакий хост с виртуализацией, при которой перезагрузка VM приводит к перезагрузке самого хоста.

Перепробовал всё: d3d0 и link в passthru.map, hypervisor.cpuid.v0, pciPassthru.use64bitMMIO, pciHole.start/end, в bios хоста включал-выключал BAR, менял linux драйверы nvidia внутри VM, инсталлировал RHEL на EFI — результат один и тот же: ребут хоста при второй загрузке VM (при втором по счету старте драйвера quadro внутри VM после загрузки хоста)

Очень смущает низкий Performance svga, используется очень мощная карта FirePro S9050. Но по факту оно едва ползает, по сравнению с обычными картами.

Источник

Оцените статью