Cara memulai qemu langsung di konsol (* tidak * dalam kutukan atau SDL)

18

Saya ingat dapat memulai qemu hanya dengan keluaran emulator terminal, dengan jendela grafis dinonaktifkan. Dan di sini saya tidak bermaksud dengan antarmuka ncurses, yang bagus, tapi saya ingin output mengalir langsung ke terminal saya, untuk membuat cut dan paste lebih mudah.

Saya telah mencoba:

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

Saya kira solusi yang dapat diterima bagi saya untuk dapat mengubah ukuran konsol kutukan agar sesuai dengan terminal yang saya gunakan. Sekarang ini menjengkelkan karena tidak sesuai dengan ukuran 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...
           [...]

Perhatikan bagaimana tampilan indentasi 12 spasi? Mengganggu. :)

anarcat
sumber
Gunakan terminal 80 kolom?
Michael Hampton
Saya bisa bersumpah ada cara untuk membiarkan ini mengalir dengan baik, mungkin saya tidak ingat ini benar ...
anarcat
1
saya bertanya-tanya apakah ini tidak boleh digabungkan dengan stackoverflow.com/questions/19565116/… dan / atau stackoverflow.com/questions/18098455/…
anarcat
terkait: stackoverflow.com/questions/6710555/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Jawaban:

18

Pertanyaan lama, tapi mungkin masih menarik minat orang.

Jawaban singkat:

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

ttyS0valid pada kebanyakan PC. itu akan menjadi sesuatu yang berbeda pada sistem ARM.

Kemudian port serial dan QEMU di-multiplexing pada output Anda. Anda dapat beralih di antara mereka dengan ctrl-A + C + ENTER.

Jawaban panjang: periksa blog ini , sangat mengagumkan.

Fred
sumber
1
Sepertinya bekerja tanpa seri untuk saya.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
ya sepertinya begitu pada qemu terbaru itu masih menarik untuk dipelajari kamu juga bisa untuk multiplex serial + qemu console di stdio
Fred
1
Sayangnya ini tidak mengarahkan output BIOS apa pun, termasuk output 0x10 int yang digunakan oleh kode mode real; Anda hanya mulai mendapatkan output setelah kernel Linux melakukan booting cukup untuk membuka port serial.
David Diberikan
@DavidGiven Saya kira itu soal apa kode BIOS (yang SeaBIOS, tidak qemu yang tepat) benar-benar tidak dengan "output" 0x10.
DepressedDaniel
Anda juga dapat menambahkan console=ttyS0ke GRUB_CMDLINE_LINUX_DEFAULTdalam /etc/grub(pastikan untuk memanggil update-grubsetelah) agar itu terjadi secara otomatis.
Steve
3

Instal SGABIOS - ISTR yang digunakan versi Qemu terbaru secara otomatis saat dijalankan -nographic.

sendmoreinfo
sumber
anehnya, itu sepertinya tidak dikemas dalam Debian, jadi saya ragu ini yang saya gunakan ...
anarcat
1

Anda dapat memperbarui GRUB untuk meneruskan opsi yang diperlukan ke kernel. Saya menggunakan Ubuntu 18.04, dan saya melakukan hal berikut:

Perbarui grub di OS tamu:

  • sudoedit /etc/default/grub
  • Ubah GRUB_CMDLINE_LINUX=""keGRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
  • Lari sudo update-grub

Reboot OS tamu menggunakan yang berikut:

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

Saya sarankan menambahkan -nic user,hostfwd=tcp:127.0.0.1:2222-:22atau serupa sebagai opsi juga, ini akan memungkinkan konektivitas ssh melalui ssh -p 2222 localhostyang memberikan antarmuka yang sedikit lebih bagus daripada konsol.

Opsi konsol disalin dari HOWTO serial jarak jauh tldp

Julian
sumber
pertanyaannya bukan tentang bagaimana mengkonfigurasi grub, tetapi lebih banyak qemu. tetapi saya percaya, seperti jawaban pertama mengatakan, itu -nographicbenar. terima kasih atas contirbution kamu! :)
anarcat