第5章 動作確認方法

5.1. ネットワーク

ここでは、ネットワークの設定方法やネットワークを利用するアプリケーションについて説明します。

5.1.1. デフォルト状態のネットワーク設定

ネットワーク設定は、/etc/config/interfacesに記述されています。デフォルト状態では、次のように設定されています。

表5.1 デフォルト状態のネットワーク設定

インターフェース種類設定起動時に有効化
loTCP/IPループバック有効
eth0TCP/IPDHCP有効
usb0TCP/IP手動無効

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
iface usb0 inet manual
	up ifconfig usb0 up
	post-up zcip usb0 /etc/zcip.script > /dev/null
	down ifconfig usb0 down

図5.1 デフォルト状態の/etc/config/interfaces


[ティップ]

usb0はUSBガジェットで利用することを想定した設定です。

5.1.2. ネットワークの有効化、無効化

有効化されていないインターフェースや一度無効化したインターフェースを再度有効化するには、以下のコマンドを使います。

[armadillo ~]# ifup eth0

図5.2 ネットワークインターフェース(eth0)の有効化


有効化されているインターフェースを無効化するには、以下のコマンドを使います。設定を変更する前には、かならず無効化してください。

[armadillo ~]# ifdown eth0

図5.3 ネットワークインターフェース(eth0)の無効化


コマンドの eth0 を usb0 など他のインターフェース名に変更することで、指定したインターフェースの操作をすることが可能です。

5.1.3. ネットワーク設定の変更方法

Armadilloのネットワーク設定の変更方法について説明します。

[警告]

ネットワーク接続に関する不明な点については、ネットワークの管理者へ相談してください。

Armadillo上の「/etc/config」以下にあるファイルを編集し、コンフィグ領域に保存することにより起動時のネットワーク設定を変更することができます。コンフィグ領域の保存については、6章コンフィグ領域 − 設定ファイルの保存領域を参照してください。

[注記]

設定を変更する場合は、かならずネットワークを無効化してから行ってください。変更してからネットワークを無効化しても、「新しい設定」を無効化することになります。「古い設定」が無効化されるわけではありません。

5.1.3.1. 固定IPアドレスに設定する

表5.2「固定IPアドレス設定例」に示す内容に設定変更するには、viエディタで/etc/config/interfacesを、図5.4「固定IPアドレス設定」のように編集します。

表5.2 固定IPアドレス設定例

項目設定
IPアドレス192.168.10.10
ネットマスク255.255.255.0
ネットワークアドレス192.168.10.0
ブロードキャストアドレス192.168.10.255
デフォルトゲートウェイ192.168.10.1

[armadillo ~]# vi /etc/config/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

auto lo eth0
iface lo inet loopback
iface eth0 inet static
	address 192.168.10.10
	netmask 255.255.255.0
	network 192.168.10.0
	broadcast 192.168.10.255
	gateway 192.168.10.1
iface usb0 inet manual
	up ifconfig usb0 up
	post-up zcip usb0 /etc/zcip.script > /dev/null
	down ifconfig usb0 down

図5.4 固定IPアドレス設定


5.1.3.2. DHCPに設定する

DHCPに設定するには、viエディタで/etc/config/interfacesを、次のように編集します。

[armadillo ~]# vi /etc/config/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
iface usb0 inet manual
	up ifconfig usb0 up
	post-up zcip usb0 /etc/zcip.script > /dev/null
	down ifconfig usb0 down

図5.5 DHCP設定


5.1.3.3. DNSサーバーを指定する

DNSサーバーを指定する場合は、viエディタで/etc/config/resolv.confを編集します。

[armadillo ~]# vi /etc/config/resolv.conf
nameserver 192.168.10.1

図5.6 DNSサーバーの設定


[ティップ]

DHCPを利用している場合には、DHCPサーバーがDNSサーバーを通知する場合があります。この場合、/etc/config/resolv.confは自動的に更新されます。

5.1.4. 接続を確認する

