第6章 各種機能を使用する

本章では、Debian で Armadillo-EVA 1500の機能を使用する方法について記載します。本章に記載のある手順を実行するためには、事前に5章起動と終了を参照し、起動およびログインが完了している必要があります。

6.1. ネットワーク

有線LANを使用する方法について記載します。

工場出荷状態では有線LANが無効になっています。ifupコマンドを使用して有線LANを有効化する手順を、図6.1「ifupコマンドによる有線LANの有効化」に示します。

[armadillo ~]# ifup eth0  1
Internet Systems Consortium DHCP Client 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

net eth0: attached phy 0 to driver Generic PHY
Listening on LPF/eth0/00:11:0c:xx:xx:xx
Sending on   LPF/eth0/00:11:0c:xx:xx:xx
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
PHY: 0:00 - Link is Up - 100/Full
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPOFFER from 172.16.0.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 172.16.0.1
bound to 172.16.2.237 -- renewal in 33138 seconds.
[armadillo ~]# ifconfig eth0  2
eth0      Link encap:Ethernet  HWaddr 00:11:0c:xx:xx:xx
          inet addr:172.16.2.237  Bcast:172.16.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:876 errors:0 dropped:0 overruns:0 frame:0
          TX packets:109 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:316114 (308.7 KiB)  TX bytes:13236 (12.9 KiB)
          Interrupt:142 DMA chan:ff
    

1

有線LANインターフェースを有効化します。工場出荷状態ではDHCPを利用してネットワーク設定が行われるようになっています。

2

有線LANインターフェースの状態を表示します。

図6.1 ifupコマンドによる有線LANの有効化


ifupコマンドを使用して有効化された有線LANを再度無効化するには、ifdownコマンドを使用します。手順を図6.2「ifdownコマンドによる有線LANの無効化」に示します。

[armadillo ~]# ifdown eth0  1
Internet Systems Consortium DHCP Client 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:11:0c:xx:xx:xx
Sending on   LPF/eth0/00:11:0c:xx:xx:xx
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 172.16.0.1 port 67
[armadillo ~]# ifconfig eth0  2
eth0      Link encap:Ethernet  HWaddr 00:11:0c:xx:xx:xx
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:963 errors:0 dropped:0 overruns:0 frame:0
          TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:332666 (324.8 KiB)  TX bytes:13638 (13.3 KiB)
          Interrupt:142 DMA chan:ff
    

1

有線LANインターフェースを無効化します。

2

有線LANの状態を表示します。

図6.2 ifdownコマンドによる有線LANの無効化


[ティップ]

ifupおよびifdownコマンドは、/etc/network/interfacesに記述された動作を行います。工場出荷状態では、DHCPサーバーからIPアドレスを取得するよう設定されています。interfacesを変更することで、静的IPアドレスの設定や、起動時に自動的に有効化することができます。詳しくはinterfacesのマニュアルページを参照してください。

[armadillo ~]# man 5 interfaces

6.2. 時刻設定

時刻を設定する方法について記載します。時刻には、Linuxカーネルが管理するシステムクロックと、リアルタイムクロックが管理するハードウェアクロックの2種類があります。ハードウェアクロックに時刻を設定すると、電源を切断しても一定時間時刻を保持することができます。

ハードウェアクロックに時刻を設定するためには、まずシステムクロックを設定します。その後に、ハードウェアクロックをシステムクロックと一致させる手順となります。

システムクロックは、dateコマンドを用いて設定します。dateコマンドの引数には、設定する時刻を[MMDDhhmmCCYY.ss]というフォーマットで指定します。時刻フォーマットの各フィールドの意味を次に示します。

表6.1 時刻フォーマットのフィールド

フィールド意味
MM
DD日(月内通算)
hh
mm
CC年の最初の2桁(省略可)
YY年の最後の2桁(省略可)
ss秒(省略可)

2014年1月23日4時56分00秒に設定する例を次に示します。

[armadillo ~]# date 1
Sat Jan  1 09:00:00 JST 2000
[armadillo ~]# date 012304562014.00 2
Thu Jan 23 04:56:00 JST 2014
[armadillo ~]# date 3
Thu Jan 23 04:56:00 JST 2014

1

現在のシステムクロックを表示します。

2

システムクロックを設定します。

3

システムクロックが正しく設定されていることを確認します。

図6.3 システムクロックを設定


システムクロックを設定後、ハードウェアクロックをhwclockコマンドを用いて設定します。

[armadillo ~]# hwclock 1
Sat Jan  1 00:00:00 2000  0.000000 seconds
[armadillo ~]# hwclock --utc --systohc 2
[armadillo ~]# hwclock --utc 3
Thu Jan 23 04:56:15 2014  0.000000 seconds

1

現在のハードウェアクロックを表示します。

2

ハードウェアクロックをシステムクロックと一致させます。ハードウェアクロックは協定世界時(UTC)で設定されます。

3

ハードウェアクロックがUTCで正しく設定されていることを確認します。

図6.4 ハードウェアクロックを設定


電源が切断されても長時間時刻を保持させたい場合は、RTC 外部バックアップインターフェース(CON31)に外付けバッテリー(CR2032等)を接続することができます。

6.3. パッケージ管理

パッケージ管理システム APT(Advanced Packaging Tool)を使用して、パッケージを管理する方法について記載します。工場出荷状態のDebianには動作に必要な最低限のパッケージしかインストールされていませんが、APTを使用することで、簡単にパッケージを追加することができます。

工場出荷状態では、APTはインターネット上のDebianサイト(HTTPサーバー)から利用可能なパッケージのインデックスを取得します[8]。そのため、APTを使用するためにはネットワークを有効化し、インターネットに接続できる状態にしておく必要があります。

ネットワークを有効化する方法については、「ネットワーク」を参照してください。

[ティップ]

システムクロックが大幅にずれた状態で、APTを利用すると警告メッセージが出力される場合があります。事前に「時刻設定」を参照してシステムクロックを合わせてください。

6.4. GStreamer

GStreamer のインストールと使用方法について記載します。

GStreamer はオープンソースのマルチメディアのフレームワークです。動画や音声などを使用するマルチメディアアプリケーションの基礎となる機能を提供します。

GStreamer には、動作確認用のテストツールとしてgst-launch-0.10コマンドが用意されています。gst-launch-0.10を使用すると、プログラムを作成することなくGStreamer の機能を使用することができます。

次に示す機能の使用には、gst-launch-0.10を利用します。

6.4.1. GStreamerのインストール

GStreamer のインストールには APTを使用します。APTの使用方法については、「パッケージ管理」を参照してください。

APTを使用して GStreamer をインストールするには、次のようにコマンドを実行します。

[armadillo ~]# apt-get install gstreamer0.10-tools gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-alsa

図6.5 GStreamerのインストール


6.4.2. GStreamerの使用

本書では、GStreamer をgst-launch-0.10コマンドを使用して利用します。

GStreamerでは、特定の機能を持ったエレメントをリンクすることによって、目的とする機能を実現します。gst-launch-0.10では、エクスクラメーションマーク「!」によってエレメントをリンクします。

エレメントは、マルチメディアデータを入力または出力することのできるパッドを持ちます。エレメントは、エレメントが持つパッドによって3種類に分類されます。

表6.2 エレメントの種類

エレメント説明
ソースエレメント出力用のパッドのみを持ちます。
フィルタエレメント入力用と出力用のパッドをそれぞれ1つ以上持ちます。
シンクエレメント入力用のパッドのみを持ちます。

各エレメントをそれぞれ1つずつ持ったgst-launch-0.10の使用例を次に示します。

[armadillo ~]# gst-launch-0.10 videotestsrc ! pngenc ! filesink location=sample.png

図6.6 テスト画像をファイルに保存


videotestsrcは、テスト画像を生成するソースエレメントです。pngencは、入力画像をPNG形式にエンコードするフィルタエレメントです。filesinkは、ファイルにデータを出力するシンクエレメントです。この3つのエレメントをリンクすることで、テスト画像をPNG形式でファイルに出力します。

