Come avviare qemu direttamente nella console (* non * in curses o SDL)


18

Mi sembra di ricordare di poter avviare qemu solo con l'uscita dell'emulatore di terminale, con la finestra grafica disabilitata. E qui non intendo con l'interfaccia di ncurses, che è bello, ma voglio che l'output fluisca direttamente nel mio terminale, per rendere più facile il taglia e incolla.

Ho provato:

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

Immagino che una soluzione accettabile sarebbe per me poter ridimensionare la console delle maledizioni per adattarla al terminale che sto usando. In questo momento è fastidioso perché non si adatta alle dimensioni del terminale ...

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...
           [...]

Notate come il display è rientrato di 12 spazi? Fastidioso. :)


Utilizzare un terminale a 80 colonne?
Michael Hampton

Avrei potuto giurare che c'era un modo per lasciar fluire correttamente questo, forse non me lo ricordo bene ...
Anarcat

1
Mi chiedo se questo non dovrebbe essere fusa con stackoverflow.com/questions/19565116/... e / o stackoverflow.com/questions/18098455/...
anarcat

Risposte:


18

Vecchia domanda, ma potrebbe comunque interessare le persone.

Risposta breve:

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

ttyS0valido sulla maggior parte dei PC. sarebbe qualcosa di diverso sul sistema ARM.

Quindi la porta seriale e la QEMU vengono multiplexate sull'output. Puoi passare da uno all'altro con ctrl-A + C + ENTER.

Risposta lunga: controlla questo blog , è fantastico.


1
Sembrava funzionare senza seriale per me.
Ciro Santilli 21 改造 中心 法轮功 六四 事件

sì, sembra che nell'ultimo qemu sia ancora interessante imparare che puoi anche multiplexare seriale + console qemu su stdio
Fred

1
Sfortunatamente questo non reindirizza alcun output del BIOS, incluso l'output 0x10 utilizzato dal codice in modalità reale; si inizia a ottenere output solo quando il kernel Linux si avvia abbastanza da aprire la porta seriale.
David, dato il

@DavidGiven Suppongo che sia una questione di cosa faccia effettivamente il codice BIOS (che è SeaBIOS, non qemu corretto) con l '"output" 0x10.
Depresso

È inoltre possibile aggiungere console=ttyS0alla GRUB_CMDLINE_LINUX_DEFAULTa /etc/grub(assicuratevi di chiamare update-grubdopo) perché abbia luogo automaticamente.
Steve

3

Installa SGABIOS - ISTR con cui le versioni recenti di Qemu lo usano automaticamente quando eseguito -nographic.


stranamente, questo non sembra essere impacchettato in Debian, quindi dubito che fosse quello che stavo usando ...
Anarcat

1

È possibile aggiornare GRUB per passare le opzioni richieste al kernel. Sto usando Ubuntu 18.04 e ho fatto quanto segue:

Aggiorna grub nel SO guest:

  • sudoedit /etc/default/grub
  • Cambia GRUB_CMDLINE_LINUX=""inGRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
  • correre sudo update-grub

Riavvia il SO guest usando quanto segue:

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

Raccomando di aggiungere -nic user,hostfwd=tcp:127.0.0.1:2222-:22o simili anche come opzione, questo abiliterà la connettività ssh tramite la ssh -p 2222 localhostquale fornisce un'interfaccia leggermente migliore rispetto alla console.

Le opzioni della console vengono copiate dall'HOWTO seriale remoto di tldp


la domanda non era davvero su come configurare grub, ma più qemu. ma credo, come dice la prima risposta, che -nographicsia corretto. grazie per il tuo contagio! :)
anarcat
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.