OverlayFSを利用してシステム運用時のディスク使用の増加量を確認できます。 この記事ではそのやり方を紹介します。
ブログ
-
at_yuma.arakawa
-
at_yuma.arakawa
Linuxカーネルにはコントロールグループ(cgroup)という機能があります。この機能では、プロセスのグループに対してCPU時間やメモリといったリソースを割り当てることができます。 この記事ではArmadillo-X1・Armadillo-IoT G3/G3Lを対象に、大きくメモリを使用するプロセスに対しメモリ使用量を制限する方法を紹介します。
-
at_ito
Armadilloで独自に作成したソフトウェアを管理する際に、Debianパッケージ化しておくとaptコマンドにてバージョン管理ができて便利です。ここでは例としてArmadilloで動作するシェルスクリプトを含むDebianパッケージを作成してみます。
-
at_ito
2017/12/4時点でATDE6で「apt-get install node-eye」を実行するとATDEにnode-eyeパッケージがインストールされてしまいます。その後「apt-get purge node-eye」を実行した際にエラーが発生し、削除できないという現象が発生します。 そのため、ここでは間違ってATDE6でnode-eyeパッケージをインストールしてしまった時の削除方法を紹介します。
-
at_yuma.arakawa
落雷などの自然災害やブレーカーが落ちるなど、停電は予期せず発生します。また、工場など大きな電力を消費する機器が近くで動作している環境下では、瞬間的に電圧が低下または停止する「瞬低」がまれに発生します。瞬低は停電に比べ人が認知しにくいため、生涯の原因特定のネックになりがちな厄介な問題でもあります。 ここでは、ビルなどの非常口に設置してある非常灯にも使われている、ポピュラーで信頼性の高いバックアップ回路の例をご紹介します。
-
at_syunya.ohshio
Armadillo-X1,Armadillo-IoT G3/G3L: systemdで起動タイミングを変更し、自作アプリの並列処理を実現する方法を紹介します。 今回は1つ目のアプリが起動した直後に別のアプリを起動することで実現します。
-
at_keita.mogaki
Armadillo-X1,Armadillo-IoT G3/G3L: systemdでU-Bootブートスクリプトを使用する方法をご紹介します。
-
at_keita.mogaki
Armadillo-X1,Armadillo-IoT G3/G3L: systemdで起動順序を持たせてアプリを自動起動させる方法を紹介します。 今回は特定のUnitが起動した後に任意のUnitを起動させる手順を説明します。
-
at_ito
node-eyeを使用する際には、Armadilloでarmsdというデーモンが動作します。node-eyeの設定時になかなか接続が完了しない時などの動作確認のためにarmsdを再起動をしたい場合があるかと思います。 そういった時のためにここではarmsdの再起動を行う方法を紹介します。
-
at_ito
ArmadilloをグローバルIPアドレスが割り振られない3G/LTE通信で通信を行う構成で、外部からSSHを使用してメンテナンス等を行いたい場合があるかと思います。 ここでは「Reverse SSH Tunnneling」の機能を使って、直接アクセスできないArmadilloに対してSSH接続を行う方法を紹介します。
-
at_yuma.arakawa
U-Boot上の各種パラメータはU-Bootのシェル上で設定を変更できます。しかし、出荷時設定等を考えると、デフォルトの値を変更できると便利です。 ここでは、U-Bootのソースコード上のどこでデフォルト値を設定しているかを紹介し、試しに変更してみます。
-
at_yuma.arakawa
センサー値をゲートウェイが受信し、クラウドサーバーへ送信する様なIoTのシステムとしては、センサーとゲートウェイの他にサーバーも必要です。 ただし、デモ等を行う場所によってはインターネットへ接続できないこともあり、センサー・ゲートウェイ・サーバーがすべてローカルで完結していると便利です。 ここでは、センサーとしてArmadillo-IoT G3のCPUの温度センサーを使用し、サーバーとしてArmadillo-IoT G3Lを使用するデモの作り方を紹介します。
-
at_keita.mogaki
Armadillo-X1,Armadillo-IoT G3/G3L: systemdでアプリを自動起動する方法を紹介します。 今回は例として、簡単なシェルスクリプトを作成し、システム起動時に自動起動させてみました。
-
at_kazutaka.bito
Armadillo-IoT(G3)/X1からRS485(Modbus通信)で、土壌水分センサー(WD-3-WT-5Y-485M)の体積含水率、電気伝導率、温度のデータを読み取ってみました。
-
at_yuma.arakawa
TeraTerm等でArmadilloのコンソールを開き、コマンド入力していると、 カーネルのデバイスドライバ等のログが表示され、邪魔なことがあります。 本記事ではコンソールのログレベルを変更することで、コンソール上へのログ出力を抑制する方法を紹介します。
-
at_yuma.arakawa
Armadillo上でファイル操作するためだけにシリアルケーブルを接続し、TeraTerm等を起動するのは面倒なことがあります。 この記事では、Armadillo側へはSSHサーバを使用し、PC側へはWinSCPを使用することで、Windows上のファイル操作と同様にArmadillo上のファイルを操作する方法を紹介します。
-
at_ito
node-eyeを使用時に、ログファイル等のサイズの大きなファイルをリモートで見たい場合があるかと思います。node-eyeでは任意コマンドの仕組みを使用して、指定したファイルをFTPサーバーにアップロードすることができます。 ここでは、node-eyeの任意コマンドの仕組みを使って、ArmadilloのファイルをFTPサーバーにアップロードする方法を紹介します。
-
at_ito
node-eyeを使用時に、アプリケーションの更新等で、特定パッケージのみアップデートしたい場合があるかと思います。node-eyeでは任意コマンドの仕組みを使用して、特定パッケージのアップデートのみ実行することができます。 ここでは、node-eyeの任意コマンドの仕組みを使って、Armadilloにインストールされている特定パッケージのアップデートを行う方法を紹介します。
-
at_ito
node-eyeを使用している際に、一部ファイルだけの更新をしたい場合などがあると思います。その際には、node-eyeの任意コマンドを使用して、外部のWebサーバーからファイルをArmadilloにダウンロードすることが可能です。 ここでは、node-eyeから指定したファイルを、Armadilloにダウンロードする方法を紹介します。
-
at_yuma.arakawa
アドバリー製USBLANアドオン(ATB-AGAD-USBLAN)は、標準のカーネルのままでは動作させることができません。 カーネルにパッチを適用することで動作を確認できましたので、参考までに紹介します。
-
at_yuma.arakawa
Linuxカーネルをコンパイル時の設定(カーネルコンフィギュレーション)は、Linuxカーネルソースコードが持つmeuconfigという機能を使うことで変更できます。 menuconfigは、メニューから項目を選択し変更できるのですが、Linuxカーネルのカーネルコンフィギュレーションは項目が多く、変更したい項目がどこにあるのか探すことが困難な場合があります。menuconfigは検索機能を備えており、そのような場合にはキーワードからカーネルコンフィギュレーションを検索すると便利です。
-
at_takuya.sasaki
Armadillo-IoT G3/G3L/X1には、WLAN/BTコンボチップが搭載されており、BT通信が可能になります。 Bluezなどのプロトコルスタックを利用してBT通信を行っていると、BTの通信ログが/var/log/syslogに出力され、ディスク容量を圧迫することがあります。 ログローテーションの設定を変更する方法もありますが、今回はログ自体を出さなくする方法を紹介します。
-
at_ito
Armadilloには電源断対策のためのoverlayfsの機能があり、有効化するとファイルの変更がRAM上に保存されるようになります。その状態でDebianパッケージをインストール、またはアップデートした場合にRAM上に保存されるため、再起動すると元に戻ってしまい稼働中のシステムのアップデート等ができません。 そのため、ここではoverlayfsを有効化した状態で、DebianパッケージをeMMCにインストールする方法について紹介します。
-
at_ito
Armadilloを使用して複数台の製品を作る際には、各基板に対してソフトウェアを書きこむ必要があります。その際に書込み作業が発生するため、台数が多いと作業に時間がかかってしまう問題が発生します。 その問題をなるべく解消するために、USBメモリを使用してなるべく簡単にソフトウェアを書きこむための方法を紹介します。
-
at_kazutaka.bito
プログラムの処理速度を計測する方法として、gettimeofdayが使えます。 下記のコードのように、処理時間を測定したい処理(下記コードの場合、/** Describe Function for Measurement of time **/の箇所)の前後で、 gettimeofdayで時刻を測定して、差分をとると、処理時間が測定できます。
-
at_yuma.arakawa
ユーザーランドのソフトウェアを固定する場合、 「ユーザーランドイメージを作成する」、「インストールするdebパッケージをあらかじめダウンロードしておく」等が考えられますが、 apt-getコマンドでバージョンを指定してパッケージをインストールすることもできます。
-
at_ito
Armadillo-X1, Armadillo-IoT G3/G3Lでは、インストールディスクでLinuxカーネル、ルートファイルシステムを更新する仕組みがあります。インストールディスクを使用する方法では、SDカードを使用する必要がありますが、なんらかの理由によりSDカードを使用せずUSBメモリを使用したい場合があるかと思います。 そのため、ここではUSBメモリを使用して、eMMCのLinuxカーネル、ルートファイルシステムを更新する方法について紹介します。
-
at_ito
Armadillo-X1, Armadillo-IoT G3/G3Lでは、SDカードをルートファイルシステムとして構築できず、USBメモリに構築する必要がある場合があります。その際のUSBメモリにルートファイルシステムを構築する手順を紹介します。
-
at_ito
AradilloではLinuxカーネルのコンフィギュレーションを変更した場合など、Linuxカーネルのファイルを変更して動作させることがあるかと思います。その際にコンフィギュレーションに問題があり起動しなくなった場合等は、変更前のLinuxカーネルに戻したい場合等があるかと思います。 そういった複数のLinuxカーネルを使用したい場合に使える方法についてここで紹介します。
-
at_takuya.sasaki
Armadillo-400シリーズのソフトウェアマニュアルにサンプルコードがある、GPIO sysfsからの割り込みですが、 これをG3/X1に搭載可能なDIDOアドオンモジュールで利用する方法です。
-
at_yuma.arakawa
x1-debian-builderで自動作成されるrootユーザー、atmarkユーザーのパスワードの変更方法を紹介します。
-
at_yuma.arakawa
Armadillo-IoT G3/G3L、あるいはArmadillo-X1では、x1-debian-builderというツールを使用してルートファイルシステムアーカイブを作成します。 この記事では、その主たる処理を行うbuild.shの動きについて、簡単に概要を説明いたします。
-
at_yuma.arakawa
インターネット経由でスマートフォンへPush通知を行うためのサービスとして"Pushbullet"というサービスがあります。 この記事では、Armadillo-IoT G3/G3Lで使用してみた際の手順をまとめます。
-
at_yuma.arakawa
ルートファイルシステムアーカイブは.tar.gzのアーカイブなので、展開すればchownコマンドで所有者を変更できます。ただし、chownでの変更時に注意が必要な点があるため、この記事で説明します。
-
at_yuma.arakawa
x1-debian-builderでルートファイルシステムアーカイブを作成すると、一般ユーザーとして"atmark"ユーザーが作成されます。この記事では、ルートファイルシステムアーカイブ作成時のユーザーの追加/変更方法を紹介します。
-
at_yuma.arakawa
apt-getコマンドでdebファイルのダウンロードが可能です。
-
at_ito
Armadillo-X1, Armadillo-IoT G3/G3LでDeviceTreeを作成する際に、各ドライバーのソースコードを確認する必要がある場合があります。本ブログでは、Microchip 製 AD コンバーター(MCP3202)の設定を例に、該当のドライバーの場所を調べる方法について紹介します。
-
at_ito
Armadillo-X1, Armadillo-IoT G3/G3Lでは、アプリケーション開発環境がArmadillo上で開発することが想定されており、ATDE環境でクロス開発する場合には、各種クロスライブラリのインストール等必要なため大変です。 そのため、ATDE環境でArmadilloのルートファイルシステムを動作させ、そこでアプリケーション開発する方法について紹介します。
-
at_takuya.sasaki
Armadillo-IoT G3のファイアーウォールはデフォルトでは、すべて許可(ACCEPT)しています。 実際に使用するネットワーク環境に合わせて、必要なポート以外は閉じる必要がありますが、 今回は、ファイアーウォール設定の一例をご紹介します。
-
at_kazutaka.bito
Armadillo-IoT(G3/G3L)で、Node.jsを使えるようにしてみました。 (Armadillo-X1でも同様の手順で可能です。)
-
at_kazutaka.bito
Armadillo-X1で、カメラの画像からQRコードを読む方法(zbarcam)です。カメラはUSBカメラを使用しました。 当方が確認したのは、Armadillo-X1ですが、Armadillo-IoT(G3/G3L)も同様の手順が使えるはずです。
-
at_ito
Armadillo-X1, Armadillo-IoT G3/G3Lでは、量産時には突然の電源断対策にOverlayFSを有効化し、ファイル変更などをeMMCに書込みせずRAMに保存するような仕組みになっています。その際には、動作ログ等でファイルサイズが増え続けるとRAMの容量を圧迫してしまうため、長期連続動作をする場合は、ファイルサイズを抑制するよう構成することが必要です。 ここではログファイルの増加を抑制する前に、まずは動作時にどのようなファイルが変更されているかの確認方法について紹介します。
-
at_ito
sshを使用してログイン後、バックグラウンドでコマンドを実行し、ログアウトをすると実行したコマンドは終了してしまいます。ここではログアウト後も継続してバックグラウンドでコマンドを実行したい場合に使える方法について紹介します。
-
at_ito
Armadillo-X1, Armadillo-IoT G3ではマルチプレクスの設定を行う際にはDevice Treeが必要になります。ここではArmadillo-X1, Armadillo-IoT G3/G3Lでピンのマルチプレクス設定を行う際の例を記載します。
-
at_takuya.sasaki
Armadillo-IoT G3に統合監視ソフトウェアであるzabbixサーバをインストールしてみました。
-
at_kazutaka.bito
Armadillo-X1で、USBカメラの画像をmjpg-streamerを使って、ネットワーク経由でPCのWebブラウザで見る方法です。
-
at_ito
Armadillo-X1, Armadillo-IoT G3/G3Lでは、拡張ボードのマルチプレクスの設定や、ドライバーの設定を行うにはDevice Treeの設定が必要になります。 ここではDevice Treeの概要と、Device Treeについての調べ方について簡単に紹介します。
-
at_ito
node-eye(SACM)でシステムを監視している際に、標準では対応していない一部ファイルの更新や、設定の変更など、各システムに合わせてリモートからの指示をカスタマイズしたい場合があるかと思います。 そのような場合は、任意コマンドを実行できるよう設定を行うことで対応可能です。 ここでは任意コマンドの実行できるようにする追加設定の方法を紹介します。
-
at_takuya.sasaki
Armadillo-IoT G3/G3Lでは、NetworkManagerを使ってネットワークの設定を行います。 3G/LTEと、有線LANを同時に使う際に、有線LAN側のGWをデフォルトゲートウェイとして設定されてしまうと、 外部ネットワークへの接続ができなくなることがあるので、その際の対処方法の一つとして、 有線LANをデフォルトゲートウェイに設定しない方法を試してみます。
-
at_yuma.arakawa
Armadillo-X1/IoT(G3/G3L)では、ユーザーランドとしてDebian GNU/Linux 8(jessie)のルートファイルシステムアーカイブのみを公開しています。このアーカイブの作成やカスタマイズには、x1-debian-builderというツールを公開しています。 ただし、x1-debian-builderは完了までに少なくとも30分程かかります。本記事では、ちょっとした変更などで、アーカイブを直接変更する手順を紹介します。