Howto

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

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://download.atmark-techno.com/armadillo-840/source/linux-3.4-at4.tar.gz
[ATDE ~]$ wget https://download.atmark-techno.com/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 ? 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
<strong>ov772x 3-0021: ov7725 Product ID 77:21 Manufacturer ID 7f:a2</strong>
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")を適宜読み替えてください。