第8章 Debian GNU/Linuxで各種機能を使用する
本章では、Debian で Armadillo-800 EVA の機能を使用する方法について記載します。本章に記載のある手順を実行するためには、事前に7章Debian GNU/Linuxで起動するを参照し、起動およびログインが完了している必要があります。
有線LANを使用する方法について記載します。
工場出荷状態のDebianは有線LANが無効になっています。ifupコマンドを使用して有線LANを有効化する手順を、図8.1「ifupコマンドによる有線LANの有効化」に示します。
ifupコマンドを使用して有効化された有線LANを再度無効化するには、ifdownコマンドを使用します。手順を図8.2「ifdownコマンドによる有線LANの無効化」に示します。
| |
---|
ifupおよびifdownコマンドは、/etc/network/interfaces に記述された動作を行います。工場出荷状態では、DHCPサーバーからIPアドレスを取得するよう設定されています。interfacesを変更することで、静的IPアドレスの設定や、起動時に自動的に有効化することができます。詳しくはinterfacesのマニュアルページを参照してください。
|
Armadillo-800 EVAに搭載されている無線LANモジュール Armadillo-WLAN(AWL13)を使用する方法について記載します。AWL13を使用するためには、Armadillo-800 EVAに電源を投入する前にディップスイッチのSDHI1設定(SW1.5)をOFFに設定する必要があります。
| |
---|
CON14(AWL13 モジュールインターフェース)とCON8(SDインターフェース2)は排他になっており、どちらか一方しか使用することができません。どちらのインターフェースを使用するかは、ディップスイッチのSDHI1設定(SW1.5)で選択できるようになっています。
|
無線通信を行うためには以下の作業が必要となりますが、Armadillo-800 EVAに標準でインストールされているDebianでは、udevによって1.および2.を自動的に行うように設定することが可能です。
カーネルモジュールをロードする
ファームウェアをロードする
無線設定を行う
8.2.1.1. カーネルモジュール/ファームウェアロードの自動化
udevがAWL13を検出した場合に、自動的にカーネルモジュールをロードできるようにするために、depmodコマンドを実行します。
再起動を行うと、自動的にカーネルモジュールがロードされるようになります。再起動を行うには、rebootコマンドを実行します。
カーネルモジュールがロードされると、udevが自動的にファームウェアのロードを行います。起動ログに以下のように表示されることで、カーネルモジュールおよびファームウェアのロードに成功したことが確認できます。
| |
---|
depmodコマンド実行後、Armadillo-800 EVAを再起動させずに、udevにAWL13を検出させたい場合は、以下のコマンドを実行してください。
|
| |
---|
カーネルモジュールがロードされない場合は、 SW1(ディップスイッチ)の設定を確認してください。AWL13を使用する場合は、ディップスイッチのSDHI1設定(SW1.5)をOFFに設定する必要があります。
|
インフラストラクチャモードおよびアドホックモードの無線設定について記載します。より詳細な設定方法については、「Armadillo-WLAN(AWL13) ソフトウェアマニュアル」を参照してください。
| |
---|
使用環境によっては、無線LAN通信が不安定になる場合があります。そのような環境下では、外付けアンテナを取り付けることで問題が改善する場合があります。外付けアンテナに関する情報は、「Armadillo-WLAN(AWL13) ハードウェアマニュアル」を参照してください。
|
無線通信を行うための基本的な設定パラメーターについて記載します。設定には、Wireless Tools[]に含まれるiwconfig/iwprivコマンドを使用します。
AWL13 をアドホックモードに設定し、アドホック端末に接続する設定例を示します。
| |
---|
アドホックモードでは、WPA/WPA2には対応していません。
|
時刻を設定する方法について記載します。時刻には、Linuxカーネルが管理するシステムクロックと、リアルタイムクロックが管理するハードウェアクロックの2種類があります。ハードウェアクロックに時刻を設定すると、電源を切断しても一定時間時刻を保持することができます。
ハードウェアクロックに時刻を設定するためには、まずシステムクロックを設定します。その後に、ハードウェアクロックをシステムクロックと一致させる手順となります。
リアルタイムクロックを設定しておくと、電源を切断/接続した場合でもDebianの起動時にリアルタイムクロックの値がシステムクロックに設定されるため、システムクロックを再設定する必要が無くなります。電源を長時間切断する場合は、RTC外部バックアップインターフェース(CON9)に電池を接続する必要があります。
パッケージ管理システム APT(Advanced Packaging Tool)を使用して、パッケージを管理する方法について記載します。工場出荷状態のDebianには動作に必要な最低限のパッケージしかインストールされていませんが、APTを使用することで、簡単にパッケージを追加することができます。
工場出荷状態では、APTはインターネット上のDebianサイト(HTTPサーバー)から利用可能なパッケージのインデックスを取得します[]。そのため、APTを使用するためにはネットワークを有効化し、インターネットに接続できる状態にしておく必要があります。
ネットワークを有効化する方法については、「有線LAN」または、「無線LAN」を参照してください。
| |
---|
システムクロックが大幅にずれた状態で、APTを利用すると警告メッセージが出力される場合があります。事前に「時刻設定」を参照してシステムクロックを合わせてください。
|
GStreamer のインストールと使用方法について記載します。
GStreamer はオープンソースのマルチメディアのフレームワークです。動画や音声などを使用するマルチメディアアプリケーションの基礎となる機能を提供します。
GStreamer には、動作確認用のテストツールとしてgst-launchコマンドが用意されています。gst-launchを使用すると、プログラムを作成することなくGStreamer の機能を使用することができます。
以下に示す機能の使用には、gst-launchを利用します。
GStreamer のインストールには APTを使用します。APTの使用方法については、「パッケージ管理」を参照してください。
APTを使用して GStreamer をインストールするには、次のようにコマンドを実行します。
本書では、GStreamer をgst-launchコマンドを使用して利用します。
GStreamerでは、特定の機能を持ったエレメントをリンクすることによって、目的とする機能を実現します。gst-launchでは、エクスクラメーションマーク「!」によってエレメントをリンクします。
エレメントは、マルチメディアデータを入力または出力することのできるパッドを持ちます。エレメントは、エレメントが持つパッドによって3種類に分類されます。
表8.4 エレメントの種類
エレメント | 説明 |
---|
ソースエレメント | 出力用のパッドのみを持ちます。 |
フィルタエレメント | 入力用と出力用のパッドをそれぞれ1つ以上持ちます。 |
シンクエレメント | 入力用のパッドのみを持ちます。 |
ソースエレメントとシンクエレメントのみを持ったgst-launchの使用例を以下に示します。
audiotestsrcは、テスト音声(440Hzの正弦波)を生成するソースエレメントです。alsasinkは、ALSAデバイスに音声を出力するシンクエレメントです。この2つのエレメントをリンクすることで、テスト音声をALSAデバイスに出力します。
Armadillo-800 EVAは、audiotestsrcがデフォルトで生成するテスト音声のフォーマットに対応していません。audiotestsrcのプロパティを指定して、Armadillo-800 EVAのステレオヘッドホン出力(CON11)に接続したヘッドホンからテスト音声を出力する例を以下に示します。
GStreamer のより詳細な情報については、GStreamer公式サイト(http://gstreamer.freedesktop.org/)を参照してください。
Xサーバーのインストールと起動方法について記載します。
以下に示す機能の使用には、Xサーバーを利用します。
Xサーバーのインストールには APTを使用します。APTの使用方法については、「パッケージ管理」を参照してください。
APTを使用して Xサーバーをインストールするには、次のようにコマンドを実行します。
Xサーバーが使用するビデオ出力を指定して、Xサーバーを起動する方法について記載します。Armadillo-800 EVAでは、以下のビデオ出力をサポートしています。
| |
---|
CON3(デジタルHD 出力インターフェース)とCON4(コンポジットビデオ出力インターフェース)は排他になっており、どちらか一方しか使用することができません。工場出荷状態では、CON3が使用されます。CON4を使用する場合は、「ディスプレイのビデオモードを設定する」を参照してビデオモードをU:720x480i-60に設定してください。
|
Xサーバーはデフォルトで/dev/fb0
を使用しますが、環境変数 $FRAMEBUFFER によって使用するフレームバッファデバイスを指定することできます。
Xサーバーが使用するビデオ出力として、LCDを使用するには図8.16「Xサーバーの起動(LCD)」を、ディスプレイを使用するには図8.17「Xサーバーの起動(ディスプレイ)」のようにコマンドを実行します。
Xサーバーが起動するとビデオに図8.18「Xサーバー起動画面」のように起動画面が表示されます。
| |
---|
Xサーバーの起動オプション "-retro" を指定する目的は、起動画面によってXサーバーの正常起動を確認しやすくするためです。不要であれば指定する必要はありません。 |
| |
---|
ディスプレイに表示されたXサーバー起動画面のちらつきが気になる場合は、次のようにコマンドを実行してください。 Xサーバーの起動オプション "-retro" を指定した場合は網目模様の背景が表示されますが、"-wr"を指定した場合は単色白色の背景が表示されます。 |
ビデオを使用する方法について記載します。工場出荷状態では、以下のビデオ出力をサポートしています。
8.7.2. ディスプレイのビデオモードを設定する
ディスプレイのビデオモードを設定する方法について記載します。
| |
---|
linux-2.6.35-a800eva-at1 では、ビデオモードの設定に対応していません。以下に示す手順を実行しても、設定が正常に反映されません。
|
設定可能なビデオモードは、以下のように表示することができます。
| |
---|
U:1920x1080p-60はサポートしていません。U:1920x1080p-60へのビデオモードの設定は、自己責任のもと行ってください。
|
Armadillo-800 EVAがサポートしているビデオモードを以下に示します。
ディスプレイのビデオモードをU:1280x720p-60に設定する例を図8.23「ビデオモードの設定(ディスプレイ)」に示します。
カメラモジュールインターフェース(CON1)に搭載されたカメラから取得した映像を LCD に表示させる方法について記載します。映像の取得および表示には、GStreamer を利用します。インストールされていない場合は図8.12「GStreamerのインストール」を参照してインストールしてください。
また、GStreamerからビデオへの直接描画はできないため、Xサーバーを利用します。事前に「Xサーバー」を参照してXサーバーを起動してください。
カメラから取得した映像をLCDに出力するには、次のようにコマンドを実行します。アプリケーションを停止するには、Ctrl+cを押下してください。
USB ガジェットの Ethernet 機能を使用する方法について記載します。USB ガジェットを使用するためには、Armadillo-800 EVAに電源を投入する前にディップスイッチのUSB0設定(SW1.6)をONに設定する必要があります。
| |
---|
CON24(USBデバイスインターフェース)とCON20(USBホストインターフェース)は排他になっており、どちらか一方しか使用することができません。どちらのインターフェースを使用するかは、ディップスイッチのUSB0設定(SW1.6)で選択できるようになっています。
|
USB Ethernet ガジェットは、Armadillo-800 EVA と 作業用PC 間で 1対1 の排他的なネットワーク通信機能を提供します。
| |
---|
linux-2.6.35-a800eva-at2 までは USB ガジェットに対応していません。linux-2.6.35-a800eva-at3 で対応しました。
|
この機能を利用するためには、Armadillo-800 EVAと作業用PCの両方でネットワークインターフェースを有効化する必要があります。ネットワークインターフェースを有効化するには ifconfig コマンドを使用します。Armadillo-800 EVAでの手順を図8.26「USB Ethernet ガジェット ネットワークインターフェースの有効化(Armadillo-800 EVA)」に、作業用PCでの手順を図8.27「USB Ethernet ガジェット ネットワークインターフェースの有効化(作業用PC)」に示します。
| |
---|
Armadillo-800 EVA および 作業用PC で他のネットワークインターフェースが有効になっている場合は、それらとは別のネットワークを利用する必要があります。
|
| |
---|
USB Ethernet ガジェット ネットワークインターフェースのMACアドレスには、Linuxカーネルが生成したランダム値が設定されます。このMACアドレスのうち、特定の意味を持つI/G(Individual/Group)およびU/L(Universal/Local)ビットについてはランダム値ではなく固定の値が設定されます。I/Gビットは0(ユニキャストアドレス)に、U/Lビットは1(ローカルアドレス)に設定されます。
|
オーディオの再生・録音を行う方法について記載します。Armadillo-800 EVAのオーディオ機能は、ALSAデバイスとして実装されています。ALSAデバイスとインターフェースの対応を、表8.5「ALSAデバイスとインターフェースの対応」に示します。
表8.5 ALSAデバイスとインターフェースの対応
ALSAデバイス | インターフェース | 機能 | サンプリング周波数 | フォーマット |
---|
hw:0 | モノラルマイク入力(CON10) | 録音 | 48k, 32k, 16k, 8k Hz | Signed 16/24 bit, Little-endian |
ステレオヘッドホン出力(CON11) | 再生 |
ステレオライン出力(CON12,13) |
hw:1 | デジタル出力(CON3) | 再生 | 48k Hz | Signed 16 bit, Little-endian |
オーディオの再生および録音にはGStreamer を使用します。インストールされていない場合は図8.12「GStreamerのインストール」を参照してインストールしてください。
オーディオを動作させるためには、各インターフェースに表8.6「オーディオインターフェースに接続する機材」に示す機材を接続しておく必要があります。
表8.6 オーディオインターフェースに接続する機材
インターフェース | 機材 |
---|
モノラルマイク入力(CON10) | マイク |
ステレオヘッドホン出力(CON11) | スピーカーまたはヘッドホン |
ステレオライン出力(CON12,13) | ディスプレイ(RCAケーブルで接続) |
デジタル出力(CON3) | ディスプレイ(HDMIケーブルで接続) |
音声を録音する手順を図8.28「音声の録音」に示します。サンプリングレートが48kHz、ステレオのWAVファイル(sample.wav
)を作成します。
任意の音声ファイルを再生する手順を図8.29「音声ファイルの再生(hw:0)」および図8.30「音声ファイルの再生(hw:1)」に示します。音声ファイルはカレントディレクトリ以下にあることを想定しています。ここで使用する音声ファイルは、サンプリングレートが48kHz、ステレオのWAVファイル(sample.wav
)を想定しています。
マイクの音声をそのまま hw:0 に出力する手順を図8.31「マイク入力を hw:0 に出力」に示します。
| |
---|
音声ファイルのサンプルには、gnome-audioパッケージに含まれるファイルを利用することができます。パッケージに含まれる音声ファイル(WAV)は、44.1kHzでサンプリングされているため、48kHzにリサンプリングする必要があります。
|
ストレージを使用する方法について記載します。Armadillo-800 EVAでは、内蔵ストレージ(eMMC)の他にSDカードやUSBメモリなどの外部ストレージを使用することができます。外部ストレージを使用することで、容易に作業用PCなどとデータ転送を行うことができます。
ストレージとして使用可能なデバイスを表8.7「ストレージデバイス」に示します。
表8.7 ストレージデバイス
デバイス | ディスクデバイス | 先頭パーティション | 備考 |
---|
eMMC | /dev/mmcblk0 | /dev/mmcblk0p1 | 内蔵ストレージ。容量8GB。 |
SD/MMCカード | /dev/mmcblk*[] | /dev/mmcblk*p1 | 外部ストレージ。SD1(CON7)またはSD2(CON8)に接続。 |
USBメモリ | /dev/sd*[] | /dev/sd*1 | 外部ストレージ。USB1(CON20)またはUSB2(CON21)に接続。 |
| |
---|
工場出荷状態の eMMC はいくつかのパーティションに分割されており、それぞれのパーティションに OS やブートローダーなどのソフトウェアが格納されています。eMMC をストレージとして使用する場合は、使用しているソフトウェアが格納されたパーティションへの書き込みを行わないようご注意ください。
|
SD2(CON8)またはUSB1(CON20)に接続したストレージを使用するためには、Armadillo-800 EVAに電源を投入する前にディップスイッチを設定する必要があります。SD2(CON8)に接続したSD/MMCカードを使用する場合はSDHI1設定(SW1.5)をONに、USB1(CON20)に接続したUSBメモリを使用する場合はUSB0設定(SW1.6)をOFFに設定してください。
| |
---|
CON8(SDインターフェース2)とCON14(AWL13 モジュールインターフェース)は排他になっており、どちらか一方しか使用することができません。どちらのインターフェースを使用するかは、ディップスイッチのSDHI1設定(SW1.5)で選択できるようになっています。
|
| |
---|
CON20(USBホストインターフェース)とCON24(USBデバイスインターフェース)は排他になっており、どちらか一方しか使用することができません。どちらのインターフェースを使用するかは、ディップスイッチのUSB0設定(SW1.6)で選択できるようになっています。
|
ここでは、USBメモリを例にストレージの使用方法を説明します。
ストレージを使用可能にするには、ルートファイルシステムにストレージのファイルシステムをマウントする必要があります。マウントを行うコマンドは mount です。USBメモリの先頭パーティションに構築されたFAT32ファイルシステムを、ルートファイルシステムの/mnt/
ディレクトリにマウントするには、次のようにコマンドを実行します。
| |
---|
他のファイルシステムタイプが構築されたストレージのマウント方法など、詳くはmountのマニュアルページを参照してください。
|
| |
---|
Linuxカーネルがサポートしているファイルシステムは、以下のように調べることができます。
|
マウントされたストレージを安全に取り外すには、アンマウントする必要があります。アンマウントを行うコマンドはumountです。/mnt/
ディレクトリにマウントされたストレージをアンマウントするには、次のようにコマンドを実行します。
8.11.2. ストレージのパーティション変更とフォーマット
ここでは、SDカードを例にストレージのパーティション変更とフォーマット方法を説明します。
パーティション構成を変更するには、fdiskコマンドを使用します。fdiskコマンドの使用例として、一つのプライマリパーティションで構成されている SD カードのパーティションを、2 つに分割する例を図8.36「ストレージのパーティション変更」に示します。一度、既存のパーティションを削除してから、新たにプライマリパーティションを2つ作成しています。先頭のパーティションには 100MByte、二つめのパーティションに残りの容量を割り当てています。
SDカードの先頭のパーティションを EXT3 ファイルシステムでフォーマットするには、次のようにコマンドを実行します。
| |
---|
EXT2 ファイルシステムでフォーマットするにはmkfs.ext2コマンドを、FAT32 ファイルシステムでフォーマットするには、dosfstoolsパッケージに含まれるmkfs.vfatコマンドを使用します。使用方法については、それぞれのマニュアルページを参照してください。
|
LEDバックライトの輝度を変更する方法について記載します。Armadillo-800 EVAの LEDバックライト機能は、バックライトクラスとして実装されています。LEDバックライトの輝度変更には、/sys/class/backlight/pwm-backlight.0/
ディレクトリ以下の表8.8「輝度設定に使用するファイル」に示すファイルを使用します。
表8.8 輝度設定に使用するファイル
ファイル | 説明 |
---|
brightness | 0(消灯) 〜 max_brightness(最高輝度)までの数値を書き込むことで輝度を変更します。 |
max_brightness | brightnessに書きこむ数値の最大値(最高輝度)が読み出せます。 |
LEDバックライトの輝度を変更する手順を図8.38「LEDバックライトの輝度を変更」に示します。
| |
---|
/sys/class/backlight/pwm-backlight.0/ 以下の他のファイルの使用方法については、Linuxカーネルソースファイルに含まれるDocumentation/ABI/stable/sysfs-class-backlight を参照してください。
|
LEDを制御する方法について記載します。Armadillo-800 EVAのLED は、LED クラスとして実装されています。LEDの制御は、LEDクラスディレクトリ以下のファイルを使用します。制御可能なLEDとLEDクラスディレクトリの対応を表8.9「LEDとLEDクラスディレクトリの対応」に示します。
表8.9 LEDとLEDクラスディレクトリの対応
LED | LEDクラスディレクトリ |
---|
LED3 | /sys/class/leds/LED3/ |
LED4 | /sys/class/leds/LED4/ |
LED5 | /sys/class/leds/LED5/ |
LED6 | /sys/class/leds/LED6/ |
LEDを 点灯/消灯 する方法について記載します。LEDを 点灯/消灯 させるには、LEDクラスディレクトリ以下のbrightness
に数値を書き込みます。
brightness
に 0 を書き込むと消灯し、1を書き込むと点灯[]します。
LED3 を例に、点灯/消灯 および状態取得を行う手順を以下に示します。
LEDトリガを使用する方法について記載します。LEDクラスディレクトリ以下のtrigger
に設定したトリガで、LEDを点灯/消灯させることができます。trigger
に設定可能なトリガを以下に示します。
表8.10 triggerに設定可能なトリガ
トリガ | 説明 |
---|
none | トリガを設定しません(デフォルト)。 |
battery-charging-or-full | ダミーのトリガです。常に消灯します。 |
battery-charging | ダミーのトリガです。常に消灯します。 |
battery-full | ダミーのトリガです。常に消灯します。 |
usb-online | ダミーのトリガです。常に消灯します。 |
ac-online | ダミーのトリガです。常に消灯します。 |
mmc0 | eMMCのアクセスランプにします。 |
mmc1 | SD1のアクセスランプにします。 |
mmc2 | SD2またはAWL13モジュールのアクセスランプにします。 |
timer | 任意のタイミングで点灯/消灯を行います。この設定にすることにより、LED クラスディレクトリ以下に delay_on , delay_off ファイルが出現し、それぞれ点灯時間, 消灯時間をミリ秒単位で指定します。 |
LED3 を例に、トリガの設定および状態取得を行う手順を以下に示します。
ユーザースイッチのイベントを取得する方法について記載します。Armadillo-800 EVAのユーザースイッチはインプットデバイスとして実装されています。ユーザースイッチとして使用可能なスイッチと、インプットデバイスファイルの対応を表8.11「スイッチとインプットデバイスファイルの対応」に示します。
表8.11 スイッチとインプットデバイスファイルの対応
ユーザースイッチ | インプットデバイスファイル | イベントコード |
---|
SW3 | /dev/input/event0 | 116 (Power) |
SW4 | 158 (Back) |
SW5 | 139 (Menu) |
SW6 | 102 (Home) |
| |
---|
SW3 は、linux-2.6.35-a800eva-at1 では 28 (Enter) に割り当てられていました。linux-2.6.35-a800eva-at2 から、116 (Power)に変更されています。
|
| |
---|
SW2 はリセットスイッチです。ユーザースイッチとしての使用はできません。誤って押下した場合は、Armadillo-800 EVA がリセットされてしまいますのでご注意ください。
|
| |
---|
イベントデバイスファイルの番号は、検出された順番に割り振られます。そのため、USB キーボードなど他のインプットデバイスが起動時に検出されると、デバイス番号は変わる可能性があります。
|
イベントを取得するには、evtestを使用します。evtest のインストールには APTを使用します。APTの使用方法については、「パッケージ管理」を参照してください。
APTを使用してevtestをインストールするには、次のようにコマンドを実行します。
ユーザースイッチのイベントを取得するには、次のようにコマンドを実行します。アプリケーションを停止するには、Ctrl+c を押下してください。
タッチパネルのイベントを取得する方法について記載します。Armadillo-800 EVAのタッチパネルはインプットデバイスとして実装されています。タッチパネルに対応するインプットデバイスファイルは、/dev/input/event1
です。
| |
---|
イベントデバイスファイルの番号は、検出された順番に割り振られます。そのため、USB キーボードなど他のインプットデバイスが起動時に検出されると、デバイス番号は変わる可能性があります。
|
イベントの取得にはevtestを使用します。インストールされていない場合は、図8.44「evtestのインストール」を参照してインストールしてください。
タッチパネルのイベントを取得するには、次のようにコマンドを実行します。アプリケーションを停止するには、Ctrl+c を押下してください。