23 November 2008

VMWare内でeMbedded Visual C++ 4.0を使う

VMWare内でeMbedded Visual C++による開発を行うための、セットアップ方法。

ホストOS : Cent OS 5.2
ゲストOS(VMWare内) : Windows XP SP3
VMWare : VMWare Player 2.0.5 build-109488 (Linux 版)


仮想マシンのイメージは、EasyVMX! を用いて行った。作成されたファイルはこれ


(1)セットアップの順序
セットアップの順序は、Microsoft公式ページ情報によれば、次のように行う。

 Windows XPおよびSP3
 ActiveSync 4.5 (Build 5096) (無償)
 eMbedded Visual C++ 4.0 (無償)
 eMbedded Visual C++ 4.0 SP4
 Microsoft Visual Studio 2003 (C#での開発も行いたい場合) (有償)
 Windows Mobile 2003 software for Pocket PC 日本語版 SDK (無償)


(2)WindowsのDEP無効化
Windowsを起動してログオンするときに、タスクトレイに次のようなメッセージが表示される。
20081123-vmware-depmsg.png
『 'Virtual PC/Windows CE Emulator' は Windows を不安定にさせる原因となります。これらのドライバは読み込まれませんでした。 』

これはDEP機能がONになっているからであると、Googleで検索したblogに書かれている。DEPを無効化する方法は、boot.iniを修正する方法と、システム・コントロールパネルで無効化する方法の2つがあるが、今回は boot.ini を修正して無効化を行った。

c:\boot.ini
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional (DEP OFF)" /fastdetect /NoExecute=AlwaysOff

/NoExecute=OptIn となっているものを、/NoExecute=AlwaysOff に変更する。 (boot.iniでの設定詳細については @ITの記事を参考にした)


(3) VMWareのUSBサポートを USB2.0にする
標準ではUSB1.1相当なので、USB2.0の高速接続を可能とするため、次の変更をホストOS側で行う。

仮想マシンのファイル名.vmx
# USB settings # This config activates USB usb.present = "TRUE" usb.generic.autoconnect = "TRUE" # enable USB 2.0 ehci.present = "TRUE"


(4) 不具合事項
Pocket PC 2003 Emulator は、 VMWare内のゲストOSでは起動しない(起動しないように設定されている。マイクロソフトの説明)。

20081123-vmwareemu.png
エミュレータの動作確認。
Pocket PC 2003 は起動しない。 Windows Mobile 6 は起動する。

(つまり、Visual Studio 2005 以降であれば、VMWare内でデバッグか可能ということ)


したがって、デバッグを行うためには、Pocket PC 2003の実機を、ActiveSyncで接続してやる必要がある。

20081123-vmware-cedevice.png
eMbedded VC++ 4.0 でサポートされているデバイス一覧

今回用いた実機は、MytacのMio168(Windows Mobile 2003)。なお、より新しい HP iPAQ112 (Windows Mobile 6 Classic)を接続したところ、次のようなダイアログが表示された後、デバッグが出来ない旨警告される。(アップロードと実行のみなら可能)

20081123-vmware-cpuerr.png


(5) 稼働状況
ActiveSync接続された実機を用いてリモートデバッグしている状況のキャプチャ画像

20081123-vmware-evc.png


無償ツールのみを組み合わせて利用するのも、様々な制限がわざと設けられていて苦労しますね…