Qemu'yu doğrudan konsoldan başlatma (lanetler veya SDL'de * değil *)


18

Grafik penceresi devre dışı bırakıldığında, qemu'yu yalnızca terminal emülatör çıkışı ile başlatabildiğimi hatırlıyorum. Ve burada ncurses arayüzü ile kastetmiyorum, bu güzel, ama çıkışın doğrudan terminalime akmasını, kesmeyi ve yapıştırmayı kolaylaştırmak istiyorum.

Denedim:

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

Sanırım lanetler konsolunu kullandığım terminale uyacak şekilde yeniden boyutlandırabilmem için kabul edilebilir bir geçici çözüm olurdu. Şu anda sinir bozucu çünkü terminal boyutuna uymuyor ...

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

Ekranın 12 boşluğa nasıl girintili olduğuna dikkat edin? Can sıkıcı. :)


80 sütunlu terminal mi kullanıyorsunuz?
Michael Hampton

Bu akışı düzgün bir şekilde
akıtmanın

1
Bu ile birleşti edilmemelidir mi merak ediyorum stackoverflow.com/questions/19565116/... ve / veya stackoverflow.com/questions/18098455/...
anarcat

Yanıtlar:


18

Eski bir soru, ama yine de insanları ilgilendirebilir.

Kısa cevap:

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

ttyS0çoğu bilgisayarda geçerlidir. ARM sisteminde farklı bir şey olurdu.

Daha sonra seri port ve QEMU çıkışınızda çoğullanır. İle aralarında geçiş yapabilirsiniz ctrl-A + C + ENTER.

Uzun cevap: Bu blogu kontrol edin , harika.


1
Benim için seri olmadan çalışmış gibi görünüyordu.
Ciro Santilli 事件 改造 中心 法轮功 六四 事件

evet öyle görünüyor ki son qemu hala stdio üzerinde çoklama seri + qemu konsolu için de yapabilirsiniz öğrenmek için ilginç
Fred

1
Ne yazık ki bu, gerçek mod kodu tarafından kullanılan int 0x10 çıkışı dahil olmak üzere herhangi bir BIOS çıkışını yönlendirmez; yalnızca Linux çekirdeği seri bağlantı noktasını açacak kadar önyükleme yaptıktan sonra çıktı almaya başlarsınız.
David Verilen

Herhalde @DavidGiven ki (SeaBIOS olduğunu qemu uygun değil) BIOS kod aslında ne meselesi yapar 0x10 "çıkışı" ile.
DepressedDaniel

Ayrıca ekleyebilir console=ttyS0için GRUB_CMDLINE_LINUX_DEFAULTde /etc/grub(Emin aramaya yapmak update-grubotomatik gerçekleşmesi için sonra).
Steve

3

Yeni Qemu sürümlerinin çalıştırıldığında otomatik olarak kullandıkları SGABIOS - ISTR'yi yükleyin -nographic.


garip bir şekilde, bu Debian içinde paketlenmiş gibi görünmüyor, bu yüzden kullandığım şüphe ...
anarcat

1

Gerekli seçenekleri çekirdeğe iletmek için GRUB'u güncelleyebilirsiniz. Ubuntu 18.04 kullanıyorum ve aşağıdakileri yaptım:

Konuk işletim sistemindeki grub güncellemesi:

  • sudoedit /etc/default/grub
  • Değişim GRUB_CMDLINE_LINUX=""içinGRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
  • Çalıştırmak sudo update-grub

Aşağıdakileri kullanarak konuk işletim sistemini yeniden başlatın:

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

-nic user,hostfwd=tcp:127.0.0.1:2222-:22Bir seçenek eklemeyi veya benzer olarak tavsiye etmenizi öneririm , bu ssh -p 2222 localhostkonsoldan biraz daha güzel bir arayüz sağlayan ssh bağlantısını etkinleştirir .

Konsol seçenekleri tldp'nin uzak seri NASIL belgesinden kopyalanır


soru gerçekten grubun nasıl yapılandırılacağı değil, daha fazla qemu idi. ama ilk cevabın söylediği gibi, bunun -nographicdoğru olduğuna inanıyorum . Katkınız için teşekkürler! :)
anarcat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.