कंसोल में सीधे qemu कैसे शुरू करें (शाप या SDL में * नहीं *)


18

मुझे लगता है कि ग्राफिक विंडो अक्षम के साथ केवल टर्मिनल एमुलेटर आउटपुट के साथ qemu को शुरू करने में सक्षम होने के लिए याद किया जा रहा है। और यहाँ मुझे ncurses इंटरफ़ेस से मतलब नहीं है, यह एक अच्छा है, लेकिन मैं चाहता हूं कि आउटपुट सीधे मेरे टर्मिनल में प्रवाहित हो, कट और पेस्ट को आसान बनाने के लिए।

मैंने कोशिश की है:

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

मुझे लगता है कि मेरे द्वारा उपयोग किए जा रहे टर्मिनल को फिट करने के लिए शाप कंसोल को आकार देने में सक्षम होने के लिए एक स्वीकार्य समाधान होगा। अभी यह कष्टप्रद है क्योंकि यह टर्मिनल आकार में फिट नहीं है ...

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

ध्यान दें कि डिस्प्ले को 12 स्थानों पर कैसे इंडेंट किया जाता है? कष्टप्रद। :)


एक 80 कॉलम टर्मिनल का उपयोग करें?
माइकल हैम्पटन

मैं शपथ ले सकता था कि इस प्रवाह को ठीक से होने देने का एक तरीका है, शायद मुझे यह अधिकार याद नहीं है ...
अनारकट

1
मुझे आश्चर्य है कि अगर इसे stackoverflow.com/questions/19565116/… और / या stackoverflow.com/questions/18098455/… के
anarcat

जवाबों:


18

पुराना सवाल है, लेकिन यह अभी भी लोगों को दिलचस्पी हो सकती है।

शॉर्ट एवेज़र:

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

ttyS0अधिकांश पीसी पर मान्य है। यह एआरएम प्रणाली पर कुछ अलग होगा।

फिर सीरियल पोर्ट और QEMU आपके आउटपुट पर मल्टीप्लेक्स हैं। आप उनके बीच स्विच कर सकते हैं ctrl-A + C + ENTER

लंबे उत्तर: इस ब्लॉग की जाँच करें , यह बहुत बढ़िया है।


1
मेरे लिए बिना सीरियल के काम करने लगता था।
सिरो सेंटिल्ली 新疆 改造 i i 事件 '21

हाँ यह नवीनतम qemu पर ऐसा लगता है कि यह अभी भी सीखना दिलचस्प है कि आप धारावाहिक + qemu कंसोल को stdio पर भी जोड़ सकते हैं
फ्रेड

1
दुर्भाग्य से यह किसी भी BIOS आउटपुट को रीडायरेक्ट नहीं करता है, जिसमें वास्तविक-मोड कोड द्वारा उपयोग किए गए int 0x10 आउटपुट शामिल हैं; लिनक्स कर्नेल बूट करने के लिए केवल एक बार ही आपको आउटपुट मिलना शुरू हो जाता है।
डेविड ने

@DavidGiven मुझे लगता है कि क्या BIOS कोड (जो SeaBIOS है, qemu उचित नहीं) वास्तव में की बात है करता है 0x10 "उत्पादन" के साथ।
डिप्रेस्डैनियल

आप यह भी जोड़ सकते हैं console=ttyS0करने के लिए GRUB_CMDLINE_LINUX_DEFAULTमें /etc/grub(सुनिश्चित करें कि कॉल करने के लिए बनाने के update-grubलिए यह जगह स्वचालित रूप से लेने के लिए के बाद)।
स्टीव

3

SGABIOS स्थापित करें - ISTR कि हाल ही में Qemu संस्करण इसे स्वचालित रूप से उपयोग करते हैं -nographic


विचित्र रूप से पर्याप्त है, कि डेबियन में पैक नहीं किया जा सकता है, इसलिए मुझे संदेह है कि यह वही था जो मैं उपयोग कर रहा था ...
aarcat

1

आप कर्नेल को आवश्यक विकल्प पास करने के लिए GRUB को अपडेट कर सकते हैं। मैं Ubuntu १ ,.०४ का उपयोग कर रहा हूं, और मैंने निम्न कार्य किया:

अतिथि OS में अपडेट ग्रब:

  • sudoedit /etc/default/grub
  • बदलें GRUB_CMDLINE_LINUX=""करने के लिएGRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
  • Daud sudo update-grub

निम्नलिखित का उपयोग करके रिबूट अतिथि OS:

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-:22एक विकल्प के रूप में या इसी तरह जोड़ने की सलाह देता हूं , यह ssh कनेक्टिविटी को सक्षम करेगा ssh -p 2222 localhostजिसके माध्यम से कंसोल की तुलना में थोड़ा अच्छा इंटरफ़ेस मिलता है।

कंसोल विकल्प को tldp के रिमोट सीरियल HOWTO से कॉपी किया जाता है


सवाल वास्तव में कैसे ग्रब कॉन्फ़िगर करने के बारे में नहीं था, लेकिन अधिक qemu। लेकिन मेरा मानना ​​है, जैसा कि पहला उत्तर कहता है, -nographicयह सही है। आपके अंतर्विरोध के लिए धन्यवाद! :)
अनारकट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.