GStreamer のより詳細な情報については、GStreamer公式サイト(http://gstreamer.freedesktop.org/)を参照してください。

6.5. Xサーバー

Xサーバーのインストールと起動方法について記載します。

次に示す機能の使用には、Xサーバーを利用します。

6.5.1. Xサーバーのインストール

Xサーバーのインストールには APTを使用します。APTの使用方法については、「パッケージ管理」を参照してください。

APTを使用して Xサーバーをインストールするには、次のようにコマンドを実行します。

[armadillo ~]# apt-get install xserver-xorg

図6.7 Xサーバーのインストール


6.5.2. Xサーバーの起動

Xサーバーを起動するには、次のようにコマンドを実行します。

[armadillo ~]# X -retro &

図6.8 Xサーバーの起動


Xサーバーが起動するとディスプレイに次のように起動画面が表示されます。

Xサーバー起動画面

図6.9 Xサーバー起動画面


[ティップ]

Xサーバーの起動オプション "-retro" を指定する目的は、起動画面によってXサーバーの正常起動を確認しやすくするためです。不要であれば指定する必要はありません。

[ティップ]

ディスプレイに表示されたXサーバー起動画面のちらつきが気になる場合は、次のようにコマンドを実行してください。

[armadillo ~]# X -wr &

Xサーバーの起動オプション "-retro" を指定した場合は網目模様の背景が表示されますが、"-wr"を指定した場合は単色白色の背景が表示されます。

6.6. ストレージ

ストレージを使用する方法について記載します。Armadillo-EVA 1500では、内蔵ストレージ(eMMC)の他にSDカードやUSBメモリ、SATA接続の SSD などの外部ストレージを使用することができます。外部ストレージを使用することで、容易に作業用PCなどとデータ転送を行うことができます。

ストレージとして使用可能なデバイスを次に示します。

表6.3 ストレージデバイス

デバイス種類ディスクデバイス先頭パーティション備考
eMMC/dev/mmcblk0/dev/mmcblk0p1内蔵ストレージ。容量8GB。
USBフラッシュメモリ/dev/sd*[a]/dev/sd*1外部ストレージ。USB 3.0 ホストインターフェース(CON10)またはUSB 2.0 ホストインターフェース(CON8)に接続。
SD/SDHC/SDXCカード/dev/mmcblk*[b]/dev/mmcblk*p1外部ストレージ。SD インターフェース(CON6)またはSD インターフェース(CON4)に接続。
SSD/HDD/dev/sd*[a]/dev/sd*1外部ストレージ。SATA インターフェース(CON11)に接続。

[a] ストレージが認識された順に sda sdb sdc ... となります。

[b] ストレージが認識された順に mmcblk0 mmcblk1 となります。


[警告]

工場出荷状態の eMMC はいくつかのパーティションに分割されており、それぞれのパーティションに OS やルートファイルシステムなどのソフトウェアが格納されています。eMMC をストレージとして使用する場合は、使用しているソフトウェアが格納されたパーティションへの書き込みを行わないようご注意ください。

[ティップ]

SD インターフェース(CON4)とWLAN インターフェース(CON5)は排他になっており、どちらか一方しか使用することができません。どちらのインターフェースを使用するかは、機能選択スイッチのSD/WLAN 設定(SW2.5)で選択できるようになっています。

[ティップ]

USB 2.0 ホストインターフェース(CON8)とUSB 2.0 デバイスインターフェース(CON9)は排他になっており、どちらか一方しか使用することができません。どちらのインターフェースを使用するかは、機能選択スイッチのUSB 2.0 設定(SW2.4)で選択できるようになっています。

[ティップ]

SATA インターフェース(CON11)とminiPCIe インターフェース(CON12)は排他になっており、どちらか一方しか使用することができません。どちらのインターフェースを使用するかは、機能選択スイッチのUSB 3.0、SATA/miniPCIe 設定(SW1.2、 SW1.3)で選択できるようになっています。

6.6.1. ストレージの使用方法

ここでは、SDHCカードを例にストレージの使用方法を説明します。以降の説明では、共通の操作が可能な場合に、SD/SDHC/SDXCカードをSDカードと表記します。

[ティップ]

SDXCカードを使用する場合は、事前に「ストレージのパーティション変更とフォーマット」を参照してフォーマットを行う必要があります。これは、LinuxカーネルがexFATファイルシステムを扱うことができないためです。通常、購入したばかりのSDXCカードはexFATファイルシステムでフォーマットされています。

Linuxでは、アクセス可能なファイルやディレクトリは、一つの木構造にまとめられています。あるストレージデバイスのファイルシステムを、この木構造に追加することを、マウントするといいます。マウントを行うコマンドは、mountです。

mountコマンドの典型的なフォーマットは、次のとおりです。

mount -t fstype device dir

図6.10 mountコマンド書式


-t オプションに続くdeviceには、ファイルシステムタイプを指定します[9]。FAT32ファイルシステムの場合はvfat[10]、EXT3ファイルシステムの場合はext3を指定します。

deviceには、ストレージデバイスのデバイスファイル名を指定します。SDカードのパーティション1の場合は/dev/mmcblk1p1、パーティション2の場合は/dev/mmcblk1p2となります。

dirには、ストレージデバイスのファイルシステムをマウントするディレクトリを指定します。

SDスロットにSDHCカードを挿入した状態で図6.11「ストレージのマウント」に示すコマンドを実行すると、/mntディレクトリにSDHCカードのファイルシステムをマウントします。SDカード内のファイルは、/mntディレクトリ以下に見えるようになります。

[armadillo ~]# mount -t vfat /dev/mmcblk1p1 /mnt

図6.11 ストレージのマウント


[注記]

FAT32ファイルシステムをマウントした場合、次の警告メッセージが表示される場合があります。

FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for
FAT filesystems, filesystem will be case sensitive!

これは無視して構いません。 UTF-8 ロケールでは結局はファイル名の表示を正しく処理できないためです。

ストレージを安全に取り外すには、アンマウントする必要があります。アンマウントを行うコマンドは、umountです。オプションとして、アンマウントしたいデバイスがマウントされているディレクトリを指定します。

[armadillo ~]# umount /mnt

図6.12 ストレージのアンマウント


6.6.2. ストレージのパーティション変更とフォーマット

通常、購入したばかりのSDHCカードやUSBメモリは、一つのパーティションを持ち、FAT32ファイルシステムでフォーマットされています。

パーティション構成を変更したい場合、fdiskコマンドを使用します。fdiskコマンドの使用例として、一つのパーティションで構成されているSDカードのパーティションを、2つに分割する例を図6.13「fdiskコマンドによるパーティション変更」に示します。一度、既存のパーティションを削除してから、新たにプライマリパーティションを二つ作成しています。先頭のパーティションには100MByte、二つめのパーティションに残りの容量を割り当てています。先頭のパーティションは/dev/mmcblk1p1、次は/dev/mmcblk1p2となります。fdiskコマンドの詳細な使い方は、manページ等を参照してください。

[armadillo ~]# fdisk /dev/mmcblk1

The number of cylinders for this disk is set to 62528.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-62528, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-62528, default 62528): +100M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (3054-62528, default 3054):
Using default value 3054
Last cylinder or +size or +sizeM or +sizeK (3054-62528, default 62528):
Using default value 62528

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
 mmcblk1: p1 p2
 mmcblk1: p1 p2
Syncing disks.

図6.13 fdiskコマンドによるパーティション変更


FAT32ファイルシステムでストレージデバイスをフォーマットするには、mkfs.vfatコマンドを使用します。また、EXT2やEXT3ファイルシステムでフォーマットするには、mke2fsコマンドを使用します。SDカードのパーティション1をEXT3ファイルシステムでフォーマットするコマンド例を、次に示します。

[armadillo ~]# mke2fs -j /dev/mmcblk1p1

図6.14 EXT3ファイルシステムの構築


6.7. ビデオ

ディスプレイへの画像出力およびカメラからの画像入力を行う方法について記載します。

Linuxでは、画像出力インターフェースをフレームバッファデバイスとして、画像入力インターフェースをV4L2(Video for Linux Two)デバイスとして利用できます。標準状態で利用可能なそれぞれのデバイスを次に示します。

フレームバッファデバイス - /dev/fb0

デジタル HD 出力インターフェース(CON17)
解像度: 1920 x 1080[11]
カラーフォーマット: ARGB8888 (32bit)

V4L2デバイス - /dev/video0

コンポジットビデオ入力インターフェース(CON26)
解像度: 720 x 480
カラーフォーマット: YUYV (16bit)

6.7.1. ディスプレイに画像を表示する

ディスプレイに画像を表示させる方法について記載します。画像の表示には、GStreamerを利用します。インストールされていない場合は、「GStreamerのインストール」を参照してインストールしてください。

