第18章 Howto

本章では、Armadillo-IoT のソフトウェアをカスタマイズをする方法などについて説明します。

18.1. イメージをカスタマイズする

コンフィギュレーションを変更してLinuxカーネル、ユーザーランドイメージをカスタマイズする方法を説明します。

Atmark Distには様々なアプリケーションやフォントなどが含まれており、コンフィギュレーションによってそれらをイメージに含めたり、外したりすることができます。また、Linuxカーネルのコンフィギュレーションの変更を行うこともできます。

手順18.1 イメージをカスタマイズ

  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 1
                    --- Select the Product you wish to target
                    (Armadillo-IoTG-Std) AtmarkTechno Products 2
    
    
      --------------------------------------------------------------------
    
                        <Select>    < Exit >    < Help >

    1

    "AtmarkTechno"を選択します

    2

    "Armadillo-IoTG-Std"を選択します

  5. コンフィギュレーション変更対象の指定

    カーネル、ユーザーランドのそれぞれで、コンフィギュレーションの変更を行うかどうかを指定します。

    カーネルコンフィギュレーションを変更するには、「Customize Kernel Settings」を選択します。ユーザーランドコンフィギュレーションを変更するには「Customize Vendor/User Settings」を選択します。その後、"Exit"を選択して「Do you wish to save your new kernel configuration?」で"Yes"とします。

     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)
                 [*] Customize Kernel Settings  1
                 [*] Customize Vendor/User Settings  2
                 [ ] Update Default Vendor Settings
    
      --------------------------------------------------------------------
    
                        <Select>    < Exit >    < Help >

    1

    カーネルコンフィギュレーションを変更する場合に選択します

    2

    ユーザーランドコンフィギュレーションを変更する場合に選択します

  6. カーネルコンフィギュレーションの変更

    「Customize Kernel Settings」を選択した場合は、Linux Kernel Configurationメニューが表示されます。カーネルコンフィギュレーションを変更後、"Exit"を選択して「Do you wish to save your new kernel configuration ? <ESC><ESC> to continue.」で"Yes"とし、カーネルコンフィギュレーションを確定します。

     .config - Linux Kernel v2.6.26-at21 Configuration
    ------------------------------------------------------------------------
                    Linux Kernel Configuration
      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, </>
      for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >
      --------------------------------------------------------------------
    
             General setup  --->
         [*] Enable loadable module support  --->
         [*] Enable the block layer  --->
             System Type  --->
             Bus support  --->
             Kernel Features  --->
             Boot options  --->
             Floating point emulation  --->
             Userspace binary formats  --->
             Power management options  --->
      --------------------------------------------------------------------
    
                        <Select>    < Exit >    < Help >
    [ティップ]

    Linux Kernel Configurationメニューで"/"キーを押下すると、カーネルコンフィギュレーションの検索を行うことができます。カーネルコンフィギュレーションのシンボル名(の一部)を入力して"Ok"を選択すると、部分一致するシンボル名を持つカーネルコンフィギュレーションの情報が一覧されます。

  7. ユーザーランドコンフィギュレーションの変更

    「Customize Vendor/User Settings」を選択した場合は、Userland Configurationメニューが表示されます。アプリケーションのユーザーランドコンフィギュレーションを変更後、"Exit"を選択して「Do you wish to save your new kernel configuration?」で"Yes"とし、ユーザーランドコンフィギュレーションを確定します。

     atmark-dist v1.36.0 Configuration
    ------------------------------------------------------------------------
                            Userland Confgiguration
      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 specific  --->
                    Fonts  --->
                    Core Applications  --->
                    Library Configuration  --->
                    Flash Tools  --->
                    Filesystem Applications  --->
                    Network Applications  --->
                    Miscellaneous Applications  --->
                    BusyBox  --->
                    Tinylogin  --->
      --------------------------------------------------------------------
    
                        <Select>    < Exit >    < Help >
  8. ビルド

    コンフィギュレーションの確定後にビルドを行います。ビルドは"make"コマンドを実行します。

    [ATDE ~/atmark-dist]$ make
  9. イメージファイルの生成確認

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

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