9/26/2011

TX-50開発キットで遊ぶ その3

BLDKの開発環境はだいたい整いましたが、BLDK Development Applicationはエディタとしては貧弱すぎます。IDE好きな私は当然、Visual Studioで開発できないかと考えるわけです。で、やってみたらできそうなので、書いておきます。

ソースのトップディレクトリにBuild_TC.batがあって、これ実行すれば、ビルドできるっぽいです。つうことは、Visual Studioからこのバッチファイル叩けばいいだけですよ。

手順は以下。
  1. Visual Stdioのメニューから、「ファイル」 > 「新規作成」 > 「既存のコードからプロジェクトを作成」。
  2. 作成するプロジェクトの種類は「Visual C++」にして、「次へ」をクリック。
  3. プロジェクトファイルの場所は「C:\bldk」プロジェクト名は「bldk」(お好みで)「次へ」をクリック。
  4. プロジェクト設定の指定は「外部のビルドシステムを使用する」を選択し「次へ」をクリック。
  5. デバッグ構成の設定の指定で、ビルドコマンドラインは「Build_TC.bat /d32」、リビルドコマンドラインは「Build_TC.bat /clean && Build_TC.bat /d32」、クリーンコマンドラインは「Build_TC.bat /clean」、出力は空白のままで。
  6. リリースの構成の指定では、「デバッグの構成の設定と同じ」のチェックを外し、ビルドコマンドラインを「Build_TC.bat /r32」、リビルドコマンドラインは「Build_TC.bat /clean && Build_TC.bat /r32」、クリーンコマンドラインは「Build_TC.bat /clean」、出力は空白のまま。「完了」をクリック。
以上で、ビルドもデバッグ用もリリース用もVisual Studioから切り替えて、ビルドできたっす。ソースのナビゲートも楽チンです。(ただ、この方法で正しいバイナリができているかは今のところ未検証です。)



で、しばらくソースを眺めてみてみましたが、これはUDKにCrownBayのチップやボード(Intel純正のCrownBay評価ボード)依存のパッケージを追加したものですね。で、UDK(Intel UEFI Development Kit)はEDKIIベースとなってます。で、よく見ると、チップやボード依存のパッケージのほとんどはソースコードではなくバイナリモジュールになってますね。んー、さすがにそこは公開しないんですかね。まあ、変態的なことをしない限りチップの初期化系のコードは、弄る必要はあまりないかもしれませんが。

今回はここまでにします。というか、実は、TX-50開発キットで遊ぶ その1~3は実は先週やったことで、今週は基板側を弄ってたんですが、記事を書くのが疲れたので、またにします。
先週のことは先週記事にすべきですが、なんと、このブログの新規立ち上げのほうが後だったのです。

その4につづく

TX-50開発キットで遊ぶ その2

そんなわけで、BLDKをTX-50に移植して動かしてみたいわけです。まずは、開発環境を整えます。

BIOSに手を加えることができるようになれば、起動の高速化や、BIOSレベルであんなことや、こんなことができるわけです。あと、BLDKはEFIベースで、デバッガも用意されてるようですので、EFIのドライバやアプリを実機でデバッグする環境としても、役立ちそうです。


さししあたって、IntelのBLDKのサイトから開発キットやドキュメントをゲットします。

http://edc.intel.com/Software/Intel-Boot-Loader-Development-Kit/#download



主要なものとしては、

  • 「Intel® BLDK Development Application (Windows*) Version 2.0.1」 BIOSの設定やイメージのビルドとエディタを備える簡易IDE的なものですな。
  • 「Intel BLDK Core for Crown Bay (UEFI Standard Based)-Gold Release」 Crown Bay向けソース一式
  • 「Getting Started Guide: Intel® Boot Loader Development Kit (Intel® BLDK) Version 2.0—UEFI Standard Based」 事始め用ドキュメント
  • 「User Guide: Intel® Boot Loader Development Kit (Intel® BLDK) Version 2.0—UEFI Standard Based」 ちょっと詳しめドキュメント
という感じですね。


まずは、Getting Started Guideを読みながら、そのとおりにやってみます。とりあえず、必要なソフトウェアとして、以下のものが前もってインストールされている必要があるようです。

Visual Studio以外は無償で手に入りますが、Visual StudioはExpress Editionでもいけるかもしれないですね。現在、私の環境ではすでに、Visual Studio 2008 Professionalの評価版(3ヶ月使える!)がインストール済みですので今回はこれで行きます。(ちなみに、開発マシンのWindows7も評価版です。貧乏なのです。誰かいい仕事紹介してください。)それぞれ、ダウンロードしてインストールします。
で、WinDDKのインストール先は「c:\winddk\3790.1830」がいいそうです。これはデフォルトでここにインストールされます。iASLは「c:\ASL」がいいそうです。解凍したらここに置きます。

続いて、ソース一式を解凍します。現時点ではCB-EDKII-Gold-2.3.6.3.exeというやつで、自己解凍形式です。ドキュメントによると、なんだか8文字以下のディレクトリ名がお勧めで、例として、「c:\bldk.」にすれば的なことが書いてあるので、そうします。


したらば、BLDK Development Applicationをインストールします。通常のWindowsインストーラになっていて、特に迷うことはありませんでした。


これで、インストールするものは全てかな。デバッガ使うには、別途いろいろ必要そうですが、それはまた今度にします。