また、GStreamerからフレームバッファへの直接描画はできないため、Xサーバーを利用します。事前に「Xサーバー」を参照してXサーバーを起動してください。

任意のJPEG画像をディスプレイに表示する手順を次に示します。

[armadillo ~]# DISPLAY=:0 gst-launch-0.10 filesrc location=sample.jpg ! jpegdec ! freeze ! ffmpegcolorspace ! autovideosink

図6.15 JPEG画像の表示


[ティップ]

画面出力インターフェースはデータの入力が一定時間無かった場合、信号を出力しない blank状態になります。blank 状態を解除するには下記のコマンドを実行してください。

[armadillo ~]# echo 0 > /sys/class/graphics/fb0/blank
[ティップ]

JPEGファイルのサンプルには、gnome-backgroundsパッケージに含まれるファイルを利用することができます。JPEGファイルをディスプレイの解像度に合わせて表示するコマンド例を次に示します。

[armadillo ~]# apt-get install gnome-backgrounds imagemagick
[armadillo ~]# cp /usr/share/backgrounds/gnome/BlueMarbleWest.jpg .
[armadillo ~]# convert -geometry 1920x1080! BlueMarbleWest.jpg sample.jpg
[armadillo ~]# X -retro &
[armadillo ~]# DISPLAY=:0 gst-launch-0.10 filesrc location=sample.jpg ! jpegdec ! freeze ! ffmpegcolorspace ! autovideosink

図6.16 gnome-backgroundsパッケージの画像ファイルを利用


6.7.2. カメラ画像をディスプレイに表示する

カメラから取得した画像をディスプレイに表示させる方法について記載します。画像の表示には、GStreamerを利用します。インストールされていない場合は、「GStreamerのインストール」を参照してインストールしてください。

また、GStreamerからフレームバッファへの直接描画はできないため、Xサーバーを利用します。事前に「Xサーバー」を参照してXサーバーを起動してください。

カメラから取得した画像をディスプレイに表示させる手順を次に示します。

[armadillo ~]# DISPLAY=:0 gst-launch-0.10 v4l2src ! "video/x-raw-yuv,width=720,height=480" ! ffmpegcolorspace ! autovideosink

図6.17 カメラ画像の表示


「Xサーバー」を実行すると、ディスプレイに次のように画面が表示されます。

カメラ画像の表示画面

図6.18 カメラ画像の表示画面


6.7.3. ディスプレイのビデオモードを設定する

ディスプレイの解像度やカラーフォーマットなどを設定する方法について記載します。

ディスプレイの解像度を 640 x 480 に、走査方式をプログレッシブに設定するには図6.19「解像度の変更」のようにコマンドを実行します。fbsetコマンドの詳細な使い方は、man ページ等を参照してください。

[armadillo ~]# fbset -xres 640 -yres 480 -laced 0

図6.19 解像度の変更


[警告]

ディスプレイがサポートしていない解像度や、ドットクロックが 100MHz を超える解像度に設定することはできません。

ディスプレイのカラーフォーマットを ARGB1555 に設定するには次のようにコマンドを実行します。

[armadillo ~]# fbset -depth 16 -rgba 5,5,5,1

図6.20 カラーフォーマットの変更


Armadillo-EVA 1500がサポートしているカラーフォーマットは次の通りです。

カラーフォーマット色深度
RGB56516
ARGB155516
XRGB888832
ARGB888832

6.8. オーディオ

サウンドの再生および録音を行う方法について記載します。

Linuxでは、オーディオ機能をALSA[12]デバイスとして利用できます。標準状態で利用可能なALSA デバイスを次に示します。

ALSAデバイス - hw:0

マイク/ライン入力インターフェース(CON21)
ヘッドホン出力インターフェース(CON18)
サンプリング周波数: 96K, 48k, 32k, 16k, 8k Hz
チャンネル数: 1 or 2
フォーマット: Signed/Unsigned 16/18/20/24 bit, Little-endian

6.8.1. サウンドを再生する

ここでは、テストサウンドを再生する方法を示します。テストサウンドには、Gstreamerの audiotestsrc を利用します。

サウンドを再生するには、事前に再生パスのルーティング設定を行う必要があります。次のようにコマンドを実行します。

[armadillo ~]# amixer cset name='SSI3 Control' 1

図6.21 再生パスのルーティング設定


次のようにコマンドを実行すると、ALSAデバイスに対応するオーディオ出力から正弦波(440Hz)の音が再生されます。

[armadillo ~]# gst-launch-0.10 audiotestsrc ! \
                          "audio/x-raw-int,channels=2,rate=48000,width=16" ! \ 1
                          alsasink device=hw:0 2

1

rateパラメータには、サンプリング周波数を指定します。

2

deviceパラメータには、ALSAデバイスを指定します。

図6.22 テストサウンドの再生


6.8.2. サウンドを録音する

マイク/ライン入力インターフェース(CON21)に接続されたマイクから入力された音声を録音する方法を示します。 ここでは、WAV (RIFF waveform Audio Format)ファイル形式で録音する例を示します。

サウンドを録音するには、事前に録音パスのルーティング設定を行う必要があります。次のようにコマンドを実行します。

[armadillo ~]# amixer cset name='SSI4 Control' 1
[armadillo ~]# amixer cset name='PGA AIN3L Switch' 1
[armadillo ~]# amixer cset name='PGA AIN3R Switch' 1

図6.23 録音パスのルーティング設定


[armadillo ~]# gst-launch-0.10 alsasrc device=hw:0 ! \ 1
                          wavenc ! \ 2
                          filesink location=sample.wav 3

1

deviceパラメータには、ALSAデバイスを指定します。

2

ソフトウェアエンコーダに「wavenc」を指定します。他のエンコーダを指定することも可能です。

3

locationパラメータには、保存するファイル名を指定します。

図6.24 サウンドの録音


録音したファイルを再生するには、次のようにコマンドを実行します。 ここでは、ヘッドホン出力インターフェース(CON18) hw:0に出力するように指定しています。

[armadillo ~]# gst-launch-0.10 filesrc location=sample.wav ! \
                          wavparse ! \
                          alsasink device=hw:0

図6.25 録音したファイルを再生


6.9. マルチメディアパッケージ

マルチメディアパッケージを使い、H.264/AVCでエンコードされている動画を再生する方法について説明します。動画はMP4(MPEG-4 Part 14)コンテナに格納されているものを使用します。

[ティップ]

マルチメディアパッケージは、次に示すソフトウェアのバージョンで対応しました。それ以前のものを使用されている場合、本節で説明する動作確認を行う前にソフトウェアを対応バージョンに更新してください。

ソフトウェア対応バージョン
Hermit-Atv4.1.0以降(Hermit-Atブートローダーイメージ loader-armadilloeva1500-v4.1.0.bin以降)
Linuxカーネルv3.4-ae1500-at2以降(Linuxカーネルイメージlinux-ae1500-v1.01.bin以降)
Debian GNU/Linuxv20141022以降(Debian GNU/Linuxルートファイルシステムアーカイブdebian-wheezy-armhf_ae1500_20141022.tar.gz以降)
ファームウェアv1.00以降(ファームウェアイメージsquashfs-ae1500-firmware-v1.00.img以降)
[ティップ]

マルチメディアパッケージを利用するためには、Debian GNU/Linuxに次に示すバージョンのパッケージがインストールされている必要があります。

パッケージバージョン
gstreamer0.10-openmax0.10.1atmark1
gstreamer0.10-plugins-good0.10.31-3atmark1
libdrm22.4.56-1atmark1
libdrm2-test2.4.56-1atmark1
media-ctl0.0.1-1以降
mmp-armadilloeva15001.0.0以降

パッケージの削除やアップデートをしてしまった場合は、該当バージョンのパッケージを再インストールしてください。各パッケージは、Armadilloサイトまたは評価セット付属のDVD-ROMから取得可能です。

動作確認に利用する動画は、Armadilloサイトから取得してストレージに保存します。「ネットワーク」を参照してネットワーク設定を行い、Armadilloからインターネットに接続できる状態にしておいてください[13]

表6.4 サンプル動画

ファイル名説明
big_buck_bunny_1080p-5.1ch-3min.mp4Full HD(1920x1080)サイズ 約3分
big_buck_bunny_720p-5.1ch-3min.mp4HD(1280x720)サイズ 約3分
tears_of_steel_720p-2ch-4min.mp4HD(1280x720)サイズ 約4分

以降の例では、動画を内蔵ストレージ(eMMC)に保存します。USBフラッシュメモリやSDカードを利用する場合は「ストレージ」を参照し、動画を保存するディレクトリを適宜読み替えてください。

次のようにコマンドを実行し、Armadilloサイトから動画ファイルを取得してください。

[armadillo ~]# wget http://download.atmark-techno.com/sample/movie/big_buck_bunny_1080p-5.1ch-3min.mp4
[armadillo ~]# wget http://download.atmark-techno.com/sample/movie/big_buck_bunny_720p-5.1ch-3min.mp4
[armadillo ~]# wget http://download.atmark-techno.com/sample/movie/tears_of_steel_720p-2ch-4min.mp4

図6.26 サンプル動画の取得


[注記]

Big Buck Bunny は、Creative Commons Attribution 3.0 Unported (CC BY 3.0) ライセンス下にあります。(c) copyright 2008, Blender Foundation / www.bigbuckbunny.org

[注記]

Tears of Steel は、Creative Commons Attribution 3.0 Unported (CC BY 3.0) ライセンス下にあります。(cc) Blender Foundation | mango.blender.org

6.9.1. Linuxカーネルの起動オプションを設定する

マルチメディアパッケージを利用するために、Linuxカーネルの起動オプションを設定します。マルチメディアパッケージが使用するメモリをLinuxカーネルに管理させないようにするため、Linuxカーネルが利用可能なメモリを768MByteに制限します。

[注記]

すでにLinuxカーネルの起動オプションを設定済みの場合は、以降の設定を行う必要はありません。Linuxカーネルの起動オプションはSPIフラッシュメモリに保存されるためです。

[ティップ]

マルチメディアパッケージが使用するメモリは128MByteであるため、Linuxカーネルが利用可能なメモリを896MByte以下に制限すると利用可能になります。ここでは、今後リリースされるソフトウェア互換性を重視して768MByteに制限しています。メモリマップについては表3.5「Linux起動時のDDR3-SDRAM メモリマップ」を参照してください。

手順6.1 マルチメディアパッケージを利用するためのLinuxカーネルの起動オプション設定

  1. Linuxカーネルの起動オプションを設定するため、Hermit-At ブートローダーを保守モードで起動します。機能選択スイッチの Hermit-At 起動モード設定(SW2.8)を ON に設定して電源を投入します。

  2. 次のようにLinuxカーネルの起動オプションを設定します。

    hermit> setenv console=ttySC3,115200 mem=768M noinitrd rootwait root=/dev/mmcblk0p1

6.9.2. 動画を再生する

ディスプレイに動画をフルスクリーンで再生する方法について記載します。本節で示すコマンド例をそのまま実行するためには、HDMI対応ディスプレイは1080iの表示に対応している必要があります。

ディスプレイにFull HDサイズ(1920x1080画素)のサンプル動画を再生する例を次に示します。

