После покупки новой модели шлема, в комплект поставки которого входит только сам шлем без периферии — я остался один на один со старым устройством, без возможности подключить его к компьютеру. По умолчанию Steam VR не умеет работать с двумя VR устройствами одновременно, поэтому в данной статье описан порядок действий и способы решения типовых проблем.
Данный способ скорее всего сработает и под другие VR гарнитуры, такие как Oculus или WMR, однако тестировалось всё на Vive.
Данный способ также сработает под 3 и более гарнитуры, если характеристики железа будут позволять.
Внимание. Некоторые из проблем описанных в статье — возникают из за попыток использовать железо без пометочки «серверное» в качестве «серверного». По причинам известным только маркетологам — драйвера данных устройств отказываются функционировать под серверной операционкой или виртуальной машиной — поэтому в статье описаны изменения их конфигураций. Данные методы представлены только для ознакомления, и категорически не рекомендуются к использованию.
Подготовка
Системные требования:
- Две видеокарты, каждая из которых по отдельности тянет VR-игры. (+1 шт. за каждый последующий шлем)
- Процессор поддерживающий виртуализацию, и имеющий не менее 8 потоков. (+4 потока за каждый последующий шлем)
- 8Гб оперативной памяти. (+4Гб за каждый последующий шлем)
- Достаточное количество USB 3.0 на материнской плате под все ваши устройства.
Характеристики железа использованного во время теста:
- Материнская плата: X299 AORUS Gaming 3
- Процессор: i7-7820x (16 потоков)
- Видеокарты: GTX-1080 2 штуки
- 64Гб оперативной памяти
Установка
1.1. Устанавливаем и производим начальную настройку Windows Server 2016.
1.2. (Опционально) На данном этапе у меня возникла проблема с драйверами сетевой карты. В её решении мне помогло это руководство.
2.1. Заходим в «Диспетчер Серверов».
2.2. Заходим в «Добавить роли и компоненты» и в открывшемся мастере создаем добавляем роль сервера «Hyper-V». Серверу необходимо разрешить подключаться к вашей сети.
2.3. После установки, заходим в «Диспетчер Hyper-V».
2.4. Создаем новую виртуальную машину в настройках которой необходимо выдать не менее 4Гб оперативной памяти и не менее 4 потоков процессора.
2.5. Запускаем виртуальную машину, производим на ней установку Windows 10 или Windows 7 по вкусу.
2.6. После установки и начальной настройки отключаем виртуальную машину.
3.1. Теперь необходимо прокинуть виртуальной машине одну из видеокарт. (Документация)
3.2. Отключаем SLI если он был активен
3.3. Заходим в «Диспетчер задач». Находим видеокарту которую будем отдавать виртуальной машине. Отключаем её.
3.4. Заходим в свойства отключённой видеокарты. В разделе «сведения» находим свойство «Пути к расположению». Копируем путь оттуда.
3.5. С помощью PowerShell настраиваем виртуальную машину и отдаём ей видеокарту. Для примера — имя машины VMName, а путь видеокарты $locationPath.
Set-VM -Name VMName -AutomaticStopAction TurnOff
Set-VM -GuestControlledCacheTypes $true -VMName VMName
Set-VM -LowMemoryMappedIoSpace 3Gb -VMName VMName
Set-VM -HighMemoryMappedIoSpace 33280Mb -VMName VMName
Dismount-VMHostAssignableDevice -force -LocationPath $locationPath
Add-VMAssignableDevice -LocationPath $locationPath -VMName VMName
Вернуть видеокарту обратно можно с помощью
Remove-VMAssignableDevice -LocationPath $locationPath -VMName VMName
Mount-VMHostAssignableDevice -LocationPath $locationPath
3.6. Запускаем виртуальную машину. Если все прошло успешно — в «Диспетчере задач» виртуальной машины появится отданная видеокарта.
4.1. Устанавливаем драйвера на видеокарту.
4.2.(Опционально) По умолчанию видеокарта GeForce не запускается на виртуальной машине и выдаёт ошибку 43. Мне с данной проблемой помог этот способ.
5.1. Прокинуть через Hyper-V обычные usb порты нельзя. (Через расширенный сеанс тоже не сработало) Поэтому решить проблему подключения можно двумя способами.
5.2. Если у вас есть PCI-E Usb контроллер — то его можно по аналогии с видеокартой прокинуть его виртуальной машине.
5.3. Если контроллера нет, можно воспользоваться программой USB-Redirector или её аналогом.
6.0. Теперь виртуальная машина и хост будут видеть каждая свой шлем, и дальнейшая настройка не отличается от обычной настройки VR-Гарнитур.
Заключение
Если у вас есть советы по оптимизации пунктов данной статьи, опыт подключения других VR гарнитур, опыт работы с AMD видеокартами или опыт более «Правильного» решения проблем с драйверами — пожалуйста напишите об этом в комментарии, чтобы статью можно было дополнить. Спасибо.
Автор: new player