Cách khởi động qemu trực tiếp trong bảng điều khiển (* không * trong các lời nguyền hoặc SDL)


18

Tôi dường như nhớ lại việc có thể bắt đầu qemu chỉ với đầu ra trình giả lập đầu cuối, với cửa sổ đồ họa bị tắt. Và ở đây tôi không có ý với giao diện ncurses, giao diện đó rất hay, nhưng tôi muốn đầu ra chảy trực tiếp vào thiết bị đầu cuối của mình, để cắt và dán dễ dàng hơn.

Tôi đã thử:

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

Tôi đoán một cách giải quyết có thể chấp nhận được sẽ giúp tôi có thể thay đổi kích thước bảng điều khiển lời nguyền để phù hợp với thiết bị đầu cuối tôi đang sử dụng. Ngay bây giờ thật khó chịu vì nó không vừa với kích thước thiết bị đầu cuối ...

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

Chú ý màn hình được thụt vào 12 dấu cách? Làm phiền. :)


Sử dụng thiết bị đầu cuối 80 cột?
Michael Hampton

Tôi có thể đã thề có một cách để cho dòng chảy này đúng, có lẽ tôi không nhớ điều này đúng ...
anarcat

1
Tôi tự hỏi nếu điều này không nên được hợp nhất với stackoverflow.com/questions/19565116/
triệt

Câu trả lời:


18

Câu hỏi cũ, nhưng nó vẫn có thể quan tâm đến mọi người.

Anwser ngắn:

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

ttyS0hợp lệ trên hầu hết PC. nó sẽ là một cái gì đó khác nhau trên hệ thống ARM.

Sau đó, cổng nối tiếp và QEMU được ghép trên đầu ra của bạn. Bạn có thể chuyển đổi giữa chúng với ctrl-A + C + ENTER.

Câu trả lời dài: kiểm tra blog này , nó thật tuyệt vời.


1
Dường như để làm việc mà không có nối tiếp cho tôi.
Ciro Santilli 心 心 事件

vâng có vẻ như vân vân Qemu mới nhất nó vẫn còn thú vị để tìm hiểu bạn cũng có thể để multiplex serial + Qemu console trên stdio
Fred

1
Thật không may, điều này không chuyển hướng bất kỳ đầu ra BIOS nào, bao gồm đầu ra int 0x10 được sử dụng bởi mã chế độ thực; bạn chỉ bắt đầu nhận đầu ra khi nhân Linux khởi động đủ để mở cổng nối tiếp.
David đưa ra

@DavidGiven Tôi cho rằng đó là vấn đề về mã BIOS (là SeaBIOS, không phải qemu thích hợp) thực sự làm gì với "đầu ra" 0x10.
DepressionDaniel

Bạn cũng có thể thêm console=ttyS0vào GRUB_CMDLINE_LINUX_DEFAULTtrong/etc/grub (hãy chắc chắn để gọi update-grubsau) cho nó diễn ra tự động.
Steve

3

Cài đặt SGABIOS - ISTR mà các phiên bản Qemu gần đây sử dụng tự động khi chạy cùng -nographic.


Thật kỳ lạ, điều đó dường như không được đóng gói trong Debian, vì vậy tôi nghi ngờ đây là thứ tôi đang sử dụng ...
anarcat

1

Bạn có thể cập nhật GRUB để chuyển các tùy chọn cần thiết cho kernel. Tôi đang sử dụng Ubuntu 18.04 và tôi đã làm như sau:

Cập nhật grub trong hệ điều hành khách:

  • sudoedit /etc/default/grub
  • Thay đổi GRUB_CMDLINE_LINUX=""thànhGRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
  • chạy sudo update-grub

Khởi động lại hệ điều hành khách bằng cách sử dụng như sau:

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

Tôi khuyên bạn nên thêm -nic user,hostfwd=tcp:127.0.0.1:2222-:22 hoặc tương tự như một tùy chọn, điều này sẽ cho phép kết nối ssh thông qua ssh -p 2222 localhostđó mang lại giao diện đẹp hơn một chút so với bảng điều khiển.

Các tùy chọn bàn điều khiển được sao chép từ nối tiếp từ xa của tldp


câu hỏi không thực sự là về cách cấu hình grub, nhưng nhiều qemu hơn. Nhưng tôi tin, như câu trả lời đầu tiên nói, điều đó -nographiclà chính xác. cảm ơn sự quan tâm của bạn :)
anarcat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.