Virtualização Linux QEMU-KVM na linha de comando

6

Descobri recentemente que qemu-kvm tem uma opção -curses muito promissora que, em vez de iniciar uma janela X, mostrará uma boa saída ncurses do guest adequada para gerenciar um guest Linux a partir da linha de comando (ou mais satisfatoriamente, dentro de uma sessão de tela, ou até mesmo através de ssh).

Então, tentei fazer isso e descobri que meu convidado do Arch Linux entra em um "modo gráfico", tornando esse recurso inútil. Pelo que pude constatar, o problema é que o kernel guest inicializa um framebuffer para permitir uma resolução de mais de 80x60 caracteres (e gráficos bonitos). Então eu fui em uma busca para encontrar uma maneira de impedir que o kernel guest iniciasse o framebuffer. Eu tentei uma variedade de parâmetros de kernel, nomodeset , fb=false , vga=0x0FF , vga=ask (e subseqüentemente selecionando um modo VGA em vez de VESA ), sem sucesso: toda vez qemu-kvm -curses relatórios estão em um "Modo Gráfico" no guest (após os menus de inicialização), e eu não consigo interagir com o convidado a partir de um terminal de linha de comando no host.

Existe alguma maneira fácil de manter o kernel guest no mesmo modo em que ele inicia (sem framebuffer) sem alterar um parâmetro de compilação do kernel? Se não, quais opções de compilação do kernel devo mudar para compilar um kernel sem suporte a framebuffer? Existe uma maneira melhor de obter um login de VM a partir de um terminal no host no modo de texto puro (adequado para executar em uma sessão de tela no host, por exemplo) sem recorrer a executar o sshd no convidado?

    
por malloc47 17.02.2012 / 05:53

3 respostas

4

Portanto, o módulo subjacente que precisa ser desativado é fbcon , no entanto, o kernel do Arch não o compila como um módulo, portanto, colocando-o na lista negra. Talvez ainda seja possível identificar e desabilitar o driver específico que fbcon lança, mas esse driver não está listado em lsmod , portanto, o driver qemu-kvm é compilado no Arch. Para desabilitar fbcon , você precisa usar sua própria sintaxe de opção de inicialização estranha:

fbcon=map:99

onde 99 é apenas um número arbitrariamente grande que é maior que o número de dispositivos framebuffer no sistema (geralmente 1-2).

Veja fbcon.txt para mais informações.

    
por 25.02.2012 / 20:48
1

vga16fb.modeset=0 funcionou para mim no passado (no Ubuntu). Também no Ubuntu, a lista negra de todos os módulos de framebuffer (inclusive o vga16fb incluído) funcionou.

    
por 24.02.2012 / 21:46
0

Tente executá-lo assim:

TERM=dumb qemu-kvm -curses ...
    
por 17.02.2012 / 10:36