警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : Armadillo-840でArmadillo-810 カメラモジュール 01 (B コネクタ用)を使用する

対象製品: Armadillo-840

Armadillo-840 には次のインターフェースに「Armadillo-810 カメラモジュール01 (B コネクタ用)」を接続することができます。

  • Armadillo-840 の拡張インターフェース2(Cコネクタ)(CON8)
  • Armadillo-840 拡張ボード 01(C コネクタ用)のカメラインターフェース(CON12)

本Howtoでは、Armadillo-840 拡張ボード 01(C コネクタ用)のCON12に接続して使用する方法を説明します。以降、「Armadillo-810 カメラモジュール 01 (B コネクタ用)」をカメラモジュールと表記します。

本Howtoでは、コンフィギュレーションを変更した Linux カーネルイメージを作成して、Linux カーネルイメージおよびデフォルトのユーザーランドイメージをフラッシュメモリに書き込み、カメラモジュールの動作確認を行います。おおまかな手順は次の通りです。

1. 接続方法
2. カーネルイメージのカスタマイズ
2.1. ソースコードの準備
2.2. コンフィギュレーションの開始
2.3. ベンダー/プロダクト名の選択
2.4. カーネルコンフィギュレーションの変更
3. イメージのビルド
4. カーネルイメージの生成確認
5. フラッシュメモリの書き換え
6. 動作確認

本Howtoで使用したソースコードアーカイブおよびイメージファイルは次の通りです。

Linux カーネルソースアーカイブlinux-3.4-at4.tar.gz
Atmark Dist ソースアーカイブatmark-dist-20130704.tar.gz
ユーザーランドイメージromfs-a840-v1.00.img.gz

本Howtoで作成するイメージファイルは次の通りです。このイメージで動作を確認する場合は、1. 接続方法のように接続し、5. フラッシュメモリの書き換えから読み進めてください。

Linux カーネルイメージlinux.bin.gz

本Howtoでは次のATDEを使用して、開発および動作確認をしています。

ATDE5 (amd64向け VMware仮想イメージファイル)atde5-amd64-20130710.tar.xz

1. 接続方法

カメラモジュールを使用する場合の接続例を次に示します。カメラモジュールはArmadillo-840 拡張ボード 01(C コネクタ用)のカメラインターフェース(CON12)に接続してください。

2. カーネルイメージのカスタマイズ

カーネルコンフィギュレーションを変更して、カメラモジュールに対応した Linux カーネルイメージファイルを作成します。

2.1. ソースコードの準備

Atmark DistとLinuxカーネルのソースコードアーカイブを準備し展開します。展開後、Atmark DistにLinuxカーネルのソースコードを登録するために、シンボリックリンクを作成します。


[ATDE ~]$ wget https://armadillo.atmark-techno.com/files/downloads/armadillo-840/source/linux-3.4-at4.tar.gz
[ATDE ~]$ wget https://armadillo.atmark-techno.com/files/downloads/armadillo-840/source/atmark-dist-20130704.tar.gz
[ATDE ~]$ ls
atmark-dist-20130704.tar.gz  linux-3.4-at4.tar.gz
[ATDE ~]$ tar zxf atmark-dist-20130704.tar.gz
[ATDE ~]$ tar zxf linux-3.4-at4.tar.gz
[ATDE ~]$ ls
atmark-dist-20130704  atmark-dist-20130704.tar.gz  linux-3.4-at4  linux-3.4-at4.tar.gz
[ATDE ~]$ ln -s ../linux-3.4-at4 atmark-dist/linux-3.x※1

※1 シンボリックリンク名は常にlinux-3.xである必要があります

2.2. コンフィギュレーションの開始

make menuconfigでコンフィギュレーションを開始します。


[ATDE ~]$ cd atmark-dist-20130704
[ATDE ~/atmark-dist-20130704]$ make menuconfig

2.3. ベンダー/プロダクト名の選択

「Vendor/Product Selection \-\-\->」を選択します。


