web-dev-qa-db-ja.com

コンソールで直接qemuを起動する方法(cursesまたはSDLでは*ではありません*)

グラフィックウィンドウを無効にして、ターミナルエミュレータの出力のみで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スペースインデントされていることに注意してください。迷惑です。 :)

21
anarcat

古い質問ですが、それでも人々の興味を引くかもしれません。

短いアンサー:

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

ttyS0はほとんどのPCで有効です。これは、ARMシステムでは異なります。

次に、シリアルポートとQEMUが出力で多重化されます。 ctrl-A + C + ENTERでそれらを切り替えることができます。

長い答え: このブログ を確認してください。すばらしいです。

21
Fred

インストール [〜#〜] sgabios [〜#〜] --nographicで実行すると、最新のQemuバージョンで自動的に使用されるというISTR。

3
sendmoreinfo

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 -p 2222 localhostを介したssh接続が有効になり、コンソールよりもわずかに優れたインターフェイスが提供されます。

コンソールオプションは tldpのリモートシリアルHOWTO からコピーされます

1
Julian