手順6.2 ディスプレイにFull HDサイズのサンプル動画を再生

  1. メディアデバイス(/dev/media0)の設定をリセットします。

    [armadillo ~]# media-ctl -d /dev/media0 -r
  2. メディアデバイスにリンク情報を設定します。

    [armadillo ~]# media-ctl -d /dev/media0 -l '"vsp1.2 rpf.0":1 -> "vsp1.2 uds.0":0 [1]'
    [armadillo ~]# media-ctl -d /dev/media0 -l '"vsp1.2 uds.0":1 -> "vsp1.2 wpf.0":0 [1]'
    [armadillo ~]# media-ctl -d /dev/media0 -l '"vsp1.2 wpf.0":1 -> "vsp1.2 lif":0 [1]'
  3. 動画のサイズを設定します。サンプル動画はFull HDサイズであるため、"1920x1080"を設定します。

    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 rpf.0":0 [fmt:AYUV32/1920x1080]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 rpf.0":1 [fmt:AYUV32/1920x1080]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 uds.0":0 [fmt:AYUV32/1920x1080]'
  4. ディスプレイへの描画サイズを設定します。インターレース方式で描画するため垂直解像度には1080画素の1/2を使用し、"1920x540"を設定します。

    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 uds.0":1 [fmt:AYUV32/1920x540]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 wpf.0":0 [fmt:AYUV32/1920x540]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 wpf.0":1 [fmt:ARGB32/1920x540]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 lif":0 [fmt:ARGB32/1920x540]'
  5. DRM(Direct Rendering Manager)の動作モードを設定します。出力モードに1080iを示す"1920x1080i"を、入力モードにFull HDサイズを示す"1920x1080"を設定します。

    [armadillo ~]# modetest -M rcar-du -s 9@7:1920x1080i@AR24 -d \
     -P '7@18:1920x1080@XR24' &
  6. ディスプレイに動画を再生します。動画の再生を途中で停止する場合は、Ctrl+cを入力してください。

    [armadillo ~]# gst-launch-0.10 filesrc location=./big_buck_bunny_1080p-5.1ch-3min.mp4 \
     ! qtdemux ! omx_h264dec buffer-without-copy=true \
     ! v4l2sink device=`media-ctl -d /dev/media0 -e \
     "vsp1.2 rpf.0 input"` buffer-without-copy=true
[ティップ]

modetestコマンドの詳細な使い方はhelpを参照してください。

[armadillo ~]# modetest -h

-sおよび-Pオプションで指定するArmadillo-EVA 1500固有のIDを次に示します。

ID説明
crtc_id6DU0(Display Unit 0)
7DU1(Display Unit 1)
source_id18VSPD0(フォーマット: XR24)
19VSPD1(フォーマット: XR24)
connector_id9デジタルHD出力
11LVDS
[ティップ]