Vendor/Product Selection  --->
Kernel/Library/Defaults Selection  --->
---
Load an Alternate Configuration File
Save Configuration to an Alternate File

Vendorには "AtmarkTechno" を選択し、AtmarkTechno Productsには "Armadillo-840" を選択します。その後、前のメニューに戻り「Kernel/Library/Defaults Selection \-\-\->」を選択します。


--- Select the Vendor you wish to target
(AtmarkTechno) Vendor  ※2
--- Select the Product you wish to target
(Armadillo-840) AtmarkTechno Products  ※3

※2 "AtmarkTechno"を選択します

※3 "Armadillo-840"を選択します

2.4. カーネルコンフィギュレーションの変更

カーネルコンフィギュレーションを変更するには、「Customize Kernel Settings」を選択します。その後、前のメニューに戻り「Do you wish to save your new kernel configuration?」で"Yes"とします。


--- Kernel is linux-3.x
(default) Cross-dev
(None) Libc Version
[ ] Default all settings (lose changes)
[*] Customize Kernel Settings
[ ] Customize Vendor/User Settings
[ ] Update Default Vendor Settings

Linux Kernel Configurationメニューが表示されます。


[*] Patch physical to virtual translations at runtime
    General setup  --->
[*] Enable loadable module support  --->
[*] Enable the block layer  --->
    System Type  --->
    Bus support  --->
    Kernel Features  --->
    Boot options  --->
    CPU Power Management  --->
    Floating point emulation  --->

カーネルコンフィギュレーションを変更して、カメラモジュールを使用可能にします。変更後、前のメニューに戻り「Do you wish to save your new kernel configuration ? <ESC><ESC> to continue.」で"Yes"とし、カーネルコンフィギュレーションを確定します。


System Type  --->
  Armadillo-840 System Configuration  --->
    [*]   use CEU1 [CLKs, SYNCs and D7-0]
    [*]     CAMERA: KBCR-iC01VG
    [*] use I2C-GPIO3 [SCL:PORT194, SDA:PORT193]

3. イメージのビルド

イメージをビルドします。


[ATDE ~/atmark-dist-20130704]$ make

4. カーネルイメージの生成確認

ビルドが終了すると、images/ディレクトリ以下にカメラモジュールに対応したカーネルイメージファイル linux.bin.gz が作成されています。


[ATDE ~/atmark-dist-20130704]$ ls images/linux.bin.gz
images/linux.bin.gz

5. フラッシュメモリの書き換え

フラッシュメモリのkernelパーティションを4. カーネルイメージの生成確認で確認したLinuxカーネルイメージで、userlandパーティションをデフォルトのユーザーランドイメージで書き換えます。

フラッシュメモリの書き換え方法については Armadillo-840 製品マニュアルの12. フラッシュメモリの書き換え方法を参照してください。

6. 動作確認

Armadillo-840の起動ログにov772xから始まる行があることを確認します。確認できた場合は正しくビルドされたカーネルイメージが書き込まれています。


  :(省略)
soc-camera-pdrv soc-camera-pdrv.1: Probing soc-camera-pdrv.1
sh_mobile_ceu sh_mobile_ceu.1: SuperH Mobile CEU driver attached to camera 0
ov772x 3-0021: ov7725 Product ID 77:21 Manufacturer ID 7f:a2
sh_mobile_ceu sh_mobile_ceu.1: SuperH Mobile CEU driver detached from camera 0
  :(省略)
armadillo-840-0 login: 

カメラモジュールから取得した映像を、拡張ボードのLCDに表示させます。GStreamerを利用して映像の取得および表示を行う例を、次に示します。


[armadillo ~]# gst-launch v4l2src device=/dev/video0 ! ffmpegcolorspace ! fbdevsink device=/dev/fb1

カメラモジュール以外にも周辺装置を接続している場合、v4l2srcに指定するデバイスファイルが/dev/video0以外になることがありますので、その場合は数字の部分(/dev/video"0")を適宜読み替えてください。

カテゴリ: