第7章 Debian GNU/Linuxを起動

7.1. 準備

Debian GNU/Linux(以降、単にDebianと表記します)を起動させる場合の起動OS設定の変更について説明します。

ブートローダーを保守モードで起動し、起動OS設定の変更をおこなうことで起動するOSを変更することができます。Armadillo-800 EVAに電源を投入する前にディップスイッチの起動モード設定(SW1.1)をONに設定し、Armadillo-800 EVAに電源を投入するとブートローダーが保守モードで起動します。

ブートローダーを保守モードで起動すると、ブートローダーのコマンドプロンプトが表示されます。

Hermit-At v3.0.0 (Armadillo-800 EVA) compiled at 22:22:10, Dec 21 2011
hermit> 

Debianを起動するには図7.1「起動設定の変更手順(Debian)」のように起動設定を変更します。

hermit> setbootdevice mmcblk0p2  1
hermit> setenv console=ttySC1,115200 noinitrd rootwait root=/dev/mmcblk0p2 2

1

Debian用のLinuxカーネルを格納しているブートデバイスを設定

2

Linuxカーネルパラメータを設定

図7.1 起動設定の変更手順(Debian)


以上で起動設定の変更は完了です。bootコマンドでDebianを起動することができます。

hermit> boot
[ティップ]

Armadillo-800 EVAの電源を切断し、ディップスイッチの起動モード設定(SW1.1)をOFFに設定すると、電源投入後自動的にDebianが起動するようになります。

7.2. 起動

Debianを起動します。次のように起動ログがシリアル通信ソフトウェアに表示されます。

mmcsd: SD card at address 0x00000001
mmcsd: M8G2FA 1048576KiB
gendisk: /dev/mmcblk0p2: start=0x004ade00, size=0x009ba200
gendisk: Image.bin is found. (4390496 Bytes)
Copying        kernel...done.
Doing console=ttySC1,115200
Doing noinitrd
Doing rootwait
Doing root=/dev/mmcblk0p2
Linux version 2.6.35.7 (atmark@atde4) (gcc version 4.4.5 (Debian 4.4.5-8) ) #1 P
REEMPT Wed Dec 21 22:37:47 JST 2011
CPU: ARMv7 Processor [412fc093] revision 3 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Armadillo-800EVA
    :
    : (割愛)
    :
VFS: Mounted root (ext3 filesystem) on device 179:2.
Freeing init memory: 124K
INIT: version 2.88 booting
Using makefile-style concurrent boot in runlevel S.
Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events...done.
Waiting for /dev to be fully populated...done.
Activating swap...done.
Checking root file system...fsck from util-linux-ng 2.17.2
/dev/mmcblk0p2: Backing up journal inode block information.

/dev/mmcblk0p2: clean, 11589/637728 files, 88453/1274944 blocks
done.
EXT3-fs (mmcblk0p2): using internal journal
Cleaning up ifupdown....
Setting up networking....
Loading kernel modules...done.
Activating lvm and md swap...done.
Checking file systems...fsck from util-linux-ng 2.17.2
done.
Mounting local filesystems...done.
Activating swapfile swap...done.
Cleaning up temporary files....
Configuring network interfaces...done.
Cleaning up temporary files....
Setting kernel variables ...done.
INIT: Entering runlevel: 2
Using makefile-style concurrent boot in runlevel 2.
Starting enhanced syslogd: rsyslogd.
Starting periodic command scheduler: cron.

Debian GNU/Linux 6.0 debian ttySC1

debian login:

図7.2 起動ログ(Linux)


7.3. ログイン

起動が完了するとログインプロンプトが表示されます。表7.1「シリアルコンソールログイン時のユーザ名とパスワード」に示すユーザーでログインすることができます。

表7.1 シリアルコンソールログイン時のユーザ名とパスワード

ユーザ名パスワード権限
rootrootrootユーザ

7.4. 終了方法

安全に終了させる場合は、次のようにhaltコマンドを実行し、「System halted.」と表示されたのを確認してから電源を切断します。

[Armadillo ~]# halt

Broadcast message from root@debian (ttySC1) (Sat Jan  1 04:25:31 2000):

The system is going down for system halt NOW!
INIT: Switching to runlevel: 0
INIT: Sending processes the TERM signal
Using makefile-style concurrent boot in runlevel 0.
Asking all remaining processes to terminate...done.
All processes ended within 1 seconds....done.
Stopping enhanced syslogd: rsyslogd.
Deconfiguring network interfaces...done.
Cleaning up ifupdown....
Saving the system clock.
Deactivating swap...done.
Will now halt.
System halted.

図7.3 終了方法


7.5. 使用方法

7.5.1. 有線LANの使用方法

Debianを有効に利用するには、パッケージ管理システム(後述)を利用します。パッケージ管理システムは、インターネット上のDebianサイトにアクセスし、パッケージ情報を集約し、パッケージの検索やインストールなどの一連の制御を提供してくれます。このシステムを利用する為には、インターネットへアクセスできる環境が必要となります。ここでは、インターネットを利用するための1つの手段「有線LAN」を利用可能にします。

工場出荷状態のDebianは有線LANが無効になっています。ifupコマンドを使用して有線LANを有効化する手順を、図7.4「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/36:f9:5d:6b:54:ac
Sending on   LPF/eth0/36:f9:5d:6b:54:ac
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 36:f9:5d:6b:54:ac
          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インターフェースを有効化します。工場出荷状態のDebianでは、DHCPを利用してネットワーク設定が行われるようになっています。

2

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

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


