Qual é a configuração mais simples de compilação / execução do QEMU para a resolução de FHD do convidado?

1

EDIT: A solução de Hermann de usar QXL é aceitável.

Eu compilo o QEMU sozinho e o executo a partir da linha de comando. Isso se deve a um patch aplicado e a uma versão mais recente do QEMU.

O objetivo é executar um convidado genérico do Windows (7+) com resolução FHD (1920x1080), sem usar área de trabalho remota (portanto, diretamente na janela do QEMU), usando um host Ubuntu 16.04 x86 / 64.

Quando eu configuro o compilador com:

./configure --target-list=x86_64-softmmu --enable-debug --enable-gtk # and other parameters

e execute o QEMU com:

$QEMU_BINARY \
  -drive if=pflash,format=raw,readonly,file=$OVMF_20160813_BIN \
  -drive if=pflash,format=raw,file=$OVMF_20160813_VARS_TMP \
  -enable-kvm \
  -machine q35,accel=kvm,mem-merge=off \
  -cpu host \
  -vga std \
  # and other parameters

O Windows limita a resolução para 800x600.

Como posso configurar / executar o QEMU para obter a resolução esperada?

Quando executo usando -vga vmware , recebo Guest has not initialized the display (yet). , o que não tenho certeza se é um bug ou se não estou configurando meu sistema ou o QEMU corretamente.

É aceitável se a solução exigir a instalação de drivers, mas estou inclinado a não executar o QEMU a partir de uma conexão de área de trabalho remota. Se não for possível acessar facilmente o FHD, até mesmo um menor está OK (qualquer coisa, exceto 800x600!).

    
por Marcus 09.01.2017 / 12:15

1 resposta

1

Eu tive este trabalho uma vez, mas ele se desfez quando eu mudei do Windows XP para o Windows 10. Agora eu enfrento o mesmo problema também. No que diz respeito à minha pesquisa, isso simplesmente não é possível devido à infeliz combinação de OVMF EFI e Windows.

A lista de resoluções disponíveis é gerada no BIOS da placa gráfica "std" virtual. A lista oficial de resoluções é fixa (veja qemu bug 498421) mas pode ser mudada se você compilar você mesmo (veja link ).

Isso só funciona com o procedimento de inicialização do BIOS. Assim que eu uso o estilo de inicialização EFI com o OVMF, o Windows escolhe depender exclusivamente do EDID fornecido pelo monitor. Infelizmente, o qemu não emula um monitor virtual. O Windows 10 não recebe o EDID e, consequentemente, volta para 800x600. Este comportamento é codificado e não pode ser alterado.

Em teoria, você pode hackear o "Basic Display Driver" da Microsoft como feito no link , mas isso falhará no Windows 7 ou mais tarde, as verificações de assinatura do driver são incentivadas.

Dentro do convidado, você pode instalar manualmente um monitor com a resolução desejada, mas o Windows ainda aguardará o EDID.

Eu recorri ao desktop remoto. Usar -vga qxl e drivers de convidados apropriados é uma alternativa, mas -  pessoalmente - não encontrei vantagens.

    
por Hermann 15.08.2017 / 14:26