Еще один пост, как играть в виртуальной машине.

Знаю, был пост подобной тематики. Но ставить Proxmox для того, чтобы просто попробовать, для новичка, я считаю, малость чересчур. Будем препарировать Ubuntu.

Итак, по сути, я расскажу, как поставить QEMU с пробросом видеокарты, чтобы можно было поиграть. На схеме это выглядит так (ну очень схематично):

Еще один пост, как играть в виртуальной машине. Linux, Qemu, IT, Windows, Игры, Длиннопост

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


ДИСКЛЕЙМЕР.

Я не рассматривал типовые проблемы, которые могут возникнуть, чтобы не перегружать пост текстом, если они возникнут, вам придется копнуть чуть глубже или спросить совета. Не надо писать "ололо, у меня ошибка 43, мануал говно".


Что нужно?

- Один Linux типовой - Ubuntu, чем свежее, тем лучше.

- Камень и мать с поддержкой AMD-Vi/VT-d и IOMMU соотв. Погуглите.

- Вторая видюха, очень желательно во втором PCI-e порту.

- Второй видеокабель и очень желательно - второй комплект клавиатура/мышь.


Качаем и ставим qemu, в убунту это:

$sudo apt install qemu


Лучше со стандартным ядром и qemu из реп, если не шарите.

Накатим систему по вкусу пока без GPU. Разметим образ:

$fallocate -l 20G /Гдето/WinX.img


и запустим систему, поставив туда любимую десяточку/семерочу/что-то еще:

$qemu-system-x86_64 -m 2048 -machine q35,accel=kvm -boot d -drive file=/Гдето/WinX.img -cdrom /Тамто/Windows.iso


Как поставить виндовс - можно найти в интернете))


Далее надо запустить драйвер vfio и присобачить к нему видюшку, которую надо пробросить.

Для этого нам надо узнать адрес и идентификатор карты. Сделаем волшебное:

$lspci -nn

ищем нужные девайсы (VGA и HDMI Audio), в моем случае нас интересует это (запишите то, что жирным):


06:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] [10de:1380]
06:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fbc]

Запилим такое действо:

$sudo echo "options vfio-pci ids=10de:1380,10de:0fbc" >> /etc/modprobe.d/local.conf

Теперь добавим нужные модули.

$cat /etc/modules

vfio
vfio_iommu_type1
vfio_pci

И заапдейтим:

$sudo update-initramfs -u

Перезагрузимся. Этого должно быть достаточно.

Теперь проверим, как прошло.
$dmesg | grep vfio

Должно выдать что-то вроде:

[ 4.774681] vfio_pci: add [10de:1380[ffff:ffff]] class 0x000000/00000000

Наконец запустим нашу машину башскриптом типа:

#!/bin/bash
export QEMU_AUDIO_DRV=alsa
MISC="
-name win10
-machine q35,accel=kvm 
-cpu Opteron_G5,kvm=off  #Эквивалент AMD FX-83xx
-m 3072
-realtime mlock=off
-smp 6,sockets=1,cores=6,threads=1
-no-user-config
-nodefaults
-rtc base=localtime,clock=host
-boot menu=on,strict=on"

MONITOR="
-monitor stdio
-vga none"

STORAGE="
-drive file=/Гдето/WinX.img,format=raw"

DEVICES="
-device vfio-pci,host=06:00.0,id=hostdev0,multifunction=on,x-vga=on
-device vfio-pci,host=06:00.1,id=hostdev1
-usb
-usbdevice host:$1
-soundhw ac97"

qemu-system-x86_64 $MISC $MONITOR $DEVICES -net nic -net user $STORAGE

Можно заметить, что скрипт использует аргумент:

-usbdevice host:$1

Это идентификатор клавиатуры/мыши 2.4 ГГц. Его можно (и нужно) узнать через

$lspci
Bus 005 Device 006: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse

Сам скрипт запускается так:

$sudo ./win10 093a:2510

Но пока не запускаем!

Еще один пост, как играть в виртуальной машине. Linux, Qemu, IT, Windows, Игры, Длиннопост

Да. У многих мониторов по два входа, так что проброшенную видеокарту стоит подключить вторым кабелем и не париться. Можно и на телек кинуть, как сделал я.

По поводу звука - лучше HDMI, конечно, но в скрипте есть волшебная строчка

-soundhw ac97

которая добавит стандартную звуковуху ac97 и будет выводить звук на хост. Но на Windows10 с установкой дров придется немного помудрить (можно найти в интернете). Если звук идет по HDMI, строку надо убрать.

На этом все. Удачных опытов.

GNU/Linux

1K пост15.5K подписчиков

Добавить пост

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
А как же input/output lag? Ведь для того, чтобы рисовать изображение с виртуалки, используются механизмы удаленного доступа. Имхо, играть будет не очень приятно, особенно в игры, требующие быстрой реакции.
раскрыть ветку (7)
Автор поста оценил этот комментарий

Как бы - нет.

Где ты вообще увидел удаленный доступ?

раскрыть ветку (6)
Автор поста оценил этот комментарий

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

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

насколько мне известно, можно нечто похожее провернуть начиная с Windows Server 2012 с Hyper-V через RemoteFX. но это не совсем полноценный проброс.

раскрыть ветку (2)
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

не знаю.

Автор поста оценил этот комментарий

А как ты подключаешься к виртуалке по-твоему?

раскрыть ветку (1)
Автор поста оценил этот комментарий

По-моему я подключаюсь к ней с помощью телевизора и глаз.

Но мне интересно послушать твою версию.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку