Comment démarrer qemu directement dans la console (* pas * en curses ou SDL)


18

Je me souviens avoir pu démarrer qemu avec uniquement la sortie de l'émulateur de terminal, avec la fenêtre graphique désactivée. Et ici, je ne veux pas dire avec l'interface ncurses, celle-ci est sympa, mais je veux que la sortie coule directement dans mon terminal, pour faciliter le copier-coller.

J'ai essayé:

qemu -nographic binary.img # simply no display
qemu -curses binary.img # nice text output, but not directly flowing in the terminal
qemu -noframe -curses binary.img # same as above
qemu -nographic -curses binary.img

Je suppose qu'une solution de contournement acceptable serait pour moi de pouvoir redimensionner la console curses pour l'adapter au terminal que j'utilise. En ce moment c'est ennuyeux car il ne correspond pas à la taille du terminal ...

qemu -curses  binary.img



           SeaBIOS (version 1.7.0-20120603_194846-gandalf)



           iPXE (http://ipxe.org) 00:03.0 C900 PCI2.10 PnP PMM+07FC86A0+07F886A0 C900


           Booting from Hard Disk...
           [...]

Remarquez comment l'affichage est en retrait de 12 espaces? Énervant. :)


Utiliser un terminal à 80 colonnes?
Michael Hampton

J'aurais pu jurer qu'il y avait un moyen de laisser ça couler correctement, peut-être que je ne me souviens pas de ce droit ...
anarcat

1
je me demande si cela ne devrait pas être fusionné avec stackoverflow.com/questions/19565116/… et / ou stackoverflow.com/questions/18098455/…
anarcat

Réponses:


18

Vieille question, mais elle pourrait encore intéresser les gens.

Réponse courte:

qemu -nographic -serial mon:stdio -append 'console=ttyS0' binary.img

ttyS0valable sur la plupart des PC. ce serait quelque chose de différent sur le système ARM.

Ensuite, le port série et le QEMU sont multiplexés sur votre sortie. Vous pouvez basculer entre eux avec ctrl-A + C + ENTER.

Réponse longue: consultez ce blog , c'est génial.


1
Semblait travailler sans série pour moi.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

oui, il semble que sur le dernier qemu, il est toujours intéressant d'apprendre que vous pouvez également multiplexer la console série + qemu sur stdio
Fred

1
Malheureusement, cela ne redirige aucune sortie du BIOS, y compris la sortie int 0x10 utilisée par le code en mode réel; vous ne commencez à obtenir la sortie que lorsque le noyau Linux démarre suffisamment pour ouvrir le port série.
David Given

@DavidGiven Je suppose que est une question de ce que le code BIOS (qui est seabios, pas qemu approprié) en fait fait avec le 0x10 « sortie ».
DepressedDaniel

Vous pouvez également ajouter console=ttyS0à GRUB_CMDLINE_LINUX_DEFAULTen /etc/grub(assurez - vous d'appeler update-grubaprès) pour qu'elle ait lieu automatiquement.
Steve

3

Installez SGABIOS - ISTR avec lequel les versions récentes de Qemu l'utilisent automatiquement lors de l'exécution -nographic.


curieusement, cela ne semble pas être empaqueté dans Debian, donc je doute que c'était ce que j'utilisais ...
anarcat

1

Vous pouvez mettre à jour GRUB pour transmettre les options requises au noyau. J'utilise Ubuntu 18.04 et j'ai fait ce qui suit:

Mettre à jour grub dans le système d'exploitation invité:

  • sudoedit /etc/default/grub
  • Remplacer GRUB_CMDLINE_LINUX=""parGRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
  • courir sudo update-grub

Redémarrez le système d'exploitation invité à l'aide des éléments suivants:

qemu-system-x86_64 \
  -drive file=ubuntu-18.04-live-server-amd64.img.qcow2,format=qcow2 \
  -nographic \
  -m 4G \
;

Je recommande également d'ajouter -nic user,hostfwd=tcp:127.0.0.1:2222-:22ou similaire en option, cela permettra la connectivité ssh via ssh -p 2222 localhostce qui donne une interface légèrement plus agréable que la console.

Les options de la console sont copiées à partir du HOWTO série distant de tldp


la question n'était pas vraiment de savoir comment configurer grub, mais plus de qemu. mais je crois, comme le dit la première réponse, que -nographicc'est exact. merci pour votre contirbution! :)
anarcat
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.