Armadilloフォーラム

Armadillo-IoT G3Lルートファイルシステムのビルドについて

hiragushi

2017年1月31日 20時48分

Armadillo-IoTゲートウェイG3L製品マニュアルの
「11.3. Debian GNU/Linux ルートファイルシステムをビルドする」の「11.3.1. 出荷状態のルートファイルシステムアーカイブを構築する」
にしたがってルートファイルシステムを構築しようとしています。

sudo ./build.sh

とコマンドを打つところまではできましたが、できあがったファイルは
debian-jessie-armhf_aiotg3_20170131.tar.gz
という名称です。(aiotg3であって、aiotg3lでない)

これはG3Lのルートファイルシステムではないように思います。
(パッケージをカスタマイズしたはずなのにそれが反映されていないためです)
何かのファイルの設定を変更する必要があるのでしょうか。

お手数をおかけしますが、よろしくお願いいたします。

コメント

at_koseki

2017年2月1日 10時01分

古関です。

大変申し訳ありません。
マニュアルの誤記です。

sudo ./build.sh aiotg3l

と実行してください。
「debian-jessie-armhf_aiotg3l_YYYYMMDD.tar.gz」が生成されますので、そちらをご利用ください。

近日中にマニュアルを修正します。

hiragushi

2017年2月1日 11時56分

G3Lのファイルが生成されました。

ありがとうございました。

hiragushi

2017年2月2日 10時28分

ルートファイルシステムビルドの件ですが、「11.3.2.2. パッケージを変更する」にしたがってインストールパッケージを変更しました。

途中で下記のメッセージが表示され、そのまま停止します。
[ OK ] Stopping MariaDB database server: mysqld

一晩放っておきましたが終わらないのでCtrl+Cで中断すると、そのあと処理が続きますが最後に次のメッセージが表示されます。

(前略)
Errors were encountered while processing:
mariadb-server-10.0
mariadb-server
E: Sub-process /usr/bin/dpkg returned an error code(1)
(後略)

packagesファイルは、Apache2を入れるためlighttpdをコメントにしました。

また、下記のアプリケーションを追加しました。
#Add application
apache2
php5
mariadb-server
php5-mysql

packageファイル自体は添付します。
(アップロード制限のために拡張子.txtを追加しています。元々は拡張子はありません)

mariaDBを正しくインストールするためにはどうすれば良いでしょうか。
よろしくお願いいたします。

ファイル ファイルの説明
packages.txt packagesファイル

at_ohsawa

2017年2月2日 17時54分

申し訳ありません。
御不便をおかけしますが mariadb-server は個々の armadillo上で
apt-get install でインストールするよう願いいたします。

原因は、mariadb-server-10.0パッケージのインストール後処理
(postinst)でqemu(PC上でarmhfアーキテクチャのパッケージの
インストール処理を実行するために使うエミュレータ)が
エミュレーションすることができないシステムコールを発行して
いることによるエラーでした。

もう少し具体的には、postinstでmariadbのuserテーブルを更新する
ためにmysqldを--bootstrapで実行すると発生するInnoDBの処理に
qemuでサポートできないシステムコール(Linux Native AIOの実装)
が入っている事が原因でした。

この状況は、失敗している状態を再現させつつ中断させて中途状態の
ユーザーランド内を見ると /var/log/mysql/error.logに

170202  7:53:07 [Note] InnoDB: Using Linux native AIO
170202  7:53:07 [Note] InnoDB: Not using CPU crc32 instructions
qemu: Unsupported syscall: 243
2017-02-02 07:53:07 f6485000 InnoDB: Error: Linux Native AIO interface is not supported on this platform. Please check your OS documentation and install appropriate binary of InnoDB.

というログから観察できました。

一応、InnoDBのAIOサポートはmy.cnfで無効にできるようなので、
生成されるユーザーランド内の /etc/my.cnf に

[mysqld]
innodb_use_native_aio = 0

を与えてインストールしてみたのですが、確かにaioは使われず、
エミュレーションは成功するのですが、
今度は mysqld got signal 11でmysqldがクラッシュするため、
この方法では対処できないようです。

hiragushi

2017年2月4日 17時46分

ありがとうございました。
現状は理解いたしましたが困った状態ですので別途サポートの方にご相談させていただくかも知れません。
よろしくお願いいたします。