ifupコマンドを使用して有効化された有線LANを再度無効化するには、ifdownコマンドを使用します。手順を図7.5「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/36:f9:5d:6b:54:ac
Sending on   LPF/eth0/36:f9:5d:6b:54:ac
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 172.16.0.1 port 67
[Armadillo ~]# ifconfig eth0  2
eth0      Link encap:Ethernet  HWaddr 36:f9:5d:6b:54:ac
          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の状態を表示します。

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


[ティップ]

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

[Armadillo ~]# man 5 interfaces

7.5.2. 時刻の設定

システムクロックが大幅にずれた状態で、パッケージ管理システムを利用すると警告メッセージが出力される場合があります。事前に本項を参照してシステムクロックを合わせてください。

[Armadillo ~]# date 010609002012  1
[Armadillo ~]# date  2
Fri Jan  6 09:00:05 UTC 2012
[Armadillo ~]# hwclock -wu  3
[Armadillo ~]# hwclock  4
Fri Jan  6 09:00:14 2012  -0.319894 seconds

1

システムクロックを2011年1月6日9時00分[3]に設定します。

2

システムクロックを確認します。

2

リアルタイムクロックにシステムクロックを設定します。

2

リアルタイムクロックを確認します。

図7.6 システムクロックの設定


リアルタイムクロックを設定しておくと、電源を切断/接続した場合でも起動時にリアルタイムクロックの値がシステムクロックに設定されるため、システムクロックを再設定する必要が無くなります。電源を長時間切断する場合は、RTC外部バックアップインターフェース(CON9)に電池を接続する必要があります。

7.5.3. パッケージの管理方法

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

[ティップ]

APTは、/etc/apt/sources.listに記述されている場所から利用可能なパッケージのインデックスを取得します。デフォルトの設定では、HTTPサーバが指定されているため、APTを使用するにはArmadillo-800 EVAがネットワークに接続されている必要があります。「有線LANの使用方法」または、8章無線LANの使用方法を参照してネットワークを有効にしてください。

7.5.4. カメラを動作させる

カメラモジュールインターフェース(CON1)に搭載されたカメラを動作させてみましょう。カメラから映像を取得してLCDへ表示させるには、GStreamerを利用します。また、GStreamerからLCDへの直接描画はできないため、Xサーバーをインストールして描画させてみます。

Xサーバー(xserver-xorg-core)とGStreamerをインストールするには、次のようにコマンドを実行します。

[Armadillo ~]# apt-get install xserver-xorg-core gstreamer0.10

図7.7 XサーバーとGStreamerのインストール


Xサーバーを起動するには次のようにコマンドを実行します。Xサーバーが起動するとLCDに図7.9「Xサーバー起動画面」のように表示されます。

[Armadillo ~]# X -retro &

図7.8 Xサーバーの起動


Xサーバー起動画面

図7.9 Xサーバー起動画面


GStreamerを使用して、カメラから取得した映像をLCDに出力します。次のようにコマンドを実行します。アプリケーションを停止するには、Ctrl+cを押下してください。

[Armadillo ~]# DISPLAY=:0 gst-launch-0.10 v4l2src ! "video/x-raw-yuv,width=800,height=480,format=(fourcc)NV12" ! ffmpegcolorspace ! autovideosink

図7.10 カメラの映像をLCDに表示


[警告]

LCDにカメラから取得した映像が表示されない場合は、Armadillo-800 EVAを再起動し、再度図7.8「Xサーバーの起動」および図7.10「カメラの映像をLCDに表示」を実行してください。

7.5.5. オーディオを動作させる

オーディオを動作させてみましょう。オーディオの再生・録音にもGStreamerを使用します。インストールされていない場合は、図7.7「XサーバーとGStreamerのインストール」を参照してインストールしてください。

また、事前にモノラルマイク入力インターフェース(CON10)にマイクを、ステレオヘッドホン出力インターフェース(CON11)にスピーカやヘッドフォンを接続しておく必要があります。

Armadillo-800 EVAのオーディオ機能は、ALSAデバイスとして実装されています。オーディオデバイスは以下の機能を有しています。

  • サンプリング周波数 48k, 32k, 16k, 8k Hz

  • フォーマットSigned 16/24 bit, Little-endian

任意の音声ファイルを再生する手順を図7.11「音声ファイルの再生」に示します。音声ファイルはカレントディレクトリ以下にあることを想定しています。ここで使用する音声ファイルは、サンプリングレートが48kHz、ステレオのWAVファイル(sample.wav)を想定しています。

[Armadillo ~]# ls
sample.wav
[Armadillo ~]# gst-launch-0.10 filesrc location=sample.wav ! decodebin ! audioconvert ! audioresample ! alsasink

図7.11 音声ファイルの再生


マイクの音声をそのままスピーカに出力する手順を図7.12「マイク入力をスピーカに出力」に示します。

[Armadillo ~]# gst-launch-0.10 alsasrc ! 'audio/x-raw-int,channels=2,rate=48000,width=16' ! audioresample ! alsasink

図7.12 マイク入力をスピーカに出力


[ティップ]

音声ファイルのサンプルには、gnome-audioパッケージに含まれるファイルを利用することができます。パッケージに含まれる音声ファイル(WAV)は、44.1kHzでサンプリングされているため、48kHzにリサンプリングする必要があります。

[Armadillo ~]# apt-get install gnome-audio resample
[Armadillo ~]# cp /usr/share/sounds/login.wav .
[Armadillo ~]# resample -to 48000 login.wav sample.wav
[Armadillo ~]# gst-launch-0.10 filesrc location=sample.wav ! decodebin ! audioconvert ! audioresample ! alsasink

図7.13 gnome-audioパッケージの音声ファイルを利用




[3] フォーマットは、MMDDhhmm[[CC]YY][.ss]。詳しくは、ヘルプやmanページをご覧ください。