web-dev-qa-db-fra.com

rediriger la sortie de la fenêtre QEMU vers un terminal exécutant qemu

Im essayant de déboguer la séquence de démarrage d'un noyau linux avec qemu, la commande que j'exécute est:

  qemu -serial stdio -kernel <path to kernel> -hda <path to rootfs> -append "root=/dev/sda terminal = ttyS0"

Au démarrage, tous les messages du noyau sont imprimés dans la fenêtre QEMU. Ce n'est que lorsque le démarrage est terminé que je récupère mon invite sur le terminal dans lequel j'ai exécuté QEMU.

Maintenant, je peux commencer à utiliser le terminal du noyau que j'utilise et voir la sortie dans le terminal et non dans la fenêtre QEMU.

Comment puis-je obtenir tous les messages, y compris les messages de démarrage, sur mon terminal et non sur la fenêtre QEMU (car je ne peux pas faire défiler vers le haut dans cette fenêtre ..)?

24
yonigo
  1. retirer -serial stdio paramètre
  2. ajouter -nographic paramètre
  3. et changez le paramètre du noyau terminal = ttyS0 à console=ttyS0. Cela devrait faire l'affaire.

qemu -nographic -kernel ./bzImage -hda ./image.hda -append root=/dev/sda console=ttyS0

Vous voudrez peut-être vérifier le script que j'utilise pour le développement du noyau: https://github.com/arapov/wrap-qemukvm (ce n'est pas très "production", mais vous pouvez trouver des _ qemucli paramètres ici)

38
Anton

référez ceci Rediriger la console Qemu vers un fichier ou le terminal hôte? pour obtenir le journal à la fois sur qemu et sur votre terminal .use "console=ttyAMA0,115200 console=tty highres=off console=ttyS0"

10
vinay hunachyal

La redirection de la sortie Qemu vers le terminal peut provoquer un problème (personnellement, je ne l'aime pas). Vous pouvez utiliser des options telles que -noframe (cela créera une nouvelle fenêtre mais aucun cadre de fenêtre) ou -curses pour faire l'expérience de la sortie qemu sur le terminal.

3
rakib_