ATDEをVmware Workstationから起動すると、エラーメッセージが表示されて起動できない場合があります。
この場合、WindowsのUAC(User Account Control)による制限である可能性が高いです。
UACを無効化するか、VMware Workstationを起動する際、VMwareのアイコンを右クリック→「管理者として実行」を選択してみてください。
ブログ
-
at_takuya.sasaki
-
at_takuya.sasaki
Armadillo-810/840では、PUX社のソフトセンサーという画像処理ソフトウェアを利用することができます。 今回はソフトセンサーの「ナンバープレート認識」ソフトウェアを使ったデモをご紹介します。
-
at_ito
アプリケーションやドライバーの作りによりカーネルパニックが発生し、意図通りにソフトウェアが動作しない場合があるかと思います。その際、すでにフィールドに出している製品等ですと復帰ができず困る場合もあるかと思います。
そのような場合の対策として、カーネルパニックが発生すると、自動的に再起動する機能がありますので紹介します。 -
at_mangetsu
Armadillo-420上でPerl5を動かしてみました。
-
at_ito
Aramdilloの開発環境であるATDEを使用する場合には、VMware等の仮想マシンを動作させるためのソフトウェアが必要になります。VMwareは多数の製品があるため、ここではVMwareの選び方を簡単に説明します。
-
at_ito
Armadillo出荷時等にLinuxカーネルイメージ、ユーザーランドイメージを自動的に書き換える必要がある場合も多いかと思います。
ここではTeraTermマクロを使用して、Linuxカーネルイメージ、ユーザーランドイメージを書き換えるためのTeraTermマクロを紹介します。 -
at_kazutaka.bito
Armadillo-810開発セットをPCとLANで接続して、PCのWebブラウザから カメラの画像の動画(MJPG:10fps)
カメラの画像の5秒毎の静止画(JPEG)
静止画を10枚分のファイルのダウンロード
ができるサンプルデモを作ってみました。 -
at_kazutaka.bito
Armadillo-810開発セットに簡単にトグルスイッチを付ける方法を検討してみました。
ここでは、スイッチを1個つけれればいい、ということで、ピンコネクタが実装済みの起動モード設定のジャンパ(JP1)を使うことにします。 -
at_takuya.sasaki
前回のeclipseのインストールまで完了した後は、Cで記述したソースコードをビルドしてみます。
1. Cプロジェクトの新規作成
GNOMEからEclipseを起動してください。 メニューの[ファイル]->[新規]->[Cプロジェクト]を選択すると以下のウィンドウが表示されます。
プロジェクト名に任意の名前(今回は hello とします)を入力して、[次へ]を押すと以下のウィンドウが表示されます。
-
at_takuya.sasaki
Armadillo-800シリーズの開発環境であるATDE5にeclipseをインストールして、C/C++のプログラムをビルドしてみたいと思います。 今回はeclipseのインストールまでを試してみました。
1. eclipseのインストール
eclipseは以下のサイトからダウンロード可能です。
http://www.eclipse.org/downloads/OSにはLinux、アーキテクチャは環境に合わせてください。今回はJavaではなく、C/C++のビルドを試しみたいので、パッケージには [Eclipse IDE for C/C++ Developers]を選択しました。
-
at_kazutaka.bito
用意するもの
- USB電源ケーブル
- USB電流電圧チェッカ
- USBバッテリ(PC、モバイルバッテリなど)
USBバッテリ--USB電源ケーブル--USB電流電圧チェッカ と接続する。
Armadillo-440開発セットで標準イメージで起動したとき 通常動作時の電圧(標準イメージ内のサンプルソフトfunctesterが動作中)
Armadillo-440開発セットで標準イメージで起動したとき 通常動作時の電流(標準イメージ内のサンプルソフトfunctesterが動作中)
Armadillo-440開発セットで標準イメージで起動したとき スリープ時の電圧(power-on suspend)
-
at_ito
Debianのデフォルトのエディタはnanoになっています。visudoコマンドや、gitコマンド等を使用した場合に、デフォルトのエディタが使われることがあります。nanoは単機能なコマンドなため、vimやemacs等の多機能なエディタに変更したい場合があるかと思います。 そのため、ここではATDE(Debian)のデフォルトのエディタを変更する方法を紹介します。
-
at_ito
テストを行う際に、自動的にコマンドを実行したり等、テストの自動化を行いたい場合があるかと思います。 今回は例として、シリアル通信ソフトウェアであるTera Termマクロを使って、起動テストを行う方法を紹介します。
-
at_ito
Atmark Dist等ダウンロードして展開しようとした場合に、エラーがでて正常に展開できない場合があるかと思います。その際に、ダウンロードしたファイルが壊れているかどうかを調べる方法について紹介します。
-
at_ito
Linuxカーネルのコンフィギュレーションを設定する場合に、 BACKLIGHT_LCD_SUPPORT等のシンボルはわかるものの、設定項目が どこにあるのかわからない時があるかと思います。 ここでは、「BACKLIGHT_LCD_SUPPORT」を元に設定項目が どこにあるのかを調べる方法を紹介します。
-
at_ito
Linuxにはteeというコマンドがあります。このコマンドは標準出力とファイルの両方へ出力することができます。ここではAtmark Distのmakeコマンド実行結果を例に、コマンド実行結果をファイルに保存しつつ、コンソールにも表示する方法を紹介します。
例えば、make.logファイルにコマンド結果を保存しつつ、コンソールにも表示するには、以下のようなコマンドになります。
[ATDE ~/atmark-dist]# make 2>&1 | tee make.log
ソースコードのビルド時にエラーを記録するときなどに便利ですので、ぜひ使用してみてください。
-
at_ito
製品化の際に、アプリケーションが動かなくなった場合などに再起動するためウォッチドッグタイマーを使用する場合があるかと思います。ここではウォッチドッグタイマーの使用方法について説明します。
ウォッチドッグタイマーにはハードウェアウォッチドッグタイマーと、ソフトウェアウォッチドッグタイマーがあります。
ハードウェアウォッチドッグタイマーはCPUのウォッチドッグタイマーの機能を使用しており、ブートローダー(Hermit-At)もしくは、Linuxカーネルで使用しています。そのため、ブートローダーやLinuxカーネルが正常に動作せず、ハードウェアウォッチドッグタイマーをキックできない場合にのみ自動的に再起動が行われます。そのため、アプリケーションが正常に動作しない場合等に使うことには向いていません。
ソフトウェアウォッチドッグタイマーは、Linuxカーネルが提供している機能です。アプリケーション等の死活監視を行う場合に使用することができます。製品化の際に、実装する場合はほぼソフトウェアウォッチドッグタイマーを使用する形になるかと思います。
そのため、ここではソフトウェアウォッチドッグタイマーを使用する方法を以下に紹介します。
-
at_ito
Atmark Distにはシリアル-イーサネット変換通信を行うためのseri2ethというアプリが入っています。ここではseri2ethの使用方法について説明します。
-
at_ito
netflashコマンドでイメージをフラッシュ書いた後、正しく書かれたかチェックしたい場合があるかと思います。
ここでは、netflashコマンドで、正しくイメージが書かれたかどうかをチェックする機能について紹介します。
1. チェック方法
netflashには-Cオプションがあり、このオプションを付けることによって、指定されたイメージと同じイメージが、フラッシュにかかれているかどうかをチェックすることができます。
コマンド例としては、以下のようになります。
netflash -knubC -r /dev/flash/kernel linux.bin.gz
2. ベリファイ実行例
2.1. kernel領域に、linux-a400-1.08.bin.gzイメージを書き込む
以下のコマンドを実行して、kernel領域にlinux-a400-1.08.bin.gzイメージを 書き込みます。この際オプションに"-b"を付けて自動的に再起動しないように しておきます。
-
at_takuya.sasaki
Armadillo-840のDebian環境で動く hwlockコマンドのデバッグをするために、Debianパッケージをソースから持ってきてビルドした際のメモです。
1. SDカードにDebian環境を構築して、SDブートします
以下を参照してください。
https://manual.atmark-techno.com/armadillo-840/armadillo-840_product_manual_ja-1.1.0/ch15.html2. ビルドに必要なパッケージをインストールします
$ apt-get install dpkg-dev
3. ソースコードを持ってきます。
hwclockコマンドはutil-linuxパッケージに含まれます
-
at_takuya.sasaki
Armadillo-840でLANで受信したパケットをダンプして解析する手順をまとまめてみました。今回はRTPプロトコルで流れてくるH.264データをダンプ/解析してみたいと思います。
1. Debianパッケージからtcpdumpを持ってきます
今回はtcpdumpのバイナリはDebianパッケージから持ってきます。
-
at_takuya.sasaki
Armadillo-840では、AVコーデックミドルウェアによりカメラからの入力画像をH.264にエンコードすることができます。 今回は、USBカメラからの画像をJPEGファイルに連続して保存し、ffmpegで動画ファイルに変換するということを試してみます。 ffmegはDebianパッケージのバイナリを使うことにします。
-
at_ito
Armadilloの標準イメージには、viエディタが入っています。しかしviエディタは操作方法が特殊であり使いにくいという人もいます。 そのため、Debian GNU/Linuxでも標準のエディタになっているnanoをAtmark Distに追加してみました。
-
at_ito
ATDEをVMware Player等(以降VMware)を使用していると、VMwareのウインドウにフォーカスが 移ってしまうとAlt+Tabでタスク切り替えをしようと思っても、ホストOSのタスクに切り替わらない。(ゲスト側でタスク切り替えすることになる) キーボードを使ってタスク切り替えをすることが多いので、これでは不便ということでVMwareのユニティモードを使い、ホストOSのウインドウとして、ATDEのアプリケーションを立ち上げる方法を紹介します。
-
at_ito
Armadillo-810/840のfirmwareパーティションは、SquashFSファイルシステムで作成されています。 firmwareパーティションは、Armadillo特有のAVコーデックミドルウェアや、OpenGL ES2 ライブラリが含まれます。
今回は、AVコーデックミドルウェアや、Qt(OpenGLが必要)等を使わない場合で、 firmwareパーティションを変更したい時に、SquashFSファイルシステムのイメージを作成する方法を紹介します。
SquashFSファイルシステムのイメージを作るためには、mksquashfsコマンドを使用します。
以下の様にコマンドを実行することで、SquashFSファイルシステムのイメージが作成されます。
[atde ~]$ mksquashfs イメージ化したいディレクトリ イメージファイル名 -comp xz
※: 「イメージ化したいディレクトリ」、「イメージファイル名」は適宜変更してください。
-
at_kazutaka.bito
カーネル起動時にUSBのプローブが有効になっていると、 認識された順番にデバイスファイルの末尾の番号がつく。
例えば、Armadillo-IoT開発セットの場合、3Gモジュールには、ttyUSB[0-4]が割り当てられるが、 USBコネクタにUSB-シリアル変換ケーブルを挿入した状態で起動すると、 USB-シリアル変換ケーブル:ttyUSB0 3Gモジュール:ttyUSB[1-4] のように3Gモジュールのデバイスファイルの番号がずれる。 補足)本例では、カーネルコンフィギュレーションのUSBサポートの機能で、シリアル変換のサポートを有効にしているものとする。
このような番号ずれを防ぐ方法としては、delayed_probeという方法がある。
本例について、USBコネクタにさしたデバイスを、3Gモジュールより後で認識させる場合は、 make menuconfigでカーネルコンフィギュレーションを
-
at_takuya.sasaki
ATDE5の VMware仮想イメージファイルは、Oracle社のVirtual BOXでも起動することが可能です。
1. VirtualBoxのインストール
インストール方法は省略いたします。このブログではバージョン 4.3.12 を使用しています。
2. ATDE5イメージの展開
任意のフォルダに弊社Webサイトで公開しているATDE5の仮想イメージファイルを展開してください。 展開の方法は以下のHowToも参考にしてください。
https://armadillo.atmark-techno.com/howto/tar_xz-extract3. VirtualBoxを起動します
-
at_ito
プログラムを作成した際に、依存しているライブラリのライセンスを確認する必要があると思います。その際に、リンクしているライブラリのソースコードを取得する必要があるため、指定のバイナリが使用しているライブラリのDebianパッケージ名、Debianソースパッケージ名を調べるためのシェルスクリプトを作ってみました。
以下のシェルスクリプトを作成し、ATDEで動かしてみてください。
-
at_takuya.sasaki
Armadillo-810の標準イメージではUVCガジェットが起動しているので、USBカメラのように使うことも可能です。 以下のマニュアルには、ATDE5上で guvcviewというツールを使ってArmadillo-810で撮影した画像を確認する方法が 記載されています。
[ 6.2.1. UVCガジェット ]
https://manual.atmark-techno.com/armadillo-810/armadillo-810_product_manual_ja-1.6.0/ch06.html#sct.usb_gadget-uvcただしPCのスペックなどによりリソース不足でguvcviewが起動できないケースもあるかもしれません。 ATDE5上ではなく、以下のようなWindowsアプリケーションをインストールすることで、ATDE5を介さずに、直接Windows上でArmadillo-810の画像を確認することができますよ。
-
at_takuya.sasaki
以下に公開しているHowToでは、OpenCVのサンプルコードをATDE5上でクロスビルドしています。 これだと、サンプルを直すたびに、Armadillo-810への転送が必要になるので面倒です。
[ Howto : Armadillo-810でOpenCVを用いた画像処理 ]
https://armadillo.atmark-techno.com/howto/armadillo-810-opencvここではArmadillo-810上にコンパイルに必要な環境と、OpenCVのライブラリをインストールして、 Armadillo-810上でビルドする方法をご紹介します。
-
at_ito
DebianパッケージをAtmark Distで作ったユーザーランドに追加する際に、バイナリを実行しても必要なファイルが見つからずに正常に起動しないことがあるかと思います。その際に、何が必要なファイルかを調べる方法を紹介します。
バイナリ実行時に必要なファイルは、open()システムコールで開かれます。そのため、バイナリ実行時にどのシステムコールが使用されたかを調べるstraceを使うことで、どのファイルをopen()しようとしたかを調べることができます。このstraceはLinuxのデバッグユーティリティであり、引数に渡されたバイナリが使用するシステムコールを見ることができます。
Atmark Distのコンフィギュレーションで選択できるstraceでは、ビルド時にエラーが発生するため、Debian Packagesからstraceのバイナリを持ってくる必要があります。
以下のページを参考に、straceをユーザーランドに追加してください。
-
at_ito
Armadillo-810 製品マニュアルでは、/sys/class/video4linux/videoN/name(Nは数字が入ります)でどのデバイスファイルがどのカメラに対応するかを確認する方法が記載されています。この方法の場合、複数のカメラが接続されているとコマンドを複数回打つ必要があり面倒です。そのため、2014年11月の製品アップデートで追加されたv4l-utilsを使って、どのデバイスファイルが、どのカメラに対応しているか調べる方法を紹介します。
例として、Armadillo-810 カメラモデル開発セット(標準イメージ)の場合で説明します。 起動時には、以下のように/dev/video0と/dev/video1が作成されています。
[root@armadillo810-0 (ttySC2) ~]# ls -1 /dev/video* /dev/video0 /dev/video1
v4l-utilsに含まれるv4l2-ctlコマンドを、以下のように実行することで、どのデバイスファイルが、どのカメラに対応しているか調べることができます。
-
at_takuya.sasaki
Armadillo-840/810開発セットに付属しているUSBシリアル変換アダプタ(FTDI 社製FT232RL内臓)をPCに接続しても、 自動でドライバが認識しない場合は、以下のサイトからダウンロードしてください。
http://www.ftdichip.com/Drivers/VCP.htm
「Currently Supported VCP Drivers」のx86(32bit) OR x64(64bit)お使いのPCに合わせたOS/アーキテクチャのものをダウンロードしてください。
-
at_ito
ユーザーモードqemuを使うと、amd64もしくはi386アーキテクチャのLinux上で、armアーキテクチャのバイナリが動かせます。 この仕組みを使って、ATDE上でArmadillo-800シリーズ用のDebian(armhfアーキテクチャ)を動かす方法を紹介します。
-
at_kazutaka.bito
Armadillo上で動作しているプロセスの物理メモリ使用量を調べてみます。
Armadillo-440の標準イメージで自動起動されるfunctesterの場合、まずは
[root@armadillo440-0 (ttymxc1) ~]# ps | grep functester PID Uid VmSize Stat Command 1358 root 6352 S functester
でPIDを確認します。
/proc/[プロセスのID]/status
をcatで確認します。 上記のfunctesterの場合は、プロセスIDは1358なので、
-
at_ito
Howto : Armadillo-810/840で IEEE802.11ac USB無線LANアダプタ GW-450Sを動作させるを参考に、Armadillo-840のDebian環境(SDカード使用)でGW-450Sを使える環境を作成してみました。
-
at_ito
ソースコードをビルドする際に、特定のファイルが必要で、それをDebianパッケージからインストールしたい場合があると思います。そういった際に便利な方法です。
-
at_nakai
Armadillo-810/840でHALCONを利用したアプリを実行するとエラーが出力される場合があります。 2014年11月7日時点でHALCONエラーの要因が判明しているものについて記載します。
HALCON error #2036: could not find license.dat in operator set_system
ライセンスファイル(/opt/halcon/license/license.dat)が存在しない場合に出力されます。
HALCON error #2076: Message checksum failure in operator set_system
ライセンスファイル(/opt/halcon/license/license.dat)の内容がおかしい場合に出力されます。
HALCON error #5101: Error while opening the window in operator open_window
Xサーバーに接続できない場合や、ウィンドウを開けない場合に出力されます。
-
at_takuya.sasaki
過去に、Armadillo-810での作業中に、やらかしてしまった失敗談を参考まで。
とある問題の切り分けのためにフラッシュ用のboot loaderを、Hermit-At Winを使って、何回か書き換えている最中に、 hermitが立ち上がらなくなる事象が発生。
USBシリアル変換チップのスライドで、保守モードにしようがOS自動起動モードにしようが、シリアルコンソールには何も表示されない。 ハード故障かと思ったが、LEDは点灯しているし、問題はなさそう。
Hermit-At Winから再度書き換えたいが、targetにつながらないといわれる。 ふと再度Hermit-At Winの画面を見ると、前回フラッシュに書き込んだファイルが、SDカード用のboot loaderでした。
復旧方法は以下の通り。
1) Armadillo-810の拡張ボートBに、boot loader入りのSDカードを挿入
2) JP3をショートさせて、SDカード内からhermitを起動
3) 再度Hermit-At Winからフラッシュ用のboot loaderに書き換え以上
-
at_ito
開発したアプリケーションや、設定ファイルなどを、Atmark Distで作ったユーザーランドに配置する方法について紹介します。
-
at_ito
Armadilloのユーザーランドには、「Atmark Dist」と「Debian GNU/Linux」が使用できます。 それぞれに特徴があり、どういった場面でどちらを使えば良いかわからない場合もあるかと 思います。 今回は、簡単にですが「Atmark Dist」と「Debian GNU/Linux」の選び方について紹介します。
-
at_takuya.sasaki
以前のブログでは USBでArmadillo-840とプリンタを接続しました。
https://users.atmark-techno.com/blog/750/969 今回試しているNP-2511はUSB以外にもRS232Cで接続することが可能で、ユーザーズガイドにもプリンタの 追加のための手順も記載されています。 今回はArmadillo-840とNP-2511をRS232Cで接続してみたいと思います。 -
at_ito
DebianパッケージをAtmark Distにインストールする際に、依存関係を考慮する必要がある場合があります。 その際に、依存しているパッケージをインストールするのにさらに依存パッケージが存在していたりして、インストールするのに手間がかかります。 そのため、簡単にDebianパッケージの依存関係を再帰的に検索し、表示する方法を紹介します。
-
at_ito
製品出荷時に、ArmadilloにLinuxカーネルイメージや、ユーザーランドイメージを書き込むことがあるかと思います。 Hermit-Atのtftpdlコマンド等でイメージを書き込んだ後に、正常にNORフラッシュに書き込まれたのかどうかを確認したい場合もあるかと思います。 ここでは、Hermit-Atのmd5sumコマンドを使用し、イメージが正常に書き込まれているかどうかを確認する方法を紹介します。
-
at_ito
Armadilloを使用している際に、作業用PCとのファイルの送受信を行いたい場合があるかと思います。 Ethernet経由や、USBメモリ等のストレージ経由でファイルを送受信することもできますが、 ネットワークの設定が必要であったり、ストレージを用意したりと面倒なこともあるかと思います。 そこで、Armadilloを使用する際に使うシリアル通信ソフト(ここではTeraTermを使用)のZMODEMを使い、 シリアル経由でファイルを送受信する方法を紹介します。
-
at_takuya.sasaki
Armadillo-840で日本プリメックス社のUSBプリンタ(NP-2511)を動かそうと思います。
http://www.primex.co.jp/NPIServlet?viewpage=2&nextpage=3&BLGCode=40&ModelCode=57ただしドライバがUbunts向けのrpmパッケージ(およびソースパッケージ)になります。 よってまずは、Ubunts向けのドライバをDebianで動かせるようにビルドしてみます。
-
at_ito
ATDE5をデフォルトのまま使用していると、共有フォルダが自動的にマウントされません。 これはATDE5がopen-vmを使用しているためです。open-vmの代わりにVMware Toolsを インストールすると、自動的に共有フォルダがATDE5にマウントされます。 ここではopen-vmの変わりにVMware Toolsを使用するための方法について紹介します。
-
at_kazutaka.bito
Armadillo上でコンフィギュレーションを確認するには、下記のコマンドで可能。
zcat /proc/config.gz
-
at_ito
iperfコマンドを使用して、ネットワークのスループットを測る方法を紹介します。
-
at_ito
NPtcpコマンドを使用して、ネットワークのスループットを測る方法を紹介します。