本章では、Armadillo-IoT のソフトウェアをカスタマイズをする方法などについて説明します。
コンフィギュレーションを変更してLinuxカーネル、ユーザーランドイメージをカスタマイズする方法を説明します。
Atmark Distには様々なアプリケーションやフォントなどが含まれており、コンフィギュレーションによってそれらをイメージに含めたり、外したりすることができます。また、Linuxカーネルのコンフィギュレーションの変更を行うこともできます。
手順21.1 イメージをカスタマイズ アーカイブの展開
各ソースコードアーカイブと、Java SE Embeddedのアーカイブを展開します。
シンボリックリンクの作成
Atmark Distに、AWL13、LinuxカーネルおよびJava SE Embeddedのシンボリックリンクを作成します。
コンフィギュレーションの開始
コンフィギュレーションを開始します。ここでは、menuconfigを利用します。
ベンダー/プロダクト名の選択
メニュー項目は、上下キーで移動することができます。下部のSelect/Exit/Helpは左右キーで移動することができます。選択するにはEnterキーを押下します。
"Vendor/Product Selection --->"に移動してEnterキーを押下します。
Vendorには "AtmarkTechno" を選択し、AtmarkTechno Productsには "Armadillo-IoTG-Std" を選択します。
コンフィギュレーション変更対象の指定
カーネル、ユーザーランドのそれぞれで、コンフィギュレーションの変更を行うかどうかを指定します。
カーネルコンフィギュレーションを変更するには、「Customize Kernel Settings」を選択します。ユーザーランドコンフィギュレーションを変更するには「Customize Vendor/User Settings」を選択します。その後、"Exit"を選択して「Do you wish to save your new kernel configuration?」で"Yes"とします。
カーネルコンフィギュレーションの変更
「Customize Kernel Settings」を選択した場合は、Linux Kernel Configurationメニューが表示されます。カーネルコンフィギュレーションを変更後、"Exit"を選択して「Do you wish to save your new kernel configuration ? <ESC><ESC> to continue.」で"Yes"とし、カーネルコンフィギュレーションを確定します。
| |
---|
Linux Kernel Configurationメニューで"/"キーを押下すると、カーネルコンフィギュレーションの検索を行うことができます。カーネルコンフィギュレーションのシンボル名(の一部)を入力して"Ok"を選択すると、部分一致するシンボル名を持つカーネルコンフィギュレーションの情報が一覧されます。
|
ユーザーランドコンフィギュレーションの変更
「Customize Vendor/User Settings」を選択した場合は、Userland Configurationメニューが表示されます。アプリケーションのユーザーランドコンフィギュレーションを変更後、"Exit"を選択して「Do you wish to save your new kernel configuration?」で"Yes"とし、ユーザーランドコンフィギュレーションを確定します。
ビルド
コンフィギュレーションの確定後にビルドを行います。ビルドは"make"コマンドを実行します。
イメージファイルの生成確認
ビルドが終了すると、atmark-dist/images/ディレクトリ以下にカスタマイズされたイメージファイルが作成されています。Armadillo-IoT では圧縮済みのイメージ(拡張子が".gz"のもの)を利用します。
アドオンインターフェースのGPIOを制御する方法を説明します。
| |
---|
工場出荷イメージではアドオンインターフェースのGPIO制御を行うことができません。Linux カーネルのコンフィギュレーションの変更し、AIOTG_STD_ADDON_AUTO_DETECTを無効化する必要があります。
Linux カーネルのコンフィギュレーションの変更方法については、「イメージをカスタマイズする」を参照してください。
|
Armadillo-IoT のGPIOは、generic GPIOとして実装されています。GPIOクラスディレクトリ以下のファイルによってGPIOの制御を行うことができます。
アドオンインターフェース(ベースボード:CON1, ベースボード:CON2)のGPIOと、GPIOクラスディレクトリの対応を次に示します。
表21.1 アドオンインターフェースのGPIOディレクトリ ピン番号 | GPIOクラスディレクトリ |
---|
CON1 3ピン, CON2 24ピン | /sys/class/gpio/CON1_3 | CON1 4ピン, CON2 25ピン | /sys/class/gpio/CON1_4 | CON1 5ピン, CON2 33ピン | /sys/class/gpio/CON1_5 | CON1 6ピン, CON2 32ピン | /sys/class/gpio/CON1_6 | CON1 7ピン, CON2 41ピン | /sys/class/gpio/CON1_7 | CON1 8ピン, CON2 40ピン | /sys/class/gpio/CON1_8 | CON1 9ピン, CON2 7ピン, CON2 39ピン | /sys/class/gpio/CON1_9 | CON1 10ピン, CON2 8ピン, CON2 38ピン | /sys/class/gpio/CON1_10 | CON1 11ピン, CON2 50ピン | /sys/class/gpio/CON1_11 | CON1 12ピン, CON2 16ピン, CON2 37ピン | /sys/class/gpio/CON1_12 | CON1 13ピン, CON2 17ピン, CON2 36ピン | /sys/class/gpio/CON1_13 | CON1 14ピン, CON2 12ピン, CON2 18ピン, CON2 35ピン | /sys/class/gpio/CON1_14 | CON1 15ピン, CON2 13ピン, CON2 19ピン, CON2 34ピン | /sys/class/gpio/CON1_15 | CON1 16ピン, CON2 49ピン | /sys/class/gpio/CON1_16 | CON1 17ピン, CON2 48ピン | /sys/class/gpio/CON1_17 | CON1 18ピン, CON2 47ピン | /sys/class/gpio/CON1_18 | CON1 19ピン, CON2 46ピン | /sys/class/gpio/CON1_19 | CON1 20ピン, CON2 20ピン, CON2 45ピン | /sys/class/gpio/CON1_20 | CON1 21ピン, CON2 21ピン, CON2 44ピン | /sys/class/gpio/CON1_21 | CON1 22ピン, CON2 22ピン, CON2 43ピン | /sys/class/gpio/CON1_22 | CON1 23ピン, CON2 23ピン, CON2 42ピン | /sys/class/gpio/CON1_23 | CON1 24ピン | /sys/class/gpio/CON1_24 | CON1 25ピン | /sys/class/gpio/CON1_25 | CON1 32ピン | /sys/class/gpio/CON1_32 | CON1 33ピン | /sys/class/gpio/CON1_33 | CON1 42ピン | /sys/class/gpio/CON1_42 | CON1 43ピン | /sys/class/gpio/CON1_43 | CON1 44ピン | /sys/class/gpio/CON1_44 | CON1 45ピン | /sys/class/gpio/CON1_45 | CON1 46ピン | /sys/class/gpio/CON1_46 | CON1 47ピン | /sys/class/gpio/CON1_47 | CON1 48ピン | /sys/class/gpio/CON1_48 | CON1 49ピン | /sys/class/gpio/CON1_49 | CON1 50ピン | /sys/class/gpio/CON1_50 | CON1 51ピン | /sys/class/gpio/CON1_51 | CON1 52ピン | /sys/class/gpio/CON1_52 | CON1 53ピン | /sys/class/gpio/CON1_53 |
以降の説明では、任意のGPIOを示すGPIOクラスディレクトリを"/sys/class/gpio/[GPIO] "のように表記します。
GPIOディレクトリ以下のdirectionファイルへ値を書き込むことによって、入出力方向を変更することができます。directionに書き込む有効な値を次に示します。
表21.2 directionの設定 設定 | 説明 |
---|
high | 入出力方向をOUTPUTに設定します。出力レベルの取得/設定を行うことができます。出力レベルはHIGHレベルになります。 | out | 入出力方向をOUTPUTに設定します。出力レベルの取得/設定を行うことができます。出力レベルはLOWレベルになります。 | low | outを設定した場合と同じです。 | in | 入出力方向をINPUTに設定します。入力レベルの取得を行うことができますが設定はできません。 |
GPIOディレクトリ以下のvalueファイルから値を読み出すことによって、入力レベルを取得することができます。"0"はLOWレベル、"1"はHIGHレベルを表わします。入力レベルの取得は入出力方向がINPUT, OUTPUTのどちらでも行うことができます。
入出力方向がOUTPUTの時に読み出される値は、GPIOピンの状態です。そのため、valueファイルに書き込んだ値とは異なる場合があります。
GPIOディレクトリ以下のvalueファイルへ値を書き込むことによって、出力レベルを設定することができます。"0"はLOWレベル、"0"以外はHIGHレベルを表わします。出力レベルの設定は入出力方向がOUTPUTでなければ行うことはできません。
| |
|