本章では、Armadillo-IoT のソフトウェアをカスタマイズをする方法などについて説明します。
コンフィギュレーションを変更してLinuxカーネルイメージをカスタマイズする方法を説明します。
手順20.1 イメージをカスタマイズ アーカイブの展開
各ソースコードアーカイブを展開します。
コンフィギュレーション
Linuxカーネルディレクトリに移動してコンフィギュレーションをします。
カーネルコンフィギュレーションの変更
「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"を選択すると、部分一致するシンボル名を持つカーネルコンフィギュレーションの情報が一覧されます。
|
ビルド
ビルドするには、次のようにコマンドを実行します。
イメージファイルの生成確認
ビルドが終了すると、arch/arm/boot/ディレクトリとarch/arm/boot/dts/以下に、イメージファイル(LinuxカーネルとDTB)が作成されています。
アドオンインターフェースのGPIOを制御する方法を説明します。
Armadillo-IoT のGPIOは、generic GPIOとして実装されています。GPIOクラスディレクトリ以下のファイルによってGPIOの制御を行うことができます。
アドオンインターフェース(CON1, CON2)のGPIOと、GPIOクラスディレクトリの対応を次に示します。
表20.1 アドオンインターフェースのGPIOディレクトリ ピン番号 | GPIOクラスディレクトリ |
---|
CON1_3ピン, CON2_41ピン | /sys/class/gpio/gpio64 | CON1_4ピン, CON2_40ピン | /sys/class/gpio/gpio65 | CON1_5ピン, CON2_39ピン | /sys/class/gpio/gpio66 | CON1_6ピン, CON2_38ピン | /sys/class/gpio/gpio67 | CON1_7ピン, CON2_32ピン | /sys/class/gpio/gpio98 | CON1_8ピン, CON2_34ピン | /sys/class/gpio/gpio99 | CON1_9ピン, CON2_36ピン | /sys/class/gpio/gpio100 | CON1_10ピン, CON2_37ピン | /sys/class/gpio/gpio101 | CON1_11ピン, CON2_35ピン | /sys/class/gpio/gpio102 | CON1_12ピン, CON2_50ピン | /sys/class/gpio/gpio103 | CON1_13ピン, CON2_24ピン | /sys/class/gpio/gpio106 | CON1_14ピン, CON2_25ピン | /sys/class/gpio/gpio107 | CON1_15ピン, CON2_33ピン | /sys/class/gpio/gpio139 | CON1_16ピン, CON2_46ピン | /sys/class/gpio/gpio179 | CON1_17ピン, CON2_47ピン | /sys/class/gpio/gpio180 | CON1_18ピン, CON2_49ピン | /sys/class/gpio/gpio182 | CON1_19ピン, CON2_48ピン | /sys/class/gpio/gpio181 | CON1_22ピン, CON2_42ピン | /sys/class/gpio/gpio108 | CON1_23ピン, CON2_43ピン | /sys/class/gpio/gpio109 | CON1_24ピン | /sys/class/gpio/gpio89 | CON1_25ピン | /sys/class/gpio/gpio90 | CON1_32ピン | /sys/class/gpio/gpio204 | CON1_33ピン | /sys/class/gpio/gpio205 | CON1_34ピン | /sys/class/gpio/gpio199 | CON1_35ピン | /sys/class/gpio/gpio194 | CON1_36ピン | /sys/class/gpio/gpio200 | CON1_37ピン | /sys/class/gpio/gpio195 | CON1_38ピン | /sys/class/gpio/gpio192 | CON1_39ピン | /sys/class/gpio/gpio193 | CON1_40ピン | /sys/class/gpio/gpio97 | CON1_41ピン | /sys/class/gpio/gpio96 | CON1_42ピン | /sys/class/gpio/gpio196 | CON1_43ピン | /sys/class/gpio/gpio197 | CON1_44ピン | /sys/class/gpio/gpio198 | CON1_45ピン | /sys/class/gpio/gpio202 | CON1_46ピン | /sys/class/gpio/gpio203 | CON1_47ピン | /sys/class/gpio/gpio140 | CON1_48ピン | /sys/class/gpio/gpio141 | CON1_49ピン | /sys/class/gpio/gpio142 | CON1_50ピン | /sys/class/gpio/gpio201 | CON1_51ピン | /sys/class/gpio/gpio143 | CON1_52ピン | /sys/class/gpio/gpio144 | CON1_53ピン | /sys/class/gpio/gpio145 |
以降の説明では、任意のGPIOを示すGPIOクラスディレクトリを"/sys/class/gpio/[GPIO] "のように表記します。
20.2.1. GPIOクラスディレクトリを作成する
/sys/class/gpio/export にGPIO番号を書き込むことによって、GPIOクラスディレクトリを作成することができます。
アドオンインターフェース(CON1) 3ピンに対応するGPIOクラスディレクトリを作成する例を次に示します。
| |
---|
作成済みのGPIOクラスディレクトリを削除するには、/sys/class/gpio/unexport にGPIO番号を書き込みます。
|
| |
---|
工場出荷イメージでは、Linux カーネルのコンフィギュレーションにてAIOTG_STD_ADDON_AUTO_DETECTが有効化されています。
AIOTG_STD_ADDON_AUTO_DETECTが有効化されていると、アドオンモジュールの自動認識機能が動作し、必要に応じてピンマルチプレクス設定などを行います。自動認識機能にて既に設定が行われいるピンはGPIOクラスディレクトリの作成を行うことができません。
既に設定が行われいるピンのGPIOクラスディレクトリを作成したい場合は、Linux カーネルのコンフィギュレーションにてAIOTG_STD_ADDON_AUTO_DETECTを無効化してください。
Linux カーネルのコンフィギュレーションの変更方法については、「イメージをカスタマイズする」を参照してください。
|
GPIOディレクトリ以下のdirectionファイルへ値を書き込むことによって、入出力方向を変更することができます。directionに書き込む有効な値を次に示します。
表20.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でなければ行うことはできません。
20.3. AR9462モジュールを使って2.4GHz帯で通信する使用例
2つの機器をサンプルにAR9462モジュールを使って2.4GHz帯で通信するときの使い方について説明します。
20.3.1. 「BVMCN1101AA」の信号を受信する
Braveridge社製のビーコン「BVMCN1101AA」を例にビーコン信号を受信する方法を説明します。
「BVMCN1101AA」のアドバタイジング・パケットを受信するためには、bluetoothctl コマンドを使います。
[bluetooth]のプロンプトが表示されたら、scan on で信号を受信できます。
ご利用の環境によっては、ほかの機器からの信号も受信されます。
スキャンを中止するには、scan off を実行します。
bluetoothctlを終了するには、exit を実行します。
TEXAS INSTRUMENTS社製のセンサータグ「CC2650」を例にセンサータグをgatttool で操作する方法を説明します。
手順20.2 「CC2650」の操作手順
hcitool lescan を実行して、「CC2650」のMACアドレスを確認します。
ご利用の環境によっては、他の機器も検出されます。
「CC2650」に接続します。
プライマリサービスを確認するには、primary を実行します。
0x004c~0x0050でハンドルされているプロファイルのUUIDを確認するには、char-desc を実行します。
プロファイルの情報を読み取るには、char-read-hnd を実行します。
プロファイルの情報を設定するには、char-write-cmd を実行します。
操作を終了するには、exit を実行します。
20.4. sshでArmadillo-IoT G3に接続するssh-serverをインストールする sshでrootのログインを禁止する /etc/ssh/sshd_config内のPermitRootLogin をnoに設定します。
| |
|