| | 本章では、ハードウェアの動作確認に使用するコマンドやその実行手順について説明します。 ハードウェアの動作確認以外が目的のコマンドや手順については
10章Howto
を参照してください。 ここでは、ネットワークの設定方法について説明します。 Armadillo-640 は、1つの Ethernet ポートが搭載されています。
Linuxからは、 eth0 に見えます。 表7.1 ネットワークとネットワークデバイス ネットワーク | ネットワークデバイス | 出荷時の設定 |
---|
Ethernet | eth0
| DHCP |
Armadillo-640 の IP アドレスを確認するには、ip addr コマンドを使用します。 inet となっている箇所が IP アドレスです。
特定のインターフェースのみを表示したい場合は、以下のようにします。
Armadillo-640 では、通常の Linux システムと同様、ネットワークインターフェースの設定は NetworkManager を使用します。
NetworkManager はすべてのネットワーク設定をコネクションとして管理します。コネクションには「どのようにネットワークへ接続するか」、
「どのようにネットワークを作成するか」を記述し、 /etc/NetworkManager/system-connections/ に保存します。
また、1つのデバイスに対して複数のコネクションを保存することは可能ですが、1つのデバイスに対して有効化にできるコネクションは1つだけです。 NetworkManager は、従来の /etc/network/interfaces を使った設定方法もサポートしていますが、本書では nmcli を用いた方法を中心に紹介します。 nmcli は NetworkManager を操作するためのコマンドラインツールです。
図7.3「nmcli のコマンド書式」に nmcli の書式を示します。このことから、 nmcli は「オブジェクト (OBJECT) というものが存在し、
それぞれのオブジェクトに対してコマンド (COMMAND) を実行する。」という書式でコマンドを入力することがわかります。
また、オブジェクトそれぞれに help が用意されていることもここから読み取れます。
ここでは nmcli の、基本的な使い方を説明します。 登録されているコネクションの一覧を確認するには、次のようにコマンドを実行します。
[] 表示された NAME については、以降 [ID] として利用することができます。 コネクションを有効化するには、次のようにコマンドを実行します。 コネクションを無効化するには、次のようにコマンドを実行します。 コネクションを作成するには、次のようにコマンドを実行します。 [ID] にはコネクションの名前(任意)、[type] には ethernet、wifi といった接続タイプ、
[interfacename] にはインターフェース名(デバイス)を入力します。
これにより /etc/NetworkManager/system-connections/ に[ID]の名前でコネクション
ファイルが作成されます。このファイルを vi などで編集し、コネクションを修正する
ことも可能です。 Armadillo-640 を再起動したときにコネクションファイルが消えてしまわないように、
persist_file コマンドで永続化する必要があります。
persist_file コマンドに関する詳細は「overlayfs と persist_file について」を参照してください。 | |
---|
別の Armadillo-640 からコネクションファイルをコピーした場合は、コネクションファイルの
パーミッションを 600 に設定してください。
600 に設定後、 nmcli c reload コマンドでコネクションファイルを再読込します。 [armadillo ~]# chmod 600 /etc/NetworkManager/system-connections/<コネクションファイル名>
[armadillo ~]# persist_file /etc/NetworkManager/system-connections/<コネクションファイル名>
[armadillo ~]# nmcli c reload swu イメージを使用してコネクションファイルのアップデートを行う場合は、
swu イメージに含めるコネクションファイルのパーミッションを 600 に設定してから、
swu イメージを作成してください。
アップデート実行時には swu イメージ作成時のパーミッションが維持されるため、
上記のコマンド実行手順は不要です。
swu イメージに関しては 「Armadilloのソフトウェアをアップデートする」 を参考にしてください。 |
コネクションを削除するには、次のようにコマンドを実行します。 これにより /etc/NetworkManager/system-connections/ のコネクションファイルも同時に削除されます。
コネクションの作成と同様に persist_file コマンドで永続化する必要があります。 DHCP に設定する例を、図7.13「DHCP の設定」に示します。 | |
---|
-ipv4.addresses のように、プロパティ名の先頭に "-" を付けることで設
定したプロパティを削除することができます。反対に "+" を付けることで
プロパティを追加することができます。
|
有効化されているコネクションを修正した場合、かならず修正したコネクションを再
度有効化してください。 デバイスの一覧(デバイス名、タイプ、状態、有効なコネクション)を確認するには、次のようにコマン
ドを実行します。 デバイスを接続するには、次のようにコマンドを実行します。 | |
---|
デバイスを接続するには、接続しようとしているデバイスの有効なコネク
ションが必要です。"Error: neither a valid connection nor device
given" というメッセージが表示された場合には、 nmcli connection など
で有効なコネクションがあるかを確認してください。 |
デバイスを切断するには、次のようにコマンドを実行します。 有線 LAN で正常に通信が可能か確認します。設定を変更した場合、必ず変更したインターフェースを再度有効化してください。 同じネットワーク内にある通信機器と PING 通信を行います。以下の例では、通信機器が「192.0.2.20」という IP アドレスを持っていると想定しています。 |
-I オプションでインターフェースを指定できます。
|
| |
---|
有線 LAN 以外のインターフェースが有効化されている場合、ルーティングの設定などにより、ネットワーク通信に有線 LAN が使用されない場合があります。
設定を必ず確認してください。確実に有線 LAN の接続確認をする場合は、有線 LAN 以外のインターフェースを無効化してください。 |
Armadillo-640 でストレージとして使用可能なデバイスを次に示します。 表7.3 ストレージデバイス デバイス種類 | ディスクデバイス | 先頭パーティション | インターフェース |
---|
オンボード eMMC | /dev/mmcblk0
| /dev/mmcblk0p1
| オンボード | オンボード eMMC (GPP) | /dev/mmcblk0gp3
| なし | オンボード | microSD/microSDHC/microSDXCカード | /dev/mmcblk1
| /dev/mmcblk1p1
| microSDスロット(CON1) | USBメモリ | /dev/sd* []
| /dev/sd*1
| USB ホストインターフェース (CON5) |
| GPP(General Purpose Partition)について |
---|
GPP は、eMMC の通常の記憶領域を割譲して eMMC 内部に作られた記憶領域です。 eMMC の通常の記憶領域とはアドレス空間が異なるため、/dev/mmcblk0 および /dev/mmcblk0p* に対してどのような書き込みを行っても /dev/mmcblk0gp* のデータが書き換わることはありません。 Armadillo-640 では、8 MiB の GPP を4つ作成しています。各領域の用途を表7.4「eMMCのGPPの用途」に示します。 表7.4 eMMCのGPPの用途 ディスクデバイス | 用途 |
---|
/dev/mmcblk0gp0
| ライセンス情報等の為の予約領域 | /dev/mmcblk0gp1
| 動作ログ領域 | /dev/mmcblk0gp2
| 動作ログ予備領域[] | /dev/mmcblk0gp3
| ユーザー領域 |
|
ここでは、microSDHC カードを接続した場合を例にストレージの使用方法を説明します。
以降の説明では、共通の操作が可能な場合に、microSD/microSDHC/microSDXCカードを microSD カードと表記します。 Linux では、アクセス可能なファイルやディレクトリは、一つの木構造にまとめられています。あるストレージデバイスのファイルシステムを、
この木構造に追加することを、マウントするといいます。マウントを行うコマンドは、 mount です。 mount コマンドの典型的なフォーマットは、次の通りです。
-t オプションに続く fstype には、ファイルシステムタイプを指定します。ファイルシステムタイプの指定は省略可能です。
省略した場合、mount コマンドはファイルシステムタイプを推測します。この推測は必ずしも適切なものとは限りませんので、
事前にファイルシステムタイプが分かっている場合は明示的に指定してください。
FAT32 ファイルシステムの場合は vfat 、EXT3 ファイルシステムの場合は ext3 を指定します。
| |
---|
通常、購入したばかりの microSDHC カードは FAT32 または exFAT ファイルシステムでフォーマットされています。 |
device には、ストレージデバイスのデバイスファイル名を指定します。microSD カードのパーティション1の場合は /dev/mmcblk1p1 、
パーティション2の場合は /dev/mmcblk1p2 となります。
dir には、ストレージデバイスのファイルシステムをマウントするディレクトリを指定します。
microSDスロット (CON1) に microSD カードを挿入し、以下に示すコマンドを実行すると、
/mnt ディレクトリに microSD カードのファイルシステムをマウントすることができます。
microSDカード内のファイルは、/mnt ディレクトリ以下に見えるようになります。 ストレージを安全に取り外すには、アンマウントという作業が必要です。アンマウントを行うコマンドは、 umount です。
オプションとして、アンマウントしたいデバイスがマウントされているディレクトリを指定します。 7.2.2. ストレージのパーティション変更とフォーマット通常、購入したばかりの microSD カードや USB メモリは、一つのパーティションを持ち、FAT32ファイルシステムでフォーマットされています。 パーティション構成を変更したい場合、 fdisk コマンドを使用します。 fdisk コマンドの使用例として、
一つのパーティションで構成されている microSD カードのパーティションを、2つに分割する例を図7.22「fdiskコマンドによるパーティション変更」に示します。
一度、既存のパーティションを削除してから、新たにプライマリパーティションを二つ作成しています。先頭のパーティションには 100MByte、
二つめのパーティションに残りの容量を割り当てています。先頭のパーティションは /dev/mmcblk1p1 、二つめは /dev/mmcblk1p2 となります。 FAT32 ファイルシステムでストレージデバイスをフォーマットするには、 mkfs.vfat コマンドを使用します。
また、EXT2 や EXT3、EXT4 ファイルシステムでフォーマットするには、mkfs.ext2 や mkfs.ext3 、
mkfs.ext4 コマンドを使用します。
microSD カードのパーティション1を EXT4 ファイルシステムでフォーマットするコマンド例を次に示します Armadillo-640 の LED は GPIO で接続されているため、ソフトウェアで制御することができます。 利用しているデバイスドライバは LED クラスとして実装されているため、
LED クラスディレクトリ以下のファイルによって LED の制御を行うことができます。
LEDクラスディレクトリと LED の対応を次に示します。 表7.5 LED クラスディレクトリと LED の対応 LEDクラスディレクトリ | インターフェース | デフォルトトリガ |
---|
/sys/class/leds/red/
| ユーザーLED赤 | default-on
| /sys/class/leds/green/
| ユーザーLED緑 | default-on
| /sys/class/leds/yellow/
| ユーザーLED黄 | none
|
以降の説明では、任意のLEDを示すLEDクラスディレクトリを /sys/class/leds/[LED]/ のように表記します。 [LED] の部分を適宜読みかえてください。 LED クラスディレクトリ以下の brightness ファイルへ値を書き込むことによって、LED の点灯/消灯を行うことができます。
brightness に書き込む有効な値は 0〜255です。 brightness に 0 以外の値を書き込むと LED が点灯します。
| |
---|
Armadillo-640 の LED には輝度制御の機能がないため、0(消灯)、1〜255(点灯)の2つの状態のみ指定することができます。 |
brightness に0を書き込むとLEDが消灯します。
brightness を読み出すと LED の状態が取得できます。
Linux では、LED をある特定のタイミングで光らせることができます。これを「トリガ」と呼びます。
LEDクラスディレクトリ以下の trigger ファイルへ値を書き込むことによってLEDの点灯/消灯にトリガを設定することができます。
trigger でサポートされている主な値は以下の通りです。 表7.6 LEDトリガの種類 設定 | 説明 |
---|
none
| トリガを設定しません | mmc0
| eMMC のアクセスランプにします | mmc1
| microSD スロットのアクセスランプにします | timer
| 任意のタイミングで点灯/消灯を行います。この設定にすることにより、LEDクラスディレクトリ以下にdelay_on, delay_offファイルが出現し、それぞれ点灯時間, 消灯時間をミリ秒単位で指定します | heartbeat
| 心拍のように点灯/消灯を行います | default-on
| 主に Linux カーネルから使用します。LED が点灯します |
trigger ファイルを読み出すとサポートしているトリガと、現在有効のトリガが表示されます。 [] が付いているものが現在のトリガです。
以下のコマンドを実行すると、LEDが2秒点灯、1秒消灯を繰り返します。 以下のコマンドを実行すると、心拍のように点灯/消灯を行います。 Armadillo-640 のユーザースイッチのデバイスドライバは、インプットデバイスとして実装されています。
インプットデバイスのデバイスファイルからボタンプッシュ/リリースイベントを取得することができます。 ユーザースイッチのインプットデバイスファイルと、各スイッチに対応したイベントコードを次に示します。 表7.7 インプットデバイスファイルとイベントコード ユーザースイッチ | インプットデバイスファイル | イベントコード |
---|
SW1 | /dev/input/by-path/platform-gpio-keys-event
| 28 (KEY_ENTER) |
| |
---|
インプットデバイスは検出された順番にインデックスが割り振られます。USBデバイスなどを接続してインプットデバイスを追加している場合は、
デバイスファイルのインデックスが異なる可能性があります。 |
ユーザースイッチのボタンプッシュ/リリースイベントを確認するために、ここでは evtest コマンドをインストールして使用します。
evtest を停止するには、Ctrl-c を入力してください。 |
SW1 のボタン プッシュ イベントを検出したときの表示
| |
SW1 のボタン リリース イベントを検出したときの表示
|
| |
| | | |
| |