これらコマンドはとても長く間違えやすいので、コマンドを本マニュアルからシリアル通信プログラムにコピー&ペーストすることをお勧めします。コマンドプロンプト ( [armadillo ~]# ) はコピーしないよう注意してください。

6.9.3. 2つの動画を同時に再生する

ディスプレイに2つの動画を同時に再生する方法について記載します。本節で示すコマンド例をそのまま実行するためには、HDMI対応ディスプレイは720pの表示に対応している必要があります。

ディスプレイにHDサイズ(1280x720画素)のサンプル動画を640x360画素にダウンスケールして再生する例を次に示します。

動画再生の実行イメージ

図6.27 動画再生の実行イメージ


[注記]

以降の例に示すディスプレイのビデオモードを、インターレース方式として読み替えると正常に動作しない場合があります。インターレース方式では、フルスクリーンの動画再生にのみ対応しています。

インターレース方式でフルスクリーンの動画再生を行う場合は、「動画を再生する」を参照してください。

ディスプレイにサンプル動画を2つ同時に再生する例を次に示します。各コマンドのより詳細な説明については、「動画を再生する」を参照してください。

手順6.3 ディスプレイにHDサイズのサンプル動画を2つ再生

  1. movie1の再生に該当するメディアデバイス(/dev/media0)とDRMの動作モードを設定します。

    [armadillo ~]# media-ctl -d /dev/media0 -r
    [armadillo ~]# media-ctl -d /dev/media0 -l '"vsp1.2 rpf.0":1 -> "vsp1.2 uds.0":0 [1]'
    [armadillo ~]# media-ctl -d /dev/media0 -l '"vsp1.2 uds.0":1 -> "vsp1.2 wpf.0":0 [1]'
    [armadillo ~]# media-ctl -d /dev/media0 -l '"vsp1.2 wpf.0":1 -> "vsp1.2 lif":0 [1]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 rpf.0":0 [fmt:AYUV32/1280x720]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 rpf.0":1 [fmt:AYUV32/1280x720]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 uds.0":0 [fmt:AYUV32/1280x720]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 uds.0":1 [fmt:AYUV32/640x360]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 wpf.0":0 [fmt:AYUV32/640x360]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 wpf.0":1 [fmt:ARGB32/640x360]'
    [armadillo ~]# media-ctl -d /dev/media0 -V '"vsp1.2 lif":0 [fmt:ARGB32/640x360]'
    [armadillo ~]# modetest -M rcar-du -s 9@7:1280x720@AR24 -d \
     -P '7@18:640x360+0+180@XR24' &
  2. movie2の再生に該当するメディアデバイス(/dev/media1)とDRMの動作モードを設定します。

    [armadillo ~]# media-ctl -d /dev/media1 -r
    [armadillo ~]# media-ctl -d /dev/media1 -l '"vsp1.3 rpf.0":1 -> "vsp1.3 uds.0":0 [1]'
    [armadillo ~]# media-ctl -d /dev/media1 -l '"vsp1.3 uds.0":1 -> "vsp1.3 wpf.0":0 [1]'
    [armadillo ~]# media-ctl -d /dev/media1 -l '"vsp1.3 wpf.0":1 -> "vsp1.3 lif":0 [1]'
    [armadillo ~]# media-ctl -d /dev/media1 -V '"vsp1.3 rpf.0":0 [fmt:AYUV32/1280x720]'
    [armadillo ~]# media-ctl -d /dev/media1 -V '"vsp1.3 rpf.0":1 [fmt:AYUV32/1280x720]'
    [armadillo ~]# media-ctl -d /dev/media1 -V '"vsp1.3 uds.0":0 [fmt:AYUV32/1280x720]'
    [armadillo ~]# media-ctl -d /dev/media1 -V '"vsp1.3 uds.0":1 [fmt:AYUV32/640x360]'
    [armadillo ~]# media-ctl -d /dev/media1 -V '"vsp1.3 wpf.0":0 [fmt:AYUV32/640x360]'
    [armadillo ~]# media-ctl -d /dev/media1 -V '"vsp1.3 wpf.0":1 [fmt:ARGB32/640x360]'
    [armadillo ~]# media-ctl -d /dev/media1 -V '"vsp1.3 lif":0 [fmt:ARGB32/640x360]'
    [armadillo ~]# modetest -M rcar-du -s 9@7:1280x720@AR24 -d \
     -P '7@19:640x360+640+180@XR24' &
  3. ディスプレイに動画を再生します。動画の再生を途中で停止する場合は、killallコマンドでgst-launch-0.10を終了させてください。

    [armadillo ~]# gst-launch-0.10 filesrc location=./big_buck_bunny_720p-5.1ch-3min.mp4 \
     ! qtdemux ! omx_h264dec buffer-without-copy=true \
     ! v4l2sink device=`media-ctl -d /dev/media0 -e \
     "vsp1.2 rpf.0 input"` buffer-without-copy=true & \
     gst-launch-0.10 filesrc location=./movie/tears_of_steel_720p-2ch-4min.mp4 \
     ! qtdemux ! omx_h264dec buffer-without-copy=true \
     ! v4l2sink device=`media-ctl -d /dev/media1 -e \
     "vsp1.3 rpf.0 input"` buffer-without-copy=true &
[ティップ]

動画の描画位置は、modetestコマンドの-Pオプションで指定しています。詳しくはmodetestのhelpを参照してください。

[armadillo ~]# modetest -h
[ティップ]

これらコマンドはとても長く間違えやすいので、コマンドを本マニュアルからシリアル通信プログラムにコピー&ペーストすることをお勧めします。コマンドプロンプト ( [armadillo ~]# ) はコピーしないよう注意してください。

6.10. シリアル

シリアルインターフェースを使用する方法について記載します。工場出荷状態のArmadillo-EVA 1500で使用可能なシリアルインターフェースは次の通りです。

表6.5 工場出荷状態のシリアル設定

インターフェースデバイスファイル(ATDE5)デバイスファイル(Armadillo-EVA 1500)
USB シリアルインターフェース(CON14)/dev/ttyUSB0/dev/ttySC3
シリアルインターフェース(CON16)/dev/ttyS0/dev/ttySC2

[警告]

表6.5「工場出荷状態のシリアル設定」に示すデバイスファイルは、「接続方法」に従って接続された場合のものです。異なる接続をしている場合は適宜読み替えてください。

6.10.1. シリアルコンソールとして使用する

シリアルの動作を確認するには、シリアルコンソールを起動させます。ATDEのシリアル通信ソフトウェア(minicom)を用いることで、シリアル経由でArmadilloにログインすることができます。

[注記]

Armadillo-EVA 1500の工場出荷イメージでは、USB シリアルインターフェース(CON14)が標準でシリアルコンソールとして使用できるようになっています。

シリアルインターフェース(CON16)をシリアルコンソールとして使用する手順を次に示します。

手順6.4 シリアルコンソールとして使用

  1. ATDEでminicomを起動します。シリアルデバイスには/dev/ttyS0を指定します。

    [ATDE ~]$ minicom -o -w -D /dev/ttyS0
  2. Armadilloでgettyを起動します。シリアルデバイスには ttySC2[14]を指定します。

    [armadillo ~]# getty -L 115200 ttySC2 &

ATDEのminicomにログインプロンプトが表示されます。ユーザー「guest」でログインすることができます。

[ティップ]

次に示すように/etc/securettyに端末(シリアルデバイス)を登録すると、特権ユーザー「root」でログインすることが可能になります。

[armadillo ~]# echo ttySC2 >> /etc/securetty

6.11. 温度センサー

プロセッサ(R8A77430HA01BG)の、温度を取得する方法について記載します。利用しているデバイスドライバは Thermal クラスとして実装されているため、Thermal クラスディレクトリ以下のファイルによって温度を取得することができます。

次のようにプロセッサの温度を取得することができます。

[armadillo ~]# cat /sys/class/thermal/thermal_zone0/temp
55000  1

1

温度はミリ°Cの単位で表示されます。この例では55°Cを示しています。

図6.28 温度の取得


温度センサーのより詳細な仕様については、「温度センサー」を参照してください。

6.12. LED

LEDを点灯および消灯する方法について記載します。

Armadillo-EVA 1500のLEDは、GPIOが接続されているためソフトウェアで制御することができます。 利用しているデバイスドライバはLEDクラスとして実装されているため、 LEDクラスディレクトリ以下のファイルによってLEDの制御を行うことができます。 LEDクラスディレクトリと各LEDの対応を次に示します。

表6.6 LED - Armadillo-EVA 1500

LEDクラスディレクトリ説明デフォルトトリガ
/sys/class/leds/LED4/LED4none
/sys/class/leds/LED5/LED5none
/sys/class/leds/LED6/LED6none
/sys/class/leds/LED7/LED7none

以降の説明では、任意のLEDを示すLEDクラスディレクトリを"/sys/class/leds/[LED]"のように表記します。

6.12.1. LEDを点灯/消灯する

LEDクラスディレクトリ以下のbrightnessファイルへ値を書き込むことによって、LEDの点灯/消灯を行うことができます。brightnessに書き込む有効な値は0〜255です。

brightnessに0以外の値を書き込むとLEDが点灯します。

[armadillo ~]# echo 1 > /sys/class/leds/[LED]/brightness

図6.29 LEDを点灯させる


[ティップ]

Armadillo-EVA 1500のLEDには輝度制御の機能が無いため、0 (消灯)、1〜255 (点灯)の2つの状態のみ指定することができます。

brightnessに0を書き込むとLEDが消灯します。

[armadillo ~]# echo 0 > /sys/class/leds/[LED]/brightness

図6.30 LEDを消灯させる


brightnessを読み出すとLEDの状態が取得できます。

[armadillo ~]# cat /sys/class/leds/[LED]/brightness
0

図6.31 LEDの状態を表示する


6.12.2. トリガを使用する

LEDクラスディレクトリ以下のtriggerファイルへ値を書き込むことによってLEDの点灯/消灯にトリガを設定することができます。triggerに書き込む有効な値を次に示します。

表6.7 triggerの種類

設定説明
noneトリガを設定しません。
mmc0eMMCのアクセスランプにします。
mmc1SDカード(CON6)のアクセスランプにします。
mmc2SDカード(CON4)のアクセスランプにします。
timer任意のデューティー比で繰り返し点灯/消灯を行います。この設定にすることにより、LEDクラスディレクトリ以下にdelay_on, delay_offファイルが出現し、それぞれ点灯時間, 消灯時間をミリ秒単位で指定します。
heartbeat[a]心拍のように点灯/消灯を行います。工場出荷イメージでは設定することができません。
default-on[a]主にカーネルから使用します。起動時にLEDが点灯します。工場出荷イメージでは設定することができません。

[a] カーネルコンフィギュレーションで該当トリガを有効にすると設定可能になります。


次に示すコマンドを実行すると、LEDが2秒点灯、1秒消灯を繰り返します。

[armadillo ~]# echo timer > /sys/class/leds/[LED]/trigger
[armadillo ~]# echo 2000 > /sys/class/leds/[LED]/delay_on
[armadillo ~]# echo 1000 > /sys/class/leds/[LED]/delay_off

図6.32 LEDのトリガにtimerを指定する


triggerを読み出すとLEDのトリガが取得できます。"[ ]"が付いているものが現在のトリガです。

[armadillo ~]# cat /sys/class/leds/[LED]/trigger
[none] mmc0 mmc1 mmc2 timer

図6.33 LEDのトリガを表示する


6.13. ユーザースイッチ

ユーザースイッチのイベントを取得する方法について記載します。Armadillo-EVA 1500のユーザースイッチはインプットデバイスとして実装されています。ユーザースイッチとして使用可能なスイッチと、インプットデバイスファイルの対応を次に示します。

表6.8 インプットデバイスファイルとイベントコード

ユーザースイッチインプットデバイスファイルイベントコード
SW3/dev/input/event24
SW45
SW56
SW67


[警告]

イベントデバイスファイルの番号は、検出された順番に割り振られます。そのため、USB キーボードなど他のインプットデバイスが起動時に検出されると、デバイスファイルのインデックスが変わる可能性があります。

6.13.1. イベントを確認する

ユーザースイッチのイベントを取得するには、次のようにコマンドを実行します。evtestを停止するには、Ctrl+c を押下してください。

[armadillo ~]# evtest /dev/input/event2
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio-keys"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 4 (KEY_3)
    Event code 5 (KEY_4)
    Event code 6 (KEY_5)
    Event code 7 (KEY_6)
Properties:
Testing ... (interrupt to exit)
Event: time 946835461.742809, type 1 (EV_KEY), code 4 (KEY_3), value 1 1
Event: time 946835461.742830, -------------- SYN_REPORT ------------
Event: time 946835461.892802, type 1 (EV_KEY), code 4 (KEY_3), value 0 2
Event: time 946835461.892818, -------------- SYN_REPORT ------------
                 :
[armadillo ~]#

1

SW3のボタンプッシュイベントが検出された場合の表示。

2

SW3のボタンリリースイベントが検出された場合の表示。

図6.34 ユーザースイッチ: イベントの確認




[8] /etc/apt/sources.listで設定しています。記述ルールなどについては、sources.list のマニュアルページを参照してください。

[9] ファイルシステムタイプの指定は省略可能です。省略した場合、mountコマンドはファイルシステムタイプを推測します。この推測は必ずしも適切なものとは限りませんので、事前にファイルシステムタイプが分かっている場合は明示的に指定してください。

[10] 通常、購入したばかりのSDHCカードはFAT32ファイルシステムでフォーマットされています。

[11] 接続するHDMI対応ディスプレイによって異なる場合があります。

[12] Advanced Linux Sound Architecture http://alsa.sourceforge.net

[13] 動画は開発セット付属のDVDにも収録されています。ネットワークに接続できない環境の場合、そちらをご利用ください。サンプル動画と動画サイズは次の通りです。

[14] /dev/を指定する必要はありません。