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
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")を適宜読み替えてください。