про nvidia ничего сказать не могу: у меня на ноутбуке - работает. другого ничего никогда не пробовал. разве что могу свой, толькочтошный, Xorg.0.log показать:
http://pastebin.com/yvzuKaqi
Poor Fred писал(а): ↑22.03.2010 15:50
...
В доке написано добавить noapic либо pci=noacpi, еще пара команд, но с ними ядро ругается.
Подозреваю, что дело в бэкендах и фронтендах PCI Xen, но т.к. я не совсем понимаю что там что, трогать побаиваюсь.
нет, не так: в случае винды (и любого hvm domU), xen выполняет полную виртуализацию (hvm - hardware virtual machine), которую фактически реализует qemu, включенный в состав xen-tools, и связь такого domU с dom0 минимальна - разве что убить процесс qemu. гипервизор xen при этом освободит захваченные ресурсы. qemu организует набор устройств: дисковый адаптер, сетевой адаптер, видеоадаптер, которыми hvm domU пользуется, как если бы они были настоящими. я не помню (в общем, никогда не пытался запомнить, т.к не надо было), что это за устройства, но разумеется, они достаточно примитивные для 3D или какой-л нормальной производительности (см содержимое логов в /var/log/xen/qemu*). интересность xen заключается не в hvm, а в pv (паравиртуальных) domU, которые "знают" что работают под управлением гипервизора, и работают много эффективнее. в этом случае все устроено так: dom0 поддерживает драйвер реального устройства, на dom0 также работает т.н backend драйвер, который может взаимодействовать с реальным драйвером, с одной стороны, и с гипервизором - с другой. со стороны domU есть frontend driver, который взаимодействует через гипервизор с соответствующим backend-драйвером. т.е на схема выглядит так domU <-> frontend drv <-> xen <-> backend drv <-> dom0 <-> physical device. понятно, что пар frontend-backend столько, сколько domU и устройств на них. этот уровень абстракции сделан, чтобы максимально изолировать виртуальные машины (domU) xen от физического железа. теоретически, указанным способом любой драйвер, который поддерживается dom0, можно связать с одним или несколькими domU. на практике, правда, есть множество ограничений. замечу, что выше дано очень примитивное описание - на самом деле, все, конечно сложнее
существуют попытки заставить винду быть паравиртуальной, мне известна одна - драйверы
James Harper'a - когда-то я пробовал - действительно виндовый domU работает быстрее. если интересно - могу порассказывать что тогда получалось
И сразу еще один вопрос, глобальный. Когда тема виртуализации появилась, я мечтал, что смогу держать одновременно запущенными линукс и винду. Последняя для игрушек исключительно, в том числе "тяжелых". В последнее время я стал подозревать, что это нереально и что никакого 3D в госте я не получу. Это так?
очень сомнительно, что вы получите виртуальную винду с нормальным внешним видом и производительностью для игр. можно попробовать конечно, сделать виндовый домен, работающий через sdl-графику (вместо vnc). все равно, вряд-ли будет приемлемо. попробуйте virtualbox, он, говорят, лучше для таких целей. xen - в основном, для серверных применений (я использую, например, для имитации всевозможных кластерных конфигураций: удобно, когда под столом работает 15 машин с postgresql, ну или 5 с ораклом

)
в настоящее время появилась еще одна тенденция, которую поддерживает xen - это виртуализация i/o. у intel это называется vt-d, что-то похожее есть у amd. идея состоит в том, что pci/pcie устройство передается целиком domU (iommu dmar re-mapping), в т.ч hmv domU - в вашем случае, скажем, фактически аппаратная передача nvidia карты виртуальной винде со всеми вытекающими 3D

проблема в том, что существующее железо либо очень дорогое для таких игр (серверное железо, строго говоря), либо - очень капризное (см
http://wiki.xensource.com/xenwiki/VTdHowTo), и тоже, кстати, не дешевое
кстати, на
http://xgu.ru/wiki/Linux_в_Xen довольно много про xen по-русски. может быть будет интересно