「QEMU」カテゴリーアーカイブ

kqemu-1.3.0pre9

***本記事にはプロモーションが含まれています。***

kqemu-1.3.0pre9.tar.gzが出ています。Windowsホストでも動くようで、Win2kとFC4のRescue CDは、動くのを確認しました。でも、FC3は起動途中で止まってしまいました。Redhat7.2も動きますが、とても遅いです。

爆速エミュレーターQEMUで行こう!

***本記事にはプロモーションが含まれています。***

QEMUに関する本が技術評論社から出版されます。著者はMYCOMジャーナルのWindows XPスマートチューニングなどで有名な阿久津良和さんです。発売日は、6月13日のようです。実は、阿久津さんから本を献本していただきました。どうもありがとうございました。
本の内容は、エミュレーターについてはあまり経験がないという人が、気軽に試してみるのに最適なものになっています。さまざまなOSが取り上げられていて、その導入の仕方から使い方まで網羅されています。Windows系では、Windows 98SE、 Windows 3.1、 Windows 95、 Windows Me、 Windows 2000、 Windows XP、Linux系では、Fedora Core 5、ホビー/AV系では、Be OS、 AROS、 Menuet OS、組み込み系では、DR-DOS、 QNX、、個人作成系では、Mona OS、 NWSOS、 OSASK、 ReactOS、が取り上げられています。
いろいろなOSをインストールしたり、試してみるのって楽しいです。この機会に是非、トライしてみてはいかがでしょうか。

バイナリを更新

***本記事にはプロモーションが含まれています。***

0.8.1のバイナリを更新しました。-vncオプションを使うのに、keymapsが必要なのですが入れ忘れていました。-k jaオプションをつけると日本語キーボードが使えます。
フロッピーは、Win98ゲストではフォーマットできないですね。Win2kゲストでは、2.88MBの項目は出てくるのですが、フォーマットしてみると1.44MBになってしまいます。問題は難しそう。

SpeedStepとPowerNow!

***本記事にはプロモーションが含まれています。***

Linuxホストで、時計が正確にならないことがあるそう。どうやら、Mobile Pentium ⅢがTSC(Time Stamp Counter)を動的に変更しているみたいです。よくわからないけど、SpeedStepはソフトウェアの助けがなくても動くんですかね。
これには、ticks_per_secという変数が関係しています。ticks_per_secは、プログラムの起動時にCPUのTSCを読んで、一秒あたりのカウント数として算出しています。でも、途中で変わってしまうと時計の進み方がおかしくなってしまいます。
最近のPentium 4は、CPUのクロックにかかわらずTSCのカウント数が上昇するようになっているそうです。ますますわけわかんなくなってきているような気がする。CPUのモデルによって動作が違うのは対応するソフトウェアとしては悪夢ですね。
ticks_per_secをLinuxホストの/proc/cpuinfoから算出するパッチが出ていたので、改造して動くようにしてみました。Athlon 64 3000+で、cpuspeedサービス(PowerNow!)が動いている状態でも、Window 2000ゲストの時計がちゃんと動くことは確認しました。
Linuxゲストのときは、ゲストの起動時にclock=pitというオプションをつけないといけないです。TSCは変化しますので。
SpeedStepが有効なときでも、ちゃんと動くといいですけど。
http://www.h7.dion.ne.jp/~qemu-win/download/qemu-20060517-tps_from_proc.patch
CPUの状態の変化をキャッチして、ticks_per_secを較正できるといいなと思います。
とか思っていたら、常にTSCを測定したほうがいいといわれた。較正するには、それなりに時間がかかるんだけど。
SpeedStepがOSに因らないということは、WindowsホストでもQueryPerformanceCounterがTSCを使っていた場合は同じ問題が起こりうるということかな。

VLANとTap、みたび

***本記事にはプロモーションが含まれています。***

WSAWaitForMultipleEventsは、WSAStartupが必要なことに気づく。なくても、大丈夫なみたいだけれど、WaitForMultipleObjectsの方が、ネットワークのイベントも待てるからいいなと思って、少しだけ変えてパッチを出しておいた。ちなみに、機能的には何も変わらないですけどね。
Linuxのベンチマークは時計が不安定だから動かないとかという話題が出ていたので、max-usr-freqを1024にセットし、cpuspeedサービスを止めれば大丈夫ということを伝えた。すると、Winホストでゲストの時計がおかしくてSolaris10がインストールできないとのこと。たぶん原因は違うところにあると思うけど。
Winホストでは、RTCを使っていないので設定する必要はありません。また、SpeedStep/PowerNow!は、コントロールパネル->電源オプション->電源設定で、最小の電源管理を他の項目に設定すると無効にできます。
でも、ACPIのパソコンなら、設定する必要はないと思います。もし、Win2kゲストでIEを動かしているときに時計が速く進むようならば設定する必要があります。

VLANとTapふたたび

***本記事にはプロモーションが含まれています。***

VLANのパッチがうまくないとのこと。なかなかうまくつくれないんですけどね。難しい。
Tapのパッチも、ネットワークのイベントを待てるようにできないかとのこと。WSAWaitForMultipleEventsを使うと、動くのは確認できた。これでいいのかな。
Pollingもやめてと言われたけど、そうするとスレッドを使わないといけないんだよね。使ったことないけど。やってみようとは思うけど、うまく動くかな。データの受け渡しがよくわからないけど。

kqemu-1.3.0pre7

***本記事にはプロモーションが含まれています。***

kqemu-1.3.0pre7が出ています。
Linuxホストで、Fedora Core 4は、動くようになりました。RedHat 7.2のエラーは出なくなりましたが、遅くて使う気になれません。Windows 98も同様で、遅いです。Linux 2.6とWindows 2000は動くと思います。
Windowsホストでは動かないです。