VirtualPC 2004

Microsoft VirtualPC 2004 のメモ。
[最終更新日: 2008/09/13]

1. エミュレートされたハードウェア

| INDEX

毎回ヘルプを探すのも大変なので、以下にメモをしておく。

  • BIOS : AMI BIOS
  • CPU : ホストのCPUを割り込みで使用
  • MEMORY : 設定により割り当てられた物理メモリ
  • MOTHER CHIPSET : Intel 440BX
  • VGA : S3 Trio 32/64 PCI (8 MB Video RAM 搭載)
  • SOUND : Creative Labs Sound Blaster 16 ISA Plug and Play※1
  • NIC : (マルチファンクション) DEC 21140A 10/100

※1 手動によるサウンドの構成が必要なプログラムでは、Creative Labs SoundBlaster 16 をポート 220、IRQ 5、および DMA チャンネル 1 (8b) と 5 (16b) を指定する。

SET BLASTER=A220 I5 D1 H5 P330 T6

2. 時刻合わせ

| | INDEX

VirtualPC2004でLinuxとか使ってて気になるのは、とにかく時刻がずれること。状態を保存とかすれば時刻はそのままになるなど、どうしてもコレはクリアしないといけない問題だ。

ntpdateで時刻合わせすればいいのだけど、頻繁にやるとなるとntpサーバに迷惑なので、ホストOS(windows2000)を時刻サーバにしてなんとかすることにする。

WindowsのSNTPサーバ化はWin32Timeサービスを使えば可能なのだけど、ntpdateでは仕様に違いがあるのかうまくいかない。psntp-0.1(それに含まれるpsntpdate)というものがあるので、それを使えばWin32Timeサービスを使って時刻合わせができる。

/usr/local/sbin/psntpdate -f -r [ホストOS]

とはいえ、やはりntpdateが使えたほうが便利だ。検索して探すと、AdjustPCというのがよく利用されているようだ。これなら、ntpdate で時刻合わせが可能。

/usr/sbin/ntpdate -b -s [ホストOS]

上記のどちらかの方法を2〜5分おきくらいでcrontabに登録しておけばいいかと。

*/5 * * * * /usr/sbin/ntpdate -b -s [ホストOS]

3. [TROUBLE] kernel:i8253 count too high! resetting..

| INDEX

当方の環境では、VirtualPCにSP1を導入してから、Linux上で以下のようなエラーが頻発するようになった。

kernel:i8253 count too high! resetting..

困ったことにコンソール上に表示されるので、邪魔なことこの上ない。カーネルのtime.cが発行するエラーで、ようするに時刻のカウントに関するエラーらしい。

検索すると、原因はACPI関係の問題とかPCMCIA関係だとか、いろいろ出てくる。解決策としては、以下のようなものが挙げられていた。

  • BIOS設定で、POWER 項目の、ACPI [Disable] APM [NO] に設定
  • カーネルオプションを pci=noacpi にする
  • PCMCIAサービスをOFF
  • apmdサービスを止める

結論としては、完全な対策というのは見つからなかった。

とはいえ、VirtualPCではコンソール使うことが多いので(実機ではモニタ点けるの面倒なので、SSHを使うことが多い)、以下のファイルを編集して、コンソールへのメッセージを抑制してみた。

Vine 3.1 では以下のファイルを編集する
# /etc/sysconfig/syslog [一部]
KLOGD_OPTIONS="-2 -c 1"
Debian 3.1 sarge では以下のファイルを編集する(ちょうど、Debian リファレンス 8.6.8 コンソールのスクリーン上のエラーメッセージがあった)
# /etc/init.d/klogd [一部]
KLOGD="-c 3"

オプションについては、man klogdで。もしかすると、重要なメッセージも見えないかもしれないので、そこは注意する。

.