ブログ

バイナリ実行時に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リーダーから開発者ブログを見ることができます。

Armadillo-400シリーズで、MicroSDカードでatmark-distを動かす

1.ATDEを起動して、MicroSDカードを接続してアンマウントする
SDカードを接続すると自動的にマウントされる
[atde ~]$ mount
/dev/sdb1 on /media/略
ので、下記コマンドでアンマウントする。
[atde ~]$ sudo umount /dev/sdb1

2.fdiskコマンドでMicroSDカードのパーティションを構成
[atde ~]$ sudo fdisk /dev/sdb
WARNING: 略
Command (m for help): d  // dを入力
Selected partition 1
 
Command (m for help): n  // nを入力
Command action
   e   extended
   p   primary partition (1-4)
p             // pを入力
Partition number (1-4): 1 // 1を入力
First cylinder (1-2029, default 1):  // そのまま

WindowsPC上で、Armadillo内のファイルをダウンロード

準備)
Armadilloで、転送したいファイルを
/home/www-data
に置く。

下記例において、
 ArmadilloのIPアドレス:192.168.10.10
 転送したいファイル:log10.txt
とする。

方法1:htmlを使う
<a href="http://192.168.10.10/log10.txt" download="log10.txt"> Armadillo log </a> </br>
という内容のhtmlファイルを作る。 htmlファイルをダブルクリックするとWebブラウザが開いて。 Armadillo log という文字が表示される。 当方が使ったWebブラウザはFirefox。 Armadillo logの文字を右クリックして、 名前を付けてリンク先を保存 すると、log10.txtがダウンロードされる。 方法2:Window版wgetを使う

ifconfigで設定したIPアドレスが自動的に変更される

Armadilloを標準イメージで起動すると、
/etc/network/interfaces
の
 auto lo eth0
 iface eth0 inet dhcp
に基づきDHCPでアドレスを取得するようにネットワーク設定される。 上記の設定でArmadilloを起動後、固定IPアドレスに変更するには、下記のようにifconfigコマンドで設定できる。
[armadillo ~]# ifconfig eth0 192.168.10.0 up
ただし、長時間たつとIPアドレスが変更されることがある。 これは、DHCPクライアントのプロセス  atmark-distを使用している場合、udhcpc  Debianを使用している場合、dhclient3 が動作していることが要因のようなので、DHCPクライアントを止める。

Armadillo-800シリーズのUSBシリアル変換アダプタドライバ(FTDI FT232RL)

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/アーキテクチャのものをダウンロードしてください。

Armadillo-400シリーズにLEDを追加する

Armadillo-400シリーズのドライバにはLEDクラスが用意されています。
http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_software_manual_ja-1.9.1/ch09.html#sec-led-class

Armadillo-420/440に標準で用意されている red / yellow / green のLED以外に、
新しいLEDを追加する際の手順です。

今回は、例としてCON9_28ピンをLEDクラスに割り当てます。
また諸事情により、kernel2.6.35に対する修正方法を記載していますが、2.6.26でも大きな違いはないと思います。

まずは以下のソースを編集します。

Armadillo-800シリーズ: ATDEでArmadilloのDebian(armhfアーキテクチャ)を動かしてみる

ユーザーモードqemuを使うと、amd64もしくはi386アーキテクチャのLinux上で、armアーキテクチャのバイナリが動かせます。

この仕組みを使って、ATDE上でArmadillo-800シリーズ用のDebian(armhfアーキテクチャ)を動かす方法を紹介します。

1. qemuのインストール

以下のコマンドを実行して、ユーザーモードqemuをインストールします。

atmark@atde5:~$ sudo apt-get install qemu-user-static

2. Debianアーカイブの取得と展開

Armadillo-800シリーズ用のDebianアーカイブを取得、展開します。以降、例としてArmadillo-840のDebianを使用します。Armadillo-810の場合はファイル、ディレクトリ名を読み替えてください。

以下のコマンドを実行して、Armadillo-840のDebianアーカイブを取得、展開してください。

Armadilllo-400シリーズで、CAN1を有効にする


Armadillo-400シリーズのSoCであるi.MX257には、CANコントローラは2つ(CAN1、CAN2)あります。
しかし、現在のカーネルソースでは、CON14のCAN2のみを有効にできるようになっています。

CON11にマルチプレクサされているCAN1を有効化する手順を紹介します。
(*注意*) こちらはハードウェアを接続しての検証はしておりません。
             またCAN2を有効化している環境を想定しています。CAN2を有効化するには以下を参照してください。
             http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_software_manual_ja-1.9.1/ch09.html#sec-CAN

環境: linux-2.6.26-at20

Kconfigを修正

CAN1はCON11の48,49pinにアサインされていますが、デフォルトではI2C3が

ページ

Subscribe to RSS - ブログ