ブログ

USBデバイスの認識を遅らせる

カーネル起動時にUSBのプローブが有効になっていると、
認識された順番にデバイスファイルの末尾の番号がつく。

例えば、Armadillo-IoT開発セットの場合、3Gモジュールには、ttyUSB[0-4]が割り当てられるが、
USBコネクタにUSB-シリアル変換ケーブルを挿入した状態で起動すると、
 USB-シリアル変換ケーブル:ttyUSB0
 3Gモジュール:ttyUSB[1-4]
のように3Gモジュールのデバイスファイルの番号がずれる。
補足)本例では、カーネルコンフィギュレーションのUSBサポートの機能で、シリアル変換のサポートを有効にしているものとする。

このような番号ずれを防ぐ方法としては、delayed_probeという方法がある。

本例について、USBコネクタにさしたデバイスを、3Gモジュールより後で認識させる場合は、
make menuconfigでカーネルコンフィギュレーションを
Linux Kernel Configuration
  Device Drivers  --->
    [*] USB support  --->

ATDE3をVirtual BOXで起動する

ATDE3の VMware仮想イメージファイルは、Oracle社のVirtual BOXでも起動することが可能です。

1. VirtualBoxのインストール

インストール方法は省略いたします。このブログではバージョン 4.3.12 を使用しています。

2. ATDE3イメージの展開

任意のフォルダに弊社Webサイトで公開しているATDE3の仮想イメージファイルを展開してください。

3. VirtualBoxを起動します

4. [新規(N)]を押して、[名前](任意)を入力し、[タイプ][バージョン]を選択してください。

ATDE5をVirtualBoxで起動する

ATDE5の VMware仮想イメージファイルは、Oracle社のVirtual BOXでも起動することが可能です。

1. VirtualBoxのインストール

インストール方法は省略いたします。このブログではバージョン 4.3.12 を使用しています。

2. ATDE5イメージの展開

任意のフォルダに弊社Webサイトで公開しているATDE5の仮想イメージファイルを展開してください。 展開の方法は以下のHowToも参考にしてください。 http://armadillo.atmark-techno.com/howto/tar_xz-extract

3. VirtualBoxを起動します

ARM用バイナリが使用しているライブラリのDebianパッケージ名、Debianソースパッケージ名を調べる方法

プログラムを作成した際に、依存しているライブラリのライセンスを確認する必要があると思います。その際に、リンクしているライブラリのソースコードを取得する必要があるため、指定のバイナリが使用しているライブラリのDebianパッケージ名、Debianソースパッケージ名を調べるためのシェルスクリプトを作ってみました。

以下のシェルスクリプトを作成し、ATDEで動かしてみてください。

Armadillo-IoTでrubyのwebsocket-client-simpleを利用するには

Armadillo-IoTで簡易的に任意のRubyライブラリを追加するには、 /usr/lib/ruby/vendor_ruby/ディレクトリにライブラリファイルを配置する ことで利用できるようになります。

ここでは、WebSocketのシンプル実装である「websocket-client-simple」を 追加する例を記載してみます。 参照: https://rubygems.org/gems/websocket-client-simple

尚、本項では簡易的な手順を示すため、ユーザーランドイメージを作成することはありません。

■ 「websocket-client-simple」をダウンロード

Armadillo-IoTにログインして、下記のようにwgetコマンドなどでライブラリを配置します。

Armadillo-810の画像をWindowsPC上で確認する

Armadillo-810の標準イメージではUVCガジェットが起動しているので、USBカメラのように使うことも可能です。
以下のマニュアルには、ATDE5上で guvcviewというツールを使ってArmadillo-810で撮影した画像を確認する方法が
記載されています。

[ 6.2.1. UVCガジェット ]
http://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の画像を確認することができますよ。

[ YAWCAM ]

Armadillo-810上でOpenCVのサンプルソースをビルドする

以下に公開しているHowToでは、OpenCVのサンプルコードをATDE5上でクロスビルドしています。
これだと、サンプルを直すたびに、Armadillo-810への転送が必要になるので面倒です。

[ Howto : Armadillo-810でOpenCVを用いた画像処理 ]
http://armadillo.atmark-techno.com/howto/armadillo-810-opencv

ここではArmadillo-810上にコンパイルに必要な環境と、OpenCVのライブラリをインストールして、
Armadillo-810上でビルドする方法をご紹介します。

1. SDカードにDebian環境を構築して、SDブートします

以下を参照してください。

バイナリ実行時にopen()しているファイルを調べる方法

DebianパッケージをAtmark Distで作ったユーザーランドに追加する際に、バイナリを実行しても必要なファイルが見つからずに正常に起動しないことがあるかと思います。その際に、何が必要なファイルかを調べる方法を紹介します。

バイナリ実行時に必要なファイルは、open()システムコールで開かれます。そのため、バイナリ実行時にどのシステムコールが使用されたかを調べるstraceを使うことで、どのファイルをopen()しようとしたかを調べることができます。このstraceはLinuxのデバッグユーティリティであり、引数に渡されたバイナリが使用するシステムコールを見ることができます。

Atmark Distのコンフィギュレーションで選択できるstraceでは、ビルド時にエラーが発生するため、Debian Packagesからstraceのバイナリを持ってくる必要があります。

以下のページを参考に、straceをユーザーランドに追加してください。

v4l-utilsでどのデバイスファイルが、どのカメラに対応しているか調べる

Armadillo-810 製品マニュアルでは、/sys/class/video4linux/videoN/name(Nは数字が入ります)でどのデバイスファイルがどのカメラに対応するかを確認する方法が記載されています。この方法の場合、複数のカメラが接続されているとコマンドを複数回打つ必要があり面倒です。そのため、2014年11月の製品アップデートで追加されたv4l-utilsを使って、どのデバイスファイルが、どのカメラに対応しているか調べる方法を紹介します。

例として、Armadillo-810 カメラモデル開発セット(標準イメージ)の場合で説明します。 起動時には、以下のように/dev/video0と/dev/video1が作成されています。

開発者ブログがRSSに対応しました

開発者ブログがRSSに対応しました。RSSリーダーにこのブログを追加していただくことで、新しく追加になった記事を見ることができます。

開発者ブログのページの左下にあるをクリックしてRSSリーダーに追加していただくか、RSSリーダーにURL(https://users.atmark-techno.com/blog/feed)で登録していただくことでRSSリーダーから開発者ブログを見ることができます。

ページ

Subscribe to RSS - ブログ