at_yuma.arakawaさんのブログ

TIPS: cgroupでプロセスのメモリ使用量を制限する

Linuxカーネルにはコントロールグループ(cgroup)という機能があります。この機能では、プロセスのグループに対してCPU時間やメモリといったリソースを割り当てることができます。 この記事ではArmadillo-X1・Armadillo-IoT G3/G3Lを対象に、大きくメモリを使用するプロセスに対しメモリ使用量を制限する方法を紹介します。

Armadillo-IoTゲートウェイ, Armadillo-X1をバッテリーバックアップして停電・瞬低に備える

落雷などの自然災害やブレーカーが落ちるなど、停電は予期せず発生します。また、工場など大きな電力を消費する機器が近くで動作している環境下では、瞬間的に電圧が低下または停止する「瞬低」がまれに発生します。瞬低は停電に比べ人が認知しにくいため、生涯の原因特定のネックになりがちな厄介な問題でもあります。

ここでは、ビルなどの非常口に設置してある非常灯にも使われている、ポピュラーで信頼性の高いバックアップ回路の例をご紹介します。

Armadillo-X1,Armadillo-IoT G3/G3L: U-Bootのデフォルトのパラメータ設定を変更する

U-Boot上の各種パラメータはU-Bootのシェル上で設定を変更できます。しかし、出荷時設定等を考えると、デフォルトの値を変更できると便利です。

ここでは、U-Bootのソースコード上のどこでデフォルト値を設定しているかを紹介し、試しに変更してみます。

Armadillo-X1,Armadillo-IoT G3/G3L: REST APIのPOSTで受け取ったデータを保存するデモ

センサー値をゲートウェイが受信し、クラウドサーバーへ送信する様なIoTのシステムとしては、センサーとゲートウェイの他にサーバーも必要です。

ただし、デモ等を行う場所によってはインターネットへ接続できないこともあり、センサー・ゲートウェイ・サーバーがすべてローカルで完結していると便利です。

ここでは、センサーとしてArmadillo-IoT G3のCPUの温度センサーを使用し、サーバーとしてArmadillo-IoT G3Lを使用するデモの作り方を紹介します。

Armadillo-X1,Armadillo-IoT G3/G3L: コンソールログレベルを変更し、コンソール画面へのログを抑制する

TeraTerm等でArmadilloのコンソールを開き、コマンド入力していると、 カーネルのデバイスドライバ等のログが表示され、邪魔なことがあります。

本記事ではコンソールのログレベルを変更することで、コンソール上へのログ出力を抑制する方法を紹介します。

Armadillo-X1,Armadillo-IoT G3/G3L: Armadilloへネットワーク経由でファイルを追加/削除する方法

Armadillo上でファイル操作するためだけにシリアルケーブルを接続し、TeraTerm等を起動するのは面倒なことがあります。

この記事では、Armadillo側へはSSHサーバを使用し、PC側へはWinSCPを使用することで、Windows上のファイル操作と同様にArmadillo上のファイルを操作する方法を紹介します。

TIPS: Armadillo-X1/Armadillo-IoT G3でアドバリー製USBLANアドオンを動作させる

アドバリー製USBLANアドオン(ATB-AGAD-USBLAN)は、標準のカーネルのままでは動作させることができません。

カーネルにパッチを適用することで動作を確認できましたので、参考までに紹介します。

TIPS: menuconfig内のカーネルコンフィギュレーションの場所を検索する方法

Linuxカーネルをコンパイル時の設定(カーネルコンフィギュレーション)は、Linuxカーネルソースコードが持つmeuconfigという機能を使うことで変更できます。

menuconfigは、メニューから項目を選択し変更できるのですが、Linuxカーネルのカーネルコンフィギュレーションは項目が多く、変更したい項目がどこにあるのか探すことが困難な場合があります。menuconfigは検索機能を備えており、そのような場合にはキーワードからカーネルコンフィギュレーションを検索すると便利です。

TIPS: Armadillo-X1,Armadillo-IoT G3/G3L: バージョン指定でapt-get install

ユーザーランドのソフトウェアを固定する場合、 「ユーザーランドイメージを作成する」、「インストールするdebパッケージをあらかじめダウンロードしておく」等が考えられますが、 apt-getコマンドでバージョンを指定してパッケージをインストールすることもできます。

ページ