LINUX.ORG.RU

QUEMU (KVM) эмуляция опредленного железа.

 , ,


0

2

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

У меня есть сервер Intel Xeon E3-1270v6 3.80GHz 16GB ECC DDR4 RAM 2x 1TB HDD S-ATA3

Ну не суть, на нем установлен Linux и QUEMU. Возможно лии создать виртуальную машину с другими hwid ? Мне нужна например виртуалка на Windows но что бы показывало например вот такие параметры CPU : Intel i7-950 RAM : 8 GB HDD : 250 GB VCARD : Radeon HD5870

Именно возможно ли устанавливать различные параметры hwid пусть и виртуальные, и не соответствующие заявленным, просто скажем так их эмуляция. и что бы винда показывала что они есть ии железо тут вот такое.

Ответ на: комментарий от ving2

Ну мне нужно опредленное железо, такое железо не купить и не арендовать. я могу сделать для гостевой машины его эмуляцию ?

huzalohuci
() автор топика
Ответ на: комментарий от huzalohuci

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

huzalohuci
() автор топика

Да, идентификаторы меняются в исходниках. Даже при пробросе можно извратиться и подменить pci vendor/id, хотя с этим больше возни. Но...

Radeon HD5870

с этим придётся повозиться: если поменяшь Idшники видюхи - её перестанут видеть её настоящие биос и дрова - их тоже надо патчить.

alt-x ★★★★★
()
Ответ на: комментарий от huzalohuci

fake pci & fake cpu

не видел, не вкурсе. Модель дисков, привода ты можешь на уровне исходников qemu заменить. Процессор тоже можешь свой поставить...

ving2
()
Ответ на: комментарий от ving2

Почему нет? Если спецификации открыты и скорость неважна, можно сэмулировать любое устройство.

alt-x ★★★★★
()
Ответ на: комментарий от huzalohuci

По-моему, док на эту тему особо и нету. Просто смотри, как сделаны устройства, которые работают, и либо подделывай id-шники, либо переделывай эмуляцию, чтоб оно действительно эмулировало твоё устройство.

Например, видюха будет в hw/display/{qxl,vga-pci,virtio-vga}.c, ищешь там _PCI_VENDOR_ID, меняешь, на тот, который тебе нужен, перекомпилируешь, включаешь и убеждаешься, что видюха не работает. После этого идёшь в исходники биоса (SeaBIOS или UEFI) исправляешь там вендора и айди, пересобираешь - убеждаешься что теперь работает, но гостевая система думает, что видюха - радеон, поэтому после начальной загрузки изображение скорее всего пропадает.

После этого берешь дрова исходной видюхи {qxl,vga-pci,virtio-vga,...} для твоей гостевой ОС, меняешь там вендора и айди, перекомпилируешь - и вуаля - ты обманул систему.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

в исходники биоса (SeaBIOS) исправляешь там вендора и айди

К примеру взять qxl, там достаточно вот эти параметры изменить?

CONFIG_VGA_VID=0x1b36
CONFIG_VGA_DID=0x0100
И оно собереться без ошибок?

https://cgit.gentoo.org/repo/gentoo.git/tree/sys-firmware/seabios/files/seavg...

ving2
()
Ответ на: комментарий от alt-x

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

sudo lspci -nnk | grep -iA3 vga
00:02.0 VGA compatible controller [0300]: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] [10de:1140] (rev 04)
	Subsystem: Red Hat, Inc GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] [1af4:1100]
	Kernel modules: nouveau
00:03.0 Ethernet controller [0200]: Red Hat, Inc Virtio network device [1af4:1000]

ving2
()
Последнее исправление: ving2 (всего исправлений: 1)
Ответ на: комментарий от ving2

Ну, видно nouveau мало что использует кроме стандартного VGA. Тем проще. :-) Правда, стоит проверить, что будет, если OpenGL задействовать. Если не повезёт - может паникой ядра закончиться.

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

модуль nouveau не используется получается, т.е. его можно спокойно выгрузить. А каким макаром qxl драйвер заставить это устройство использовать. Драйвер пересобрал, поправил на 10de:1140. А оно тоже не использует его...

ving2
()
Ответ на: комментарий от ving2

Может, udev? Что происходит, если хакнутый драйвер через modprobe загрузить? Он в логи пишет чего-нибудь?

alt-x ★★★★★
()
Ответ на: комментарий от alt-x

на госте установлен debian. Там есть пакет xserver-xorg-video-qxl. Вот его я и пересобирал. Если подгружать через modprobe qxl, ошибок нет:

modinfo qxl
filename:       /lib/modules/4.9.0-4-amd64/kernel/drivers/gpu/drm/qxl/qxl.ko
license:        GPL and additional rights
description:    RH QXL
author:         Dave Airlie
alias:          pci:v00001B36d00000100sv*sd*bc03sc80i*
alias:          pci:v00001B36d00000100sv*sd*bc03sc00i*
depends:        drm,drm_kms_helper,ttm
intree:         Y
vermagic:       4.9.0-4-amd64 SMP mod_unload modversions 
parm:           modeset:Disable/Enable modesetting (int)
parm:           num_heads:Number of virtual crtcs to expose (default 4) (int)
когда в пакете модуль находится, здесь:
/usr/lib/xorg/modules/drivers/qxl_drv.so

Пробовал конфигурировать Xorg.conf, указывая явно драйвер qxl. В логах видно что оно грузит /usr/lib/xorg/modules/drivers/qxl_drv.so . Но там появляется строчка device not found. Короче не видит почему то этот девайс.

ving2
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.