ここでは、変更したIP設定で正常に通信が可能か確認します。設定を変更した後は、かならず変更したインターフェースを再度有効化してください。

同じネットワーク内にある通信機器とPING通信を行います。下記の例では、通信機器が「192.168.10.20」というIP番号を持っていると想定しています。

[armadillo ~]# ping 192.168.10.20

図5.7 PING確認


5.1.5. ファイアーウォール

Armadilloでは、簡易ファイアーウォールが動作しています。設定されている内容を参照するには、図5.8「iptables」のようにコマンド実行してください。

[armadillo ~]# iptables --list

図5.8 iptables


5.1.6. ネットワークアプリケーション

工場出荷イメージで利用することができるネットワークアプリケーションについて説明します。

[注記]

ATDEとArmadilloのネットワーク設定がデフォルト状態であることを想定して記述しています。ネットワーク設定を変更している場合は適宜読み換えてください。

5.1.6.1. TELNET

ATDEなどのPCからネットワーク経由でログインし、リモート操作することができます。ログイン可能なユーザを次に示します。

表5.3 TELNETでログイン可能なユーザ

ユーザ名パスワード
guest(なし)

TELNETを使用してATDEからArmadilloにリモートログインする場合の例を、次に示します。

[ATDE ~]$ telnet 192.168.10.10  1
Trying 192.168.10.10...
Connected to 192.168.10.10.
Escape character is '^]'.

atmark-dist v1.32.0 (AtmarkTechno/Armadillo-840)
Linux 3.4-at4 [armv7l arch]

armadillo840-0 login: guest 2
[guest@armadillo ~]$
[guest@armadillo ~]$ su 3
Password:  4
[root@armadillo ~]#
[root@armadillo ~]# exit 5
[guest@armadillo ~]$ exit 6
Connection closed by foreign host.
[ATDE ~]$ 

1

telnetの引数にArmadilloのIPアドレスを指定します。

2

"guest"と入力するとログインすることができます。パスワードの入力は不要です。

3

特権ユーザーとなる場合には"su"コマンドを実行します。

4

特権ユーザーのデフォルトパスワードは"root"です。

5

特権トユーザーからguestユーザーに戻る場合は、"exit"と入力します

6

telnetを終了するにはもう一度"exit"を入力します

図5.9 telnetでリモートログイン


5.1.6.2. FTP

ATDEなどのPCからネットワーク経由でファイル転送することができます。次に示すユーザでログインすることができます。

表5.4 ftpでログイン可能なユーザ

ユーザ名パスワード
ftp(なし)

ftpを使用してATDEからArmadilloにファイルを転送する場合の例を、次に示します。

[ATDE ~]$ ls -l file
-rw-r--r-- 1 atmark atmark 1048576 Jan 1 12:00 file
[ATDE ~]$ ftp 192.168.10.10  1
Connected to 192.168.10.10.
220 localhost FTP server (GNU inetutils 1.4.1) ready.
Name (192.168.10.10:atmark): ftp
331 Guest login ok, type your name as password.
Password: 2
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub 3
250 CWD command successful.
ftp> put file 4
local: file remote: file
200 PORT command sucessful.
150 Opening BINARY mode data connection for 'file'.
226 Transfer complete.
1048576 bytes sent in 0.14 secs (7399.5 kB/s)
ftp> quit 5
221 Goodbye.
[ATDE ~]$ 

1

ftpの引数にArmadilloのIPアドレスを指定します。

2

ftpユーザにパスワードが設定されていないためEnterキーを入力します。

3

ファイル転送することができるpubディレクトリに移動します。

4

ファイルをアップロードします。ダウンロードする場合は"get"コマンドを使用します。

5

ftpを終了する場合は"quit"と入力します。

図5.10 ftpでファイル転送


ATDEからArmadilloにファイルをアップロードすると、/home/ftp/pub/ディレクトリ以下にファイルが作成されています。ダウンロードする場合も、同じディレクトリにファイルを配置してください。

[armadillo ~]# cd /home/ftp/pub/
[armadillo /home/ftp/pub]# ls
file

