本ブログでは、Armadillo-X1,Armadillo-IoT G3/G3Lで Debian GNU/Linuxルートファイルシステムを構築するためのツール「x1-debian-builder」の使用方法をご紹介します。
概要
x1-debuan-builderは、ATDE6等のPCで動作しているLinux上でArmadillo-X1,Armadillo-IoT G3/G3L用のarmhfアーキテクチャに対応したDebian GNU/Linux ルートファイルシステムを構築することができるツールです。このツールを用いることで、ルートファイルシステムの設定ファイル等の不一致による動作の相違なしで正常に構築することができます。
事前準備
このツールを使用するために必要なパッケージがインストールされていない可能性があるため、環境に応じて以下のコマンドを実行してください。
atde:~$ sudo apt-get update && sudo apt-get install qemu-user-static
ディレクトリ構成
ダウンロードした構築ツール「x1-debian-builder-[VERSION].tar.gz」は以下のような構造になっています。
x1-debian-builder-[VERSION] ├─aiotg3_resources・・・・・・・・G3用のリソースディレクトリ ├─aiotg3l_resources・・・・・・・G3L用のリソースディレクトリ ├─ax1_resources・・・・・・・・・・・X1用のリソースディレクトリ └─build.sh・・・・・・・・・・・・・・・・ツール実行スクリプト
各リソースディレクトリ内にはルートファイルシステム構築に必要な情報ファイルが保存されています。3種ともに、以下のようなディレクトリ構造となっています。
[機種]_resources └─resources ├─atmark-techno-pin-1001・・・・・・・ピン情報 ├─fixup・・・・・・・・・・・・・・・・・・・・・・・・セットアップや取得コマンド ├─hosts・・・・・・・・・・・・・・・・・・・・・・・・IP情報 ├─packages・・・・・・・・・・・・・・・・・・・・・インストールパッケージリスト ├─rc.local・・・・・・・・・・・・・・・・・・・・・処理終了前に実行されるスクリプト ├─sources.list・・・・・・・・・・・・・・・・・debianインストール先情報 └─validate_packages・・・・・・・・・・・・インストールパッケージ検証スクリプト
ルートファイルシステムのカスタム
x1-debian-builder-[VERSION]/[機種]_resources内を変更することで、ルートファイルシステムのカスタムを行うことができます。
ルートファイルシステム直下へのファイル,ディレクトリ追加
[機種]_resources以下に配置したファイルやディレクトリはresourcesディレクトリを除き、そのままルートファイルシステム直下にコピーされます。
パッケージや設定の変更
[機種]_resources/resourcesのファイル群を変更することで、ルートファイルシステムの初期状態を変更できます。
例としてpython pipのpybluezを追加したい場合の操作をご紹介します。
通常、ATDE6等のLinux上でpython pipのpybluezを追加する場合は次の手順でインストールします。
・apt-get installによるpythonのインストール
・apt-get installによるpython-pip python-dev libbluetooth3-devのインストール
・pip installによるpybluezのインストール
上記手順をx1-debian-builderで実現するには、次の手順を行います。
・[機種]_resources/resources/packagesの最下行に次の文字列を追加
python
python-pip
python-dev
libbluetooth3-dev
・[機種]_resources/resources/fixupの最下行に次のコマンドを追加
pip install pybluez
上記変更によってx1-debian-builderを実行したとき、python pipのpybluezがインストールされたルートファイルシステムが生成されます。
ダウンロードと解凍
ATDE6等のPCで動作しているLinux上で、Armadilloサイトより「x1-debian-builder」をダウンロードし、これを解凍します。解凍終了後、作成されたディレクトリ内に入ります。
atde:~$ tar -zxvf x1-debian-builder-[VERSION].tar.gz
atde:~$ cd x1-debian-builder-[VERSION]
atde:~/x1-debian-builder-[VERSION]$
使用方法
x1-debian-builder-[VERSION]直下に存在するスクリプト「build.sh」を実行します。実行する際、使用している機器の種類に応じてコマンドオプション[ax1,aiotg3,aiotg3l]のいずれかを入力してください。オプションが入力されていない場合は、デフォルトで[aiotg3]が選択されます。
atde:~/x1-debian-builder-[VERSION]$ sudo ./build.sh [ax1,aiotg3,aiotg3l]
このコマンドはルート権限で実行してください。ルート権限でない場合は次のようなエラーが発生します。
atde:~/x1-debian-builder-[VERSION]$ ./build.sh
ERROR: Please run script with sudo
また、[機種]_resources/resourcesのファイル群を誤った情報で変更してしまった場合もビルドログにエラーが発生することがあります。 例:「package」に誤ったパッケージ名を指定した場合のエラー
E: Unable to locate package XXXXX
全工程が完了すると次のような情報が表示され、ルートファイルシステムの圧縮済みディレクトリとパッケージインストールログが生成されています。
Generation complete.
Current default time zone: 'Asia/Tokyo'
Local time is now: 2017年 12月 12日 火曜日 16:45:42 JST.
Universal Time is now: Tue Dec 12 07:45:42 UTC 2017.
atde:~/x1-debian-builder-[VERSION]$ ls
aiotg3_resources ax1_resources debian-jessie-armhf_aiotg3l_20171212.tar.gz
aiotg3l_resources build.sh installed_pkgs_20171212.list
「fixup」に処理を追加した場合は、上記情報が表示された後に実行されます。
生成されたtar.gzのルートファイルシステムは、製品マニュアル「ルートファイルシステムの書き換え」を参考に書き換えてください。