QEMU e portas seriais no sistema operacional convidado

1

Alguém conseguiu executar com êxito um sistema operacional convidado no QEMU / KVM, onde o convidado tem acesso total à (s) porta (s) serial (is) do Hosts, seja / dev / ttyS0, COM1 ou uma porta serial virtual fornecida pelo host.

Parece que a documentação sobre-pomarev, -serial, etc. etc. é um pouco confusa (pelo menos para mim). Eu estava com a impressão de que um sistema operacional convidado seria capaz de ver / usar uma porta serial, desde que os parâmetros adequados foram passados ao iniciar o convidado. Mas muitas pessoas estão dizendo "Não, as portas seriais são apenas para o redirecionamento de console entre o sistema operacional convidado e o host no QEMU / KVM" ... isso não faz sentido, já que o QEMU / KVM parece ser uma ótima maneira de executar coisas antigas que precisa falar com equipamentos RS232 e similares.

Além disso, se não houver uma porta serial física no host, como "criar uma"? No momento, estou usando o NetSerial, que cria uma "porta COM" (com um "modem" anexado a ela). Mas o QEMU também não parece gostar muito desse constructo.

    
por joho 06.09.2017 / 08:23

1 resposta

2

Primeiro você precisa definir um chardev para a porta serial do host e anexar um nome a ele (parâmetro id), assim:

-chardev tty,path=/dev/ttyUSB0,id=hostusbserial

Em seguida, você precisa adicionar um dispositivo serial à sua máquina virtual e vinculá-lo ao chardev que acabou de criar:

-device pci-serial,chardev=hostusbserial

Concluído. A velocidade da linha, etc., deve ser configurada no guest, o qemu selecionará as configurações e as aplicará à porta serial do host.

A opção de comando -serial é um atalho de conveniência, ele criará um chardev e o vinculará à porta serial padrão (que é um dispositivo isa-serial no usual ioport 0x3f8 no x86 e outra coisa para outras arquiteturas).

    
por 06.09.2017 / 14:56

Tags