LINUX.ORG.RU
ФорумAdmin

qemu kvm не работает опция x-vga=on

 , , ,


1

2

Здравствуйте,

не работает опция x-vga=on

qemu 2.1.50

ошибка такая:

qemu-system-x86_64: -device pci-assign,host=02:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on: Property '.x-vga' not found

изза чего она не работает? или она будет работаеть только с vfio-pci ?


покажи полную команду запуска и какой ты биос используешь?

xinu ()
Ответ на: комментарий от xinu
qemu-system-x86_64 -enable-kvm -M q35 -m 1024 -cpu host \
-bios /usr/share/qemu/bios.bin -vga none \
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device piix4-ide,bus=pcie.0,id=ahci \
-drive file=/mnt/base/win.img,id=disk,format=raw \
-boot menu=on \
-device pci-assign,host=02:00.0,bus=root.1,addr=00.0,multifunction=on \
-device pci-assign,host=02:00.1,bus=root.1,addr=00.1

вот сейчас так запускаю

нужно чтоб вывод был через vga адаптер

как посмотреть опции pci-assign ? и у него вообще есть подобная опция?

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

как посмотреть опции pci-assign ?

увы, не подскажу и в двух официальных документациях и --help'е этого нет.

и у него вообще есть подобная опция?

не могу знать, но скорее всего нет, потому что x-vga это часть vfio.

-bios /usr/share/qemu/bios.bin

рекомендую попробовать pure UEFI-биос (OVMF) для него не нужен никакой x-vga и всё остальное legacy, которое только мешает пробросу и работе, но это при условии, что у тебя сама видеокарта тоже с UEFI-биосом.

-M q35

почему не -machine pc-i440fx-2.0 ? Как показала практика, и как утверждает автор vfio и гуру проброса Alex Williamson, он лучше и стабильнее не только в плане проброса, но и самой работы, если гость - виндовс.

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

-device pci-assign,host=02:00.1,bus=root.1,addr=00.1

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

Т.е. работает видео с драйвером - только после этого делать звук.

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

думал наоборот нужно прокидывать карту целиком

щяс звук уберу буду пробовать pure UEFI

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

как я понял там нужны совсем другие опции?

Вот мой запуск (/mnt/vm/vm.sh):

QEMU="/usr/bin/qemu-system-x86_64"

NIC="virtio"

gen_macaddr() {
    printf 'DE:AD:%02X:%02X:%02X:%02X\n' $((RANDOM%256)) $(($$%256)) $(($$/256%256)) $(($1))
}

MACADDR0=$(gen_macaddr 10)

echo "macaddr0: ${MACADDR0}"

${QEMU} \
    -enable-kvm -realtime mlock=off -rtc base=localtime \
    -m 4096 -machine pc-i440fx-2.0,accel=kvm 
    -cpu host,hv_relaxed,hv_vapic,hv_spinlocks=0x1000 -smp 4,sockets=1,cores=4,threads=1 \
    -drive if=pflash,format=raw,readonly,file=/mnt/vm/OVMF/OVMF_CODE.fd \
    -drive if=pflash,format=raw,file=/mnt/vm/OVMF/OVMF_VARS.fd \
    -device pci-assign,host=01:00.0 \
    -device virtio-scsi-pci,id=scsi \
    -drive file=/mnt/vm/windows8.qcow2,if=virtio,id=c,format=qcow2,cache=none,aio=native \
    -boot menu=off,strict=on -vga none -nographic \
    -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
    -device usb-host,hostbus=3,hostport=3 \
    -device usb-host,hostbus=3,hostport=4 \
    -net nic,vlan=0,macaddr=${MACADDR0},model=${NIC} -net bridge,vlan=0
Когда устанавливаю, добавляю диск с virtio драйверами для сети и диска, а также установочный образ восьмерки:
    -drive file=/mnt/vm/windows8.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install \
    -cdrom /mnt/vm/virtio.iso \

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

ошибок вроде не выдаёт

но не могу осилить этот биос..

как загрузится с диска через него?

оно автоматом не грузит

после запуска выкидывает в коносоль биоса

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

перехожу в Boot Manager ==> EFI DVD/CDROM выбираю

и меня выкидываот обратно в главное меню

