Windows CE (.NET) とか IoTとか

組込みWindows と IoTの話を扱います

Compact7 PCTP (その3)

さて、インストールすると

C:\Program Files\Windows Embedded Compact 7\Documentation

に保存される、「Getting_Started_With_Virtual_CEPC.pdf」の手順に従って、Virtual PC用OSイメージを作ってみました。このOSイメージはWindows 7では"Windows Virtual PC"で、Vista/XPでは"Virtual PC 2007"で動かすことを想定しています。

新規プロジェクトで"Platform Builder 2008"のカテゴリから以前のバージョンと同じ手順で"New Platform"ウィザードを起動すると、まずBSP選択画面になります。

Compact7_ctp7

ARM v5/v6/v7/x86 をインストールした時に選択可能なBSPです。(対応するCPUタイプをインストールしていないと、そのBSPは表示されません。)
"Virtual PC : x86"を選択します。

Compact7_ctp8

OSデザインテンプレートから"Enterprise Web Pad"を選択します。

Compact7_ctp82

必要に応じてオプションを変更します。このページではWirelessネットワークを外し、Wiredネットワークをチェックしました。このあとFinish画面が表示されるので終了します。

このあと、カタログツリーから"Virtual PC" BSPのキーボードドライバを追加します。Platfiorm Builder 2008 プロジェクトを最初に開いた時にはカタログツリーは表示されていないので、Viewメニューの"Other Windows"から"Catalog Items View"を選択します。サーチ入力で"VCEPC keyboard"とか入力すると必要なアイテムが見つかります。

さて、ビルドするにはBuildメニューから"Build Solution"をやれ、と書いてありますが、これを真に受けると大変なことになります。その前に、

1. Configuration を選択

今回からDebug/Release/Checked の3つのConfigurationが用意されるようになりました。

また、Release ビルドでも標準でKITL有効になっているので、真のリリースビルドを行うにはKITL無効に設定する必要があります。

2. Build Treeの書き込み権限を確認/変更する

\WINCE700以下のフォルダが書けなくてエラーが発生することがあります。\WINCE700フォルダとこれ下のサブフォルダの権限が"フルコントロール"となるようにユーザーの書き込み権限を調整してください(← Vista/7 でより問題になりやすいように思います。CE6でも同様でした)

3. "Build Solution"をやると、内部的に"Pre-Sysgen Build" と "Sysgen"が行われる

Pre-Sysgen Build とはソースコード提供のビルドツリー全体を再ビルドするという手順で、MS社外では必要のない(はずの)手順です。当方試しにやってみましたが、Core 2 Duo 2GHzのノートパソコンで半日かかりました。

ここでの正解はこれまでのバージョンと同じく、"Sysgen (blddemo -q)"を行うことで、これはBuildメニューの"Advanced Build Commands"から選択することで実行できます。

4. 必要なロケールのみを選択する。

ロケールを選択せずにSysgenすると、用意されているすべてのロケール用のリソースがビルドされるようで、非常に時間がかかります。例えば英語ロケールなど、一つだけロケールを選択すると最も早くSysgenが完了します。Projectメニューの一番下の項目"XXXX properties"でLocale項目を選択し、"Language Packs to Build"項目で最低限必要なロケールのみ選択すると、ここで選んだものだけがsysgenされるようです。

Compact7_ctp83

ちなみに、"Installed UI Language Packs"はSysgenしたロケールの中で実際にOSビルド時に組み込みロケール、"Default UI Language"はDefault User Locale、"Default Locale"はDefault System Localeの選択のようです。

で、ビルドの準備を行い、準備ができたら"Advanced Build Commands"から "Sysgen (blddemo -q)"を実行してください。Error 0 であればOSイメージのビルド成功です。