第11章 ビルド手順

本章では、工場出荷イメージと同じイメージを作成する手順について説明します。

使用するソースコードは、開発セット付属のDVDに収録されています。最新版のソースコードは、Armadilloサイトからダウンロードすることができます。新機能の追加や不具合の修正などが行われているため、DVDに収録されているものよりも新しいバージョンがリリースされているかを確認して、最新バージョンのソースコードを利用することを推奨します。

工場出荷イメージの作成に必要な Oracle Java SE Embedded は、Oracle社 Webページ(http://www.oracle.com/)から取得してください。Armadillo-IoT ゲートウェイ スタンダードモデルでは、「Oracle Java SE Embedded version 8」の「ARMv5 Linux - SoftFP ABI, Little Endian」を使用します。

[警告]

開発作業では、基本ライブラリ・アプリケーションやシステム設定ファイルの作成・配置を行います。各ファイルは作業ディレクトリ配下で作成・配置作業を行いますが、作業ミスにより誤って作業用 PC 自体の OS を破壊しないために、すべての作業は root ユーザーではなく一般ユーザーで行ってください。

11.1. Linuxカーネル/ユーザーランドをビルドする

ここでは、「Atmark Dist」、「Linuxカーネル」、「AWL13デバイスドライバ」のソースコードと、「Oracle Java SE Embedded 8」からイメージファイルを作成する手順を説明します。

手順11.1 Linuxカーネル/ユーザーランドをビルド

  1. アーカイブの展開

    各ソースコードアーカイブと、Java SE Embeddedのアーカイブを展開します。

    [ATDE ~]$ ls
    atmark-dist-[version].tar.gz  ejdk-[version].tar.gz
    awl13-[version].tar.gz        linux-3.4-[version].tar.gz
    [ATDE ~]$ tar zxf atmark-dist-[version].tar.gz
    [ATDE ~]$ tar zxf awl13-[version].tar.gz
    [ATDE ~]$ tar zxf ejdk-[version].tar.gz
    [ATDE ~]$ tar zxf linux-2.6.26-at[version].tar.gz
    [ATDE ~]$ ls
    atmark-dist-[version]         awl13-[version].tar.gz  linux-3.4-[version]
    atmark-dist-[version].tar.gz  ejdk[version]           linux-3.4-[version].tar.gz
    awl13-[version]               ejdk-[version].tar.gz
  2. シンボリックリンクの作成

    Atmark Distに、AWL13、LinuxカーネルおよびJava SE Embeddedのシンボリックリンクを作成します。

    [ATDE ~]$ cd atmark-dist-[version]
    [ATDE ~/atmark-dist-[version]]$ ln -s ../awl13-[version] awl13
    [ATDE ~/atmark-dist-[version]]$ ln -s ../linux-2.6.26-at-[version] linux-2.6.x
    [ATDE ~/atmark-dist-[version]]$ ln -s ../ejdk[version] ejdk

    以降のコマンド入力例では、各ファイルからバージョンを省略した表記を用います。

  3. コンフィギュレーションの開始

    コンフィギュレーションを開始します。ここでは、menuconfigを利用します。

    [ATDE ~/atmark-dist]$ make menuconfig
     atmark-dist v1.36.0 Configuration
    ------------------------------------------------------------------------
                                    Main Menu
      Arrow keys navigate the menu.  <Enter> selects submenus --->.
      Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes,
      <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help.
      Legend: [*] built-in  [ ] excluded  <M> module  < > module capable
      --------------------------------------------------------------------
                    Vendor/Product Selection  --->
                    Kernel/Library/Defaults Selection  --->
                    ---
                    Load an Alternate Configuration File
                    Save Configuration to an Alternate File
    
    
      --------------------------------------------------------------------
    
                        <Select>    < Exit >    < Help >
  4. ベンダー/プロダクト名の選択

    メニュー項目は、上下キーで移動することができます。下部のSelect/Exit/Helpは左右キーで移動することができます。選択するにはEnterキーを押下します。 "Vendor/Product Selection --->"に移動してEnterキーを押下します。 Vendorには "AtmarkTechno" を選択し、AtmarkTechno Productsには "Armadillo-IoTG-Std" を選択します。

     atmark-dist v1.36.0 Configuration
    ------------------------------------------------------------------------
                            Vendor/Product Selection
      Arrow keys navigate the menu.  <Enter> selects submenus --->.
      Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes,
      <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help.
      Legend: [*] built-in  [ ] excluded  <M> module  < > module capable
      --------------------------------------------------------------------
                    --- Select the Vendor you wish to target
                    (AtmarkTechno) Vendor
                    --- Select the Product you wish to target
                    (Armadillo-IoTG-Std) AtmarkTechno Products
    
    
      --------------------------------------------------------------------
    
                        <Select>    < Exit >    < Help >
  5. デフォルトコンフィギュレーションの適用

    前のメニューに戻るには、"Exit"に移動してEnterキーを押下します。 続いて、"Kernel/Library/Defaults Selection --->"に移動してEnterキーを押下します。"Default all settings (lose changes)"に移動して"Y"キーを押下します。押下すると"[*]"のように選択状態となります。

     atmark-dist v1.36.0 Configuration
    ------------------------------------------------------------------------
                        Kernel/Library/Defaults Selection
      Arrow keys navigate the menu.  <Enter> selects submenus --->.
      Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes,
      <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help.
      Legend: [*] built-in  [ ] excluded  <M> module  < > module capable
      --------------------------------------------------------------------
                 --- Kernel is linux-3.x
                 (default) Cross-dev
                 (None) Libc Version
                 [*] Default all settings (lose changes) (NEW)
                 [ ] Customize Kernel Settings (NEW)
                 [ ] Customize Vendor/User Settings (NEW)
                 [ ] Update Default Vendor Settings (NEW)
    
      --------------------------------------------------------------------
    
                        <Select>    < Exit >    < Help >
  6. コンフィギュレーションの終了

    前のメニューに戻るため、"Exit"に移動してEnterキーを押下します。コンフィギュレーションを抜けるためにもう一度"Exit"に移動してEnterキーを押下します。

  7. コンフィギュレーションの確定

    コンフィギュレーションを確定させるために"Yes"に移動してEnterキーを押下します。

     atmark-dist v1.36.0 Configuration
    ------------------------------------------------------------------------
    
    
            ----------------------------------------------------------
                Do you wish to save your new kernel configuration?
    
                                < Yes >      <  No  >
    
            ----------------------------------------------------------
    
    	
  8. ビルド

    コンフィギュレーションが完了するので、続いてビルドを行います。 ビルドは"make"コマンドを実行します。

    [ATDE ~/atmark-dist]$ make

    ビルドログが表示されます。ビルドするPCのスペックにもよりますが、数分から十数分程度かかります。

  9. イメージファイルの生成確認

    ビルドが終了すると、atmark-dist/images/ディレクトリ以下にイメージファイルが作成されています。Armadillo-IoT では圧縮済みのイメージ(拡張子が".gz"のもの)を利用します。

    [ATDE ~/atmark-dist]$ ls images/
    linux.bin  linux.bin.gz  romfs.img  romfs.img.gz

11.2. ブートローダーをビルドする

ここでは、ブートローダーである「Hermit-At」のソースコードからイメージファイルを作成する手順を説明します。

手順11.2 ブートローダーをビルド

  1. ソースコードの準備

    Hermit-Atのソースコードアーカイブを準備し展開します。展開後、hermit-atディレクトリに移動します。

    [ATDE ~]$ ls
    hermit-at.tar.gz
    [ATDE ~]$ tar zxf hermit-at-[version]-source.tar.gz
    [ATDE ~]$ ls
    hermit-at-[version]  hermit-at-[version]-source.tar.gz

    以降のコマンド入力例では、ブートローダのソースファイルからバージョンを省略した表記を用います。

  2. デフォルトコンフィギュレーションの適用

    Hermit-Atディレクトリに入り、Armadillo-IoT ゲートウェイ スタンダードモデル用のデフォルトコンフィギュレーションを適用します。ここでは例としてフラッシュメモリ起動用イメージを作成します。デフォルトコンフィグにはarmadillo_iotg_std_defconfigを指定します。UART起動用イメージを作成する場合は、armadillo_iotg_std_boot_defconfigを指定してください。

    [ATDE ~]$ cd hermit-at
    [ATDE ~/hermit-at]$ make armadillo_iotg_std_defconfig
  3. ビルド

    ビルドには"make"コマンドを利用します。

    [ATDE ~/hermit-at]$ make
  4. イメージファイルの生成確認

    ビルドが終了すると、hermit-at/src/target/armadillo-iotg-std/ディレクトリ以下にイメージファイルが作成されています。

    [ATDE ~/hermit-at]$ ls src/target/armadillo-iotg-std/loader-armadillo-iotg-std-*.bin
    src/target/armadillo-iotg-std/loader-armadillo-iotg-std-[version].bin