図5.11 Armadillo上でアップロードされたファイルを確認


5.1.6.3. HTTPサーバー

Armadilloでは、HTTPサーバーが動作しています。ATDEなどのPCのWebブラウザからArmadilloのURL (http://[ArmadilloのIPアドレス]/ [8] または、http://armadillo840-0.local/)にアクセスすると、Armadilloのトップページ(index.html)が表示されます。

Armadilloトップページ

図5.12 Armadilloトップページ


5.2. ビデオ

Armadillo-840 ベーシックモデルは HDMIモニターに FullHDサイズの画像を表示することができます。この章では、HDMIモニターへの画像表示方法について説明します。

Armadillo-840のデフォルト状態では、自動的に HDMIモニターを検知し、Qtアプリケーションを表示するようになっています。そのため、HDMIモニターを接続してから電源を入れるだけで、ビデオ出力が動作しているか確認することができます。

デフォルトアプリケーション

図5.13 デフォルトアプリケーション


このデフォルトアプリケーションは、Qt で作られている Photo Viewerというデモアプリケーションです。指定したキーワードに対応する写真を「Flickr」という写真共有サイトで検索し、写真を集めてきます。スタックされた写真をクリックすると、指定したキーワードの写真が画面に広がります。インターネットに繋がっていないと画像を取得できないため、図5.13「デフォルトアプリケーション」のように表示されません。ネットワークの設定は、「ネットワーク」を確認してください。

[注記]

Armadillo-840では、モニターによって自動的にビデオモードを変更する機能が搭載されています。出力画像は、Armadilloとモニターがサポートできる最大サイズに設定されます。モニターが接続されていない場合は、FullHD (1920 x 1080 px)に指定されます。Armadilloを起動した後に、FullHDに対応していないモニターを接続すると、デフォルトアプリケーションが誤動作します。かならずモニターを繋いでから Armadilloの電源を入れてください。

[ティップ]

モニターよっては、ビデオモードの自動設定が完了した後であっても画像が表示されない場合があります。これは、モニターが持つ表示可能なビデオモードをArmadillo-840が再現できない場合があるためです。

画像が表示されない場合は、次のように該当箇所を変更してください。特定ビデオモードに対する排他処理機能を利用して、表示されないビデオモードを排除することができます。

[armadillo ~]# vi /etc/config/configure-fbmode.sh
PARAM=$3

MUST_VMODE_CHANGE=y
IGNORE_MODE_1='1920x1080p-60'
IGNORE_MODE_2='U:'  1

fbmode_reconfigure() {
    # p_: path
    # s_: strings

1

'U:'が含まれるビデオモードを排他します。

変更後、次回起動時に設定が反映されるようにコンフィグ領域を保存します。

[armadillo ~]# flatfsd -s

5.3. オーディオ

Armadillo-840 ベーシックモデルは HDMIモニター経由で、オーディオの再生を行うことができます。この章では、オーディオの再生方法について説明します。

Linuxでサウンド機能を実現するには、ALSA[9]とOSS[10]の2つの方法があります。デフォルト設定では、ALSA によるオーディオ機能を提供しています。

ALSAデバイスが対応するサンプリング周波数とフォーマットを表5.5「ALSAデバイスが対応するサンプリング周波数とフォーマット」に示します。

表5.5 ALSAデバイスが対応するサンプリング周波数とフォーマット

ALSAデバイスサンプリング周波数フォーマット
hw:048k HzSigned 16 bit, Little-endian

5.3.1. サウンドを再生する

ALSAを使用したサウンドの再生にはGStreamerを使用します。GStreamerのテストサウンドを再生する例を次に示します

[armadillo ~]# gst-launch audiotestsrc ! 'audio/x-raw-int,channels=2,rate=48000,width=16' ! alsasink

図5.14 サウンドの再生


[注記]

HDMI経由で再生するオーディオは、Armadilloでのボリュームのコントロールができません。HDMIモニター側のボリュームコントロールで音量を調整してください。

5.4. ストレージ

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

表5.6 ストレージデバイス

デバイス種類ディスクデバイス先頭パーティション
USBフラッシュメモリ/dev/sd*[a]/dev/sd*1
SD/SDHC/SDXCカード/dev/mmcblk0/dev/mmcblk0p1

[a] USBハブを利用して複数のUSBメモリを接続した場合は、認識された順に sda sdb sdc ... となります。


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

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

[ティップ]

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

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

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

mount -t fstype device dir

図5.15 mountコマンド書式


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

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

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

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

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

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


[注記]

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

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


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

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

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

[armadillo ~]# fdisk /dev/mmcblk0

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.
 mmcblk0: p1 p2
 mmcblk0: p1 p2
Syncing disks.

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


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

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

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


5.5. LED

Armadillo-840のLEDは、LEDクラスとして実装されています。LEDクラスディレクトリ以下のファイルによってLEDの制御を行うことができます。LEDクラスディレクトリとLEDの対応については、表5.7「LEDクラスディレクトリとLEDの対応」を参照してください。

表5.7 LEDクラスディレクトリとLEDの対応

LEDクラスディレクトリ説明デフォルトトリガ
/sys/class/leds/LED1/LED1 (黄)none
/sys/class/leds/LED2/LED2 (黄)none

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

5.5.1. LEDを点灯/消灯する

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

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

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

図5.20 LEDを点灯させる


[ティップ]

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

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

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

図5.21 LEDを消灯させる


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

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

図5.22 LEDの状態を表示する


5.5.2. トリガを使用する

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

表5.8 triggerの種類

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

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


以下のコマンドを実行すると、LEDが1秒点灯、500ミリ秒消灯を繰り返します。

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

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


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

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

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


5.6. RTC

Armadillo-840には、カレンダ時計(Real Time Clock)が実装されています。電源を切断しても一定時間(平均300秒間、最小60秒間)時刻を保持することができます

電源が切断されても長時間時刻を保持させたい場合は、Armadillo-840のRTC外部バックアップ用電源入力インターフェース(CON12)に外付けバッテリー(対応バッテリー例: CR2032 WK11)[13]を接続することができます。

5.6.1. RTCに時刻を設定する

Linuxの時刻には、Linuxカーネルが管理するシステムクロックと、RTCが管理するハードウェアクロックの2種類があります。RTCに時刻を設定するためには、まずシステムクロックを設定します。その後に、ハードウェアクロックをシステムクロックと一致させる手順となります。

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

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

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

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

[armadillo ~]# date 1
Sat Jan  1 09:00:00 JST 2000
[armadillo ~]# date 012304562013.00 2
Wed Jan 23 04:56:00 JST 2013
[armadillo ~]# date 3
Wed Jan 23 04:56:00 JST 2013

1

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

2

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

3

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

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


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

[armadillo ~]# hwclock 1
Sat Jan  1 00:00:00 2000  0.000000 seconds
[armadillo ~]# hwclock --utc --systohc 2
[armadillo ~]# hwclock --utc 3
Wed Jan 23 04:56:10 2013  0.000000 seconds

1

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

2

ハードウェアクロックを協定世界時(UTC)で設定します。

3

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

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


5.7. GPIO

Armadillo-840のGPIOは、generic GPIOとして実装されています。GPIOクラスディレクトリ以下のファイルによってGPIOの制御を行うことができます。GPIOクラスディレクトリとGPIOの対応を次に示します。

表5.10 Armadillo-840のCON7のGPIOディレクトリ

ピン番号GPIOディレクトリ
CON7 2ピン/sys/class/gpio/gpio195
CON7 3ピン/sys/class/gpio/gpio196
CON7 4ピン/sys/class/gpio/gpio23
CON7 5ピン/sys/class/gpio/gpio21
CON7 6ピン/sys/class/gpio/gpio160
CON7 7ピン/sys/class/gpio/gpio197
CON7 8ピン/sys/class/gpio/gpio198
CON7 9ピン/sys/class/gpio/gpio194
CON7 10ピン/sys/class/gpio/gpio193
CON7 12ピン/sys/class/gpio/gpio62
CON7 13ピン/sys/class/gpio/gpio63
CON7 14ピン/sys/class/gpio/gpio64
CON7 15ピン/sys/class/gpio/gpio65
CON7 16ピン/sys/class/gpio/gpio61
CON7 17ピン/sys/class/gpio/gpio165
CON7 18ピン/sys/class/gpio/gpio164
CON7 19ピン/sys/class/gpio/gpio202
CON7 20ピン/sys/class/gpio/gpio102
CON7 21ピン/sys/class/gpio/gpio59
CON7 22ピン/sys/class/gpio/gpio60
CON7 25ピン/sys/class/gpio/gpio172
CON7 26ピン/sys/class/gpio/gpio173
CON7 27ピン/sys/class/gpio/gpio4
CON7 28ピン/sys/class/gpio/gpio3
CON7 29ピン/sys/class/gpio/gpio2
CON7 30ピン/sys/class/gpio/gpio0
CON7 31ピン/sys/class/gpio/gpio1
CON7 33ピン/sys/class/gpio/gpio66
CON7 34ピン/sys/class/gpio/gpio67
CON7 35ピン/sys/class/gpio/gpio68
CON7 36ピン/sys/class/gpio/gpio69
CON7 37ピン/sys/class/gpio/gpio70
CON7 38ピン/sys/class/gpio/gpio71
CON7 39ピン/sys/class/gpio/gpio72
CON7 40ピン/sys/class/gpio/gpio73
CON7 41ピン/sys/class/gpio/gpio74
CON7 42ピン/sys/class/gpio/gpio75
CON7 43ピン/sys/class/gpio/gpio97
CON7 44ピン/sys/class/gpio/gpio98
CON7 45ピン/sys/class/gpio/gpio99
CON7 46ピン/sys/class/gpio/gpio100
CON7 61ピン/sys/class/gpio/gpio13
CON7 62ピン/sys/class/gpio/gpio12
CON7 63ピン/sys/class/gpio/gpio9
CON7 64ピン/sys/class/gpio/gpio5
CON7 65ピン/sys/class/gpio/gpio20
CON7 66ピン/sys/class/gpio/gpio10
CON7 67ピン/sys/class/gpio/gpio8
CON7 68ピン/sys/class/gpio/gpio7
CON7 70ピン/sys/class/gpio/gpio40
CON7 71ピン/sys/class/gpio/gpio41
CON7 72ピン/sys/class/gpio/gpio42
CON7 73ピン/sys/class/gpio/gpio43
CON7 74ピン/sys/class/gpio/gpio44
CON7 75ピン/sys/class/gpio/gpio45
CON7 76ピン/sys/class/gpio/gpio46
CON7 77ピン/sys/class/gpio/gpio47
CON7 78ピン/sys/class/gpio/gpio48
CON7 79ピン/sys/class/gpio/gpio49
CON7 80ピン/sys/class/gpio/gpio50
CON7 81ピン/sys/class/gpio/gpio51
CON7 82ピン/sys/class/gpio/gpio52
CON7 83ピン/sys/class/gpio/gpio53
CON7 84ピン/sys/class/gpio/gpio54
CON7 85ピン/sys/class/gpio/gpio55
CON7 86ピン/sys/class/gpio/gpio56
CON7 87ピン/sys/class/gpio/gpio57
CON7 88ピン/sys/class/gpio/gpio58
CON7 90ピン/sys/class/gpio/gpio24
CON7 91ピン/sys/class/gpio/gpio25
CON7 92ピン/sys/class/gpio/gpio26
CON7 93ピン/sys/class/gpio/gpio178
CON7 94ピン/sys/class/gpio/gpio179
CON7 95ピン/sys/class/gpio/gpio180
CON7 96ピン/sys/class/gpio/gpio181
CON7 97ピン/sys/class/gpio/gpio182

表5.11 Armadillo-840のCON8のGPIOディレクトリ

ピン番号GPIOディレクトリ
CON8 4ピン/sys/class/gpio/gpio34
CON8 5ピン/sys/class/gpio/gpio33
CON8 6ピン/sys/class/gpio/gpio32
CON8 7ピン/sys/class/gpio/gpio31
CON8 8ピン/sys/class/gpio/gpio30
CON8 9ピン/sys/class/gpio/gpio29
CON8 10ピン/sys/class/gpio/gpio28
CON8 11ピン/sys/class/gpio/gpio27
CON8 13ピン/sys/class/gpio/gpio35
CON8 15ピン/sys/class/gpio/gpio38
CON8 16ピン/sys/class/gpio/gpio37
CON8 17ピン/sys/class/gpio/gpio39
CON8 19ピン/sys/class/gpio/gpio36
CON8 21ピン/sys/class/gpio/gpio158
CON8 22ピン/sys/class/gpio/gpio159
CON8 27ピン/sys/class/gpio/gpio199
CON8 28ピン/sys/class/gpio/gpio94
CON8 29ピン/sys/class/gpio/gpio93
CON8 30ピン/sys/class/gpio/gpio22
CON8 40ピン/sys/class/gpio/gpio195
CON8 41ピン/sys/class/gpio/gpio196
CON8 42ピン/sys/class/gpio/gpio23
CON8 44ピン/sys/class/gpio/gpio21
CON8 45ピン/sys/class/gpio/gpio160
CON8 46ピン/sys/class/gpio/gpio197
CON8 47ピン/sys/class/gpio/gpio198
CON8 48ピン/sys/class/gpio/gpio194
CON8 49ピン/sys/class/gpio/gpio193
CON8 50ピン/sys/class/gpio/gpio182
CON8 51ピン/sys/class/gpio/gpio181
CON8 52ピン/sys/class/gpio/gpio180
CON8 53ピン/sys/class/gpio/gpio179
CON8 54ピン/sys/class/gpio/gpio178
CON8 55ピン/sys/class/gpio/gpio26
CON8 56ピン/sys/class/gpio/gpio25
CON8 57ピン/sys/class/gpio/gpio24

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

5.7.1. 入出力方向を変更する

GPIOディレクトリ以下のdirectionファイルへ値を書き込むことによって、入出力方向を変更することができます。directionに書き込む有効な値を次に示します。

表5.12 directionの設定

設定説明
high入出力方向をOUTPUTに設定します。入力レベルの取得/設定を行うことができます。入力レベルはHIGHレベルになります。
out入出力方向をOUTPUTに設定します。入力レベルの取得/設定を行うことができます。入力レベルはLOWレベルになります。
lowoutを設定した場合と同じです。
in入出力方向をINPUTに設定します。入力レベルの取得を行うことができますが設定はできません。

5.7.2. 入力レベルを取得する

GPIOディレクトリ以下のvalueファイルから値を読み出すことによって、入力レベルを取得することができます。"0"はLOWレベル、"1"はHIGHレベルを表わします。入力レベルの取得は入出力方向がINPUT, OUTPUTのどちらでも行うことができます。入出力方向がOUTPUTの時に読み出される値は、GPIOピンの状態ではなく、自分がvalueファイルに書き込んだ値となります。

[armadillo ~]# cat /sys/class/gpio/[GPIO]/value
0

図5.27 GPIOの入力レベルを取得する


5.7.3. 出力レベルを設定する

GPIOディレクトリ以下のvalueファイルへ値を書き込むことによって、出力レベルを設定することができます。"0"はLOWレベル、"0"以外はHIGHレベルを表わします。出力レベルの設定は入出力方向がOUTPUTでなければ行うことはできません。

[armadillo ~]# echo 1 > /sys/class/gpio/[GPIO]/value

図5.28 GPIOの出力レベルを設定する




[8] ArmadilloのIPアドレスが 192.168.10.10 の場合、http://192.168.10.10/ となります。

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

[10] Open Sound System http://developer.opensound.com/

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

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

[13] 詳しくは、各Armadillo販売代理店にお問い合わせください。