콘솔에서 직접 qemu를 시작하는 방법 (curses 또는 SDL에서는 * not *)


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

수용 가능한 해결 방법은 내가 사용하는 터미널에 맞게 curses 콘솔의 크기를 조정할 수있는 것입니다. 지금은 터미널 크기에 맞지 않기 때문에 성가시다 ...

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 열 터미널을 사용하십니까?
Michael Hampton

나는 수 있었다 맹세 ... 제대로, 어쩌면 내가이 권리를 기억하지 못하는이 흐르게 할 수있는 방법이 있었다
anarcat


답변:


18

오래된 질문이지만 여전히 사람들에게 관심이있을 수 있습니다.

짧은 답변 :

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

ttyS0대부분의 PC에서 유효합니다. ARM 시스템에서는 다른 것입니다.

그런 다음 직렬 포트와 QEMU가 출력에 다중화됩니다. 로 전환 할 수 있습니다 ctrl-A + C + ENTER.

긴 대답 : 이 블로그를 확인하십시오 . 굉장합니다.


1
나를 위해 시리얼없이 작동하는 것 같았습니다.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

그렇습니다. 최신 qemu에서는 stdio에서 serial + qemu 콘솔을 멀티플렉싱 할 수 있다는 것도 여전히 흥미 롭습니다
Fred

1
불행히도 이것은 리얼 모드 코드에서 사용되는 int 0x10 출력을 포함하여 BIOS 출력을 리디렉션하지 않습니다. Linux 커널이 부팅되어 직렬 포트를 열 수있을 때만 출력을 시작합니다.
David 주어진

내가 생각 @DavidGiven 그 (SeaBIOS이다, QEMU 적절하지) BIOS 코드가 실제로 무엇의 문제 않습니다 을 0x10 "출력"로.
우울 Daniel

당신은 또한 추가 할 수 있습니다 console=ttyS0GRUB_CMDLINE_LINUX_DEFAULT있는 /etc/grub(확인 전화를 할 수 있도록 update-grub자동으로 개최하는 후).
Steve

3

최신 Qemu 버전에서 실행할 때 SGABIOS – ISTR을 설치 하십시오-nographic .


이상하게도, 그것은 데비안 패키지로되어 있지 않은 것 같습니다. 그래서 이것이 제가 사용했던 것이
아닌가

1

GRUB를 업데이트하여 필요한 옵션을 커널에 전달할 수 있습니다. Ubuntu 18.04를 사용하고 있으며 다음을 수행했습니다.

게스트 OS에서 grub 업데이트 :

  • sudoedit /etc/default/grub
  • 변경 GRUB_CMDLINE_LINUX=""GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
  • 운영 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 에서 복사됩니다


문제는 실제로 grub을 구성하는 방법에 관한 것이 아니라 더 많은 qemu입니다. 그러나 첫 번째 답변에서 알 수 있듯이 -nographic맞습니다. contirbution 주셔서 감사합니다! :)
anarcat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.