qemu
QEMU の -net user はとても便利なのだがゲスト OS に DHCP クライアントを備えていることを要求する。 NIC ドライバやプロトコルスタックを少しずつ積み上げて開発することに QEMU を使用している自作 OS にはやさしくない。 QEMU は MAC アドレスを知って…
QEMUは kqemu を使わないとデバッグレジスタが使えないっぽい。 Ubuntuに kqemu を入れた。 wget http://fabrice.bellard.free.fr/qemu/kqemu-1.3.0pre11.tar.gz tar zvxf kqemu-1.3.0pre11.tar.gz cd kqemu-1.3.0pre11 ./configure make sudo make install …
[qemu-discuss] [PATCH] target-i386: DR6 single step exception status bitkqemu を使えばデバッグレジスタはそのまま使えそうな雰囲気だよな。 逆に kqemu を有効にしないと使えない? 別件 再聊 CPUState、qemu 的 gdbserver何やら面白そうな事が書いて…
「QemuのNE2000から割り込みが来ない」と書いたがやっと割り込みが来た。 uIP も動いている。 以下詳細なデバッグログ。(ほとんどの人には役に立たないと思う)
QemuのNE2000から割り込みが来ない。 割り込みがこないってのは、もはや合言葉になりつつある。 Qemuをソースからいれて DEBUG_NE2000 を有効にしたところ、ne2000_update_irq が呼ばれている模様。 つまりMona と Qemu の間で消失している(?)ということに。…
Ubuntu 上で Qemu を動かすときのネットワーク設定のテストのためにゲストOSを Ubuntu にして起動してみる。 http://www.oszoo.org/wiki/index.php/Ubuntu-warty.zoo.tar.bz2 から Bittorrent で1GBほどのイメージをダウンロード。 起動 qemu -net nic -net …
実況中継気味。 todo 1. QEMU内でパケットが消失しているか? 2. プロトコルスタックの後半でパケットが捨てられていないか? 3.MonaからのパケットのIPヘッダのFlagsは0 4.MSSが1446になっているが、データサイズが安定していない 5.MonaからのAckパケットに…
uIPがパケットを受信した直後(パケットのdrop判断をする前)にTCPパケットをlogprintでdumpするようにした。 logprintfはserial portに出力するのでQEMUを --serial file:serial.logと起動してみたがだめだった。 id:Yamami:20050516#p1のように、vl.cに直接…
実況中継気味 以前のバージョンのQEMU + Mona でも、QEMU-0.8.0でも発生する問題。 現象 Monaからはてなダイアリーなどを HTTP GET したときにGETした内容が途中できれてしまう。 長いパケットが途中できれてしまう疑惑。 検証1 どこの段階でパケットが切れ…
GETリクエスト不正の原因調査 Etherealレベルでパケットが切れているか再調査 切れている場合はTAPを再インストールしてみる。 の3つを調査。 GETリクエスト不正はバグだった→修正 Etherealレベルで見ると、正確には「パケットが全部届いていない」 TAPは専…
kazuさんからLinuxだとIRQが11だと情報を頂き、早速試して見たところうまくいきました。 情報ありがとうございました。 結局、まとめると 現象:Monaからのパケット送信はできるが受信ができない 原因:IRQが間違っていたので割り込みが来ずパケットの受信だ…
以下の手順で調査中。 readができていないということは、割り込みがきていない? NicServerレベルでは割り込みがきていない? ではkernelレベルでは? → irq 9に割り込みがきていない。 NE2000: Set IRQ line 16 to 1 (43 01)というメッセージがQEMUコンソール…
実況中継気味。 現象 QEMU-0.8.0(with vlan, tapパッチ)でMonaを実行するとNE2000が見つからない。 検証1 QEMUのne2000.cにデバッグ文埋め込みスタート #define DEBUG_NE2000を有効にする 初期化処理っぽい、void pci_ne2000_init(PCIBus *bus, NICInfo *nd)…
QEMUのTAPあたりをデバッグする必要があったのでQEMU-0.8.0をビルドする方法を調べたのでまとめておきます。 方法は、基本的にQEMU同梱のqemu_doc.htmlに従っています。 1.http://www.mingw.org/からMinGW、MSYSをダウンロードしてインストール。(そのときの…
QEMU on Windowsさんの配布する vlan, tapパッチを取り込んで START /MIN qemu.exe -L . -cdrom C:\higepon\MonaNew\tool\mkimg\mona.iso -net tap,ifname=my-tapと起動した。(tapオプションがアクセプトされているのでパッチはあたっていることが確認でき…
qemu-0.8.0/qemu-doc.html#TOC55にしたがってビルド環境を整える。 SDL-1.2.9をダウンロードして見たものの sdl-configをどう書き換えればよいのか分からないの調べ中。
http://blogs.dion.ne.jp/kazuu/ 今いろいろとTAPの件でお世話になっているのですが、kazuuさんのblogを読んでいるとQEMUをいじるのはかなり楽しげです。 僕が内側の人だとしたら、kazuuさんは内側の裏側の人って感じでしょうか。
MonaではQEMU on Windowsさんの配布しているQEMUを使わせていただいています。 例えばMona 0.3.0alpha7ではqemu-20050121-tap-windowsを利用し START /MIN qemu.exe -L . -cdrom mona.iso -tap my-tapのように起動してMona(Guest)からネットワークに接続して…