хотя образ указан диск тоже в конфиге

вот конфиг:

qemu-system-x86_64 -enable-kvm -realtime mlock=off -rtc base=localtime \
    -m 1024 -machine pc-i440fx-2.0,accel=kvm \
    -cpu host,hv_relaxed,hv_vapic,hv_spinlocks=0x1000 -smp 4,sockets=1,cores=4,threads=1 \
    -drive if=pflash,format=raw,readonly,file=/home/us/OVMF_CODE.fd \
    -drive if=pflash,format=raw,file=/home/us/OVMF_VARS.fd \
    -device virtio-scsi-pci,id=scsi \
    -drive file=/mnt/img/win.img,if=virtio,id=c,format=raw,cache=none,aio=native \
    -drive file=/mnt/iso/WIN7_Enterprise-GRMCENEVAL_EN_DVD.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install \
    -cdrom /home/us/virtio-win-0.1-81.iso \
    -device pci-assign,host=02:00.0 \
    -boot menu=off,strict=on

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

перехожу в Boot Manager ==> EFI DVD/CDROM выбираю

Не нужно заходить в бут-манагер, если установочный образ (как правило оригинальный или обновленный, я устанавливаю восьмерку из этого, семерка тоже поддерживает UEFI загрузку, читать здесь.) поддерживает UEFI-загрузку или установленная система устанавливалась в режиме UEFI, то система стартует сама, при первой установке может просто выдать список устройств, там кроме всего прочего будет FS0: - это uefi-раздел, заходишь в него и запускаешь (как-то так):

Shell> FS0:
EFI\BOOT\BOOTX64.EFI
если установочный образ не поддерживает UEFI-загрузку (типа зверь-сиди всяких), то FS0 не появится.

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

поставил Win8 всё работает спасибо!

на этот биос win7 непоставиш? и диск с установленной win7 c него тоже запустить нельзя?

и почемуто нет меню запуска

выставляю

-boot menu=on

и при загрузке после логотипа биоса сразу win8 грузится

ну если он только uefi грузит то это меню ненужно

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

на этот биос win7 непоставиш? и диск с установленной win7 c него тоже запустить нельзя?

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

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

Лично я для себя вопрос с семеркой закрыл.

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

ну а карту-то саму получилось полностью пробросить, установить драйвера, сравнить разницу между нативом и проброшенной в бенчамарках типа Unigine и LuxMark?

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

проверяю в играх)

работает также как на железе ( на глаз разницы не видно)

но почемуто гость вешает всю систему во время 2рого запуска

или когда перезагружаю

гость выключается нормально но на стадии загрузки вся система виснет.. в консоль не выходит

пробовал и с прокинутым звуком от карты и без него всёравно виснет

причём оно висло и на ubuntu и на slackware и версии qemu были разные на убунте qemu 2.0.0 на слаке 1.7.2

ядро грузится с:

intel_iommu=on pci-stub.ids=1002:6818,1002:aab0

пробрасываю так:

echo "1002 6818" > /sys/bus/pci/drivers/pci-stub/new_id
echo 0000:02:00.0 > /sys/bus/pci/devices/0000:02:00.1/driver/unbind
echo 0000:02:00.0 > /sys/bus/pci/drivers/pci-stub/bind
echo "1002 aab0" > /sys/bus/pci/drivers/pci-stub/new_id
echo 0000:02:00.1 > /sys/bus/pci/devices/0000:02:00.1/driver/unbind
echo 0000:02:00.1 > /sys/bus/pci/drivers/pci-stub/bind 

модули

pci-stub kvm kvm-intel

и кофиг

qemu-system-x86_64 -enable-kvm -realtime mlock=off -rtc base=localtime \
    -m 4096 -machine pc-i440fx-2.0,accel=kvm \
    -cpu host,hv_relaxed,hv_vapic,hv_spinlocks=0x1000 -smp 4,sockets=1,cores=4,threads=1 \
    -drive if=pflash,format=raw,readonly,file=/home/us/bin/OVMF_CODE.fd \
    -drive if=pflash,format=raw,file=/home/us/bin/OVMF_VARS.fd \
    -device virtio-scsi-pci,id=scsi \
    -drive file=/home/us/win8.qcow2,if=virtio,id=c,format=qcow2,cache=none,aio=native \
    -device pci-assign,host=02:00.0 \
    -device pci-assign,host=02:00.1 \
    -boot menu=off,strict=on

вроде косяков нет..

изза железа может виснуть?

и ещё возможно сделать чтоб гость загружался без окна qemu чтоб картинка была на мониторе который к карте подключен?

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

изза железа может виснуть?

Нет, всё очень просто, я думал ты об этом знаешь: при pci-assign виртуалка с проброшенной картой может загружаться только один раз, дальше - ребут хоста - или отключать в гостевой винде карту и выключать виртуалку, но лично у меня такой способ не заработал. Novell-ch с этим борется скриптом в госте: http://www.gearsongallium.com/?p=1020

В этом и заключается разница между pci-assign и vfio, на котором карта ресетится автоматически и нет зависания на следующей загрузке без ребута.

Но у меня (как и у Novell-ch, и возможно у тебя) не взлетело с vfio, зато идеально работает с pci-assign.

Эта тема не раз поднималась и обсуждалась на лоре, полоркай по pci-assign или как-то так.

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

и ещё возможно сделать чтоб гость загружался без окна qemu чтоб картинка была на мониторе который к карте подключен?

-vga none -nographic
xinu ()
Ответ на: комментарий от xinu

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

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

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

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

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

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

у меня видно старт биоса, загрузка с Logo, а дальше уже загруженная. Чтобы избежать ввода пароля, нужно при установке отключить интернет на хосте (но не интерфейс на госте) и создать локальный аккаунт в восьмерке, будет стартовать сразу в рабочий стол без ввода логина/пароля.

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

у меня видно старт биоса, загрузка с Logo,

а у меня почемуто не видно

и вот ещё по поводу usb

вот эти 3 строчки:

    -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
    -device usb-host,hostbus=3,hostport=3 \
    -device usb-host,hostbus=3,hostport=4 \

как я понял для проброса не контроллера а отдельных портов?

пробовал пробросить нечего не выходит ошибка:

qemu-system-x86_64: -device usb-host,hostbus=3,hostport=3: Parameter 'driver' expects device type

вот вывод lsusb

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

в опцию hostbus нужно подставлять значение от Bus а значение для hostport где взять?

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

не выходит lsusb -t

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 7: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 7: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 8: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 8: Dev 4, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 2: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/15p, 480M

флешка у меня 3 строчка с низу

__ Port 2: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 480M

чтоб её пробросить строчка длжна выглядеть так:

    -device usb-host,hostbus=4,hostport=2 \
?

всёравно выдаёт ошибку

qemu-system-x86_64: -device usb-host,hostbus=3,hostport=2: Parameter 'driver' expects device typ

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

если так:

Bus 04.Port 1: 
    |__ Port 1:
то:
-device usb-host,hostbus=4,hostport=1
а если так:
Bus 03.Port 1: 
    |__ Port 1: 
        |__ Port 2:
то уже вот так:
-device usb-host,hostbus=3,hostport=1.2
уловил?

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

Не подскажу, не сталкивался с такой ошибкой.

Когда у меня включена дополнительная пара клавиатуры и мышки:

/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/5p, 12M
    |__ Port 3: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
-device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
-device usb-host,hostbus=3,hostport=3 \
-device usb-host,hostbus=3,hostport=4 \
что такое addr=0x1.0x2 я не в курсе, просто скопипастил его себе, но раз работает, решил не убирать.

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

обновил libusb ошибки сейчас нет

но всёравно usb не прокидываются

гость их видит но не монтирует

выглядит это так

http://i.imgur.com/AXaEWad.png

прокинуто 2 флешки

когда вытаскиваю одну или обе они в госте тоже извлекаются

но среди устройст и дисков их не видно

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

ну и ещё

я пробовал так (без -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \)

-usb -device usb-host,hostbus=3,hostport=1.1 \
-usb -device usb-host,hostbus=3,hostport=1.2 \
тоже самое

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

а мышка прокинулась нормально после выключения гостя вернулась хосту

мб для флешки драйвера какието нужны?

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

ну попробуй подсунуть из virtio-win-0.1-81.iso, для жесткого диска и сети там же, может и для флешки там.

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