で、おもむろにBLDK Development Applicationを起動します。すると以下のようなやつが、でてきます。


んー。わくわく感いっぱいです。そして、まず、新規プロジェクトを作成すべし。Project > New Projectでウィザード的な画面になります。で、Getting Startedを参考にProject nameをとりあえず、「bldk」(好きな名前でよさげ)。Project file directoryを「C:\bldk」、Workspace directoryを「C:\bldk\CrownBayPlatformPkg」、Image configuration fileを「C:\bldk\CrownBayPlatformPkg\Fv\tc.bsf」としました。


して、Start Configurationをクリックで、次にSource Debugを有効にするか無効にするかの画面になるので、今回はDisableで。Create Projectをクリック。すると、いろんなパラメータを弄れる画面がでてきます。GPIOとかの設定もこのGUIで設定できるようです。




とりあえず、設定を練るのは後回しにして、まずはビルドしてみます。メニューのBuild > Buildでゴリゴリビルドが始まると思いきや、ここに罠がありました。エラーというか、ビルド始まらず。Getting Startedをよく読むと、Visual Studioの環境変数のパスを設定しとけ的な記述があるので、環境変数に「C:\Program Files\Microsoft Visual Studio 9.0\VC\bin」を追加。

Windowsをログインしなおして、再び、Buildしてみたところ、今度はうまくいきました。後から気づいたのですが、File > PreferencesのBuild Toolsのタブでビルドコマンドを指定できるので、nmakeをフルパス指定すれば環境変数の追加はいらなかったかもしれません(未確認)。

ビルドしたバイナリイメージは「C:\bldk\Build\CrownBayPlatform\RELEASE_VS2008\FV」のCROWNBAY.fdというやつのようです。(デバッグビルドだと「DEBUG_VS2008\FV」になる。)これを既存のBIOSと入れ替えて起動すれば、BLDKのBIOSで起動するはずです。が、問題はどうやってそれをやるかです。次は基板側を弄ります。


その3につづく。

9/25/2011

TX-50開発キットで遊ぶ その1

株式会社イノテックさんが運営するEM-clubというフォーラムでTX-50開発キットが抽選で当たるキャンペーンがあることを知り、応募してみたら当たったので、(イノテックさん有難うございます。)この基板で遊んでみる。

http://www.em-club.jp/


この基板の特徴はIntel ATOMの組み込み向けE6xx系を採用している点と、手のひらサイズの超小型サイズである点、電解コンデンサやFANなどの寿命部品を一切使用していない点でしょうかね。なかなかすごいです。




とりあえず、電源を入れて感触をみる。
  • デフォルトではACアダプタつなぐと即座に電源ONする仕様ぽい。ディップスイッチで切り替えられるようだ。
  • SDカードスロットがオンボードで備わっており、SDカードからブートできる。
  • SDカードやSATA等、ブートするものがないと内臓EFIShellが起動する。
  • BIOS Setupに入るには「F2」キー
  • BIOSはInsyde H2Oベース
  • 思いのほか起動に時間が掛かる。7~8秒ほど。

といった感じ。で、EM-clubのサイトにTX-50向けMeeGoのOSイメージが公開されているので、試しに起動させてみた。Getting Startedを参考にやってみたけど、これGUI起動しないのかな?ポーティングが完全では無いのか、なんかコマンド打つなり、設定ファイル弄らないとダメなのかな?Getting Startedにもコンソールからルートでログインする所までしか説明ないし。でも、まあ、いっか。今のところ、この基板でMeeGo開発することに、あまり意義を感じないので、深く追求しない。

で、この基板で何して遊ぼうかテーマをずっと考えていたんですが、普通にx86なので、通常のPCでできることをやってもあまり意味がないし、小さくてFANレスなことは実用的なのだが、x86向けのOSやソフトウェアは殆ど難なく動いてしまうだろうから、あんまり開発の余地ないんじゃなかろうか。まあ、そこがATOMのメリットでもあるわけですが。システム全体としてのアプリケーションとしては小型サーバーなども考えられるけど、ソフトインストールして、セッティングして、筐体でっち上げれば完成してしまうしなあ。その手のことは昔、玄箱でさんざんやったし、開発というより活用だし、この基板じゃなくてもできるし。

という感じで、しばらく放置していたんですが、ある日Intelのサイトを眺めていたら、Intel BLDKなるものを発見。よくよく概要をみてみると、要するに組み込みATOM向けBIOS開発キット的なものっぽいっす。で、キットは特にユーザー登録も無く、無償でダウンロード可能にされてて、運命的に、Crown Bay(E6xx + EG20T)をサポートしてるですよ。ああもうこれ、やるしかないよ。そんなわけで、TX-50にIntel BLDKのポーティングを試みることにします。とりあえず、週一くらいでこのテーマに時間を割く予定です。

↓Intel BLDK


しかし、限定的とはいえ、とうとうホビーユーザーがBIOSをビルドできる時代が来てしまいました。これまで、メーカーが大金払って、BIOSベンダーと契約しないとできなかったことが、個人レベルでできてしまうというのは、すばらしいことです。ここからは私の推測ですが、Intel的には現在の組み込み市場で主流のARM勢にATOMで対抗するにはBIOS開発という敷居の高さを下げる必要があったんじゃないかなーと想像します。あわよくば、組み込み系だけでなく、デスクトップ系やモバイル系プラットフォームにもこの潮流を水平展開してほしいものです。

その2に続く。