1. エミュレートされたハードウェア
毎回ヘルプを探すのも大変なので、以下にメモをしておく。
- 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. 時刻合わせ
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..
当方の環境では、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で。もしかすると、重要なメッセージも見えないかもしれないので、そこは注意する。