本章では、工場出荷状態のArmadilloo-840のユーザーランドの基本的な仕様について説明します。
Armadillo-840のユーザーランドの起動処理について説明します。ユーザーランドの起動処理は大きく分けて次の手順で初期化が行われています。
Linuxカーネルが/sbin/initを実行し/etc/inittabのsysinitに登録されている/etc/init.d/rcスクリプトを実行
rcスクリプトの中で、/etc/rc.d/ディレクトリの起動スクリプトを順次実行
ローカル起動スクリプト(/etc/config/rc.local)を実行
/etc/inittabのrespawnタブに登録されたものを実行
Linuxカーネルは、ルートファイルシステムをマウントすると、/sbin/initを実行します。initプロセスは、コンソールの初期化を行い/etc/inittabに記載された設定に従ってコマンドを実行します。
デフォルト状態のArmadillo-840の/etc/inittabは次のように設定されています。
inittabの書式は、次のようになっています。
Armadillo-840のinitでは、"id"フィールドに起動されるプロセスが使用するコンソールを指定することができます。省略した場合は、システムコンソールが使用されます。"runlevel"フィールドは未対応のため利用できません。
"action"フィールド及び"process"フィールドは、どのような状態(action)のときに何(process)を実行するかを設定することができます。actionフィールドに指定可能な値を表9.1「inittabのactionフィールドに設定可能な値」に示します。
表9.1 inittabのactionフィールドに設定可能な値
値 | processを実行するタイミング |
---|
sysinit | initプロセス起動時 |
respawn | sysinit終了後。このアクションで起動されたプロセスが終了すると、再度processを実行する |
shutdown | シャットダウンする時 |
ctrlaltdel | Ctrl-Alt-Deleteキーの組み合わせが入力された時 |
rcスクリプトでは、システムの基礎となるファイルシステムをマウントしたり、/etc/rc.d/ディレクトリ以下にあるSから始まるスクリプト(初期化スクリプト)が実行できる環境を構築します。その後、初期化スクリプトを実行していきます。初期化スクリプトは、Sの後に続く2桁の番号の順番で実行します。
9.1.3. /etc/rc.d/Sスクリプト(初期化スクリプト)
初期化スクリプトでは、システムの環境を構築するもの、デーモン(サーバー)を起動するものの2つの種類があります。Armadillo-840のデフォルト状態で登録されている初期化スクリプトを表9.2「/etc/rc.dディレクトリに登録された初期化スクリプト」に示します。
表9.2 /etc/rc.dディレクトリに登録された初期化スクリプト
スクリプト | 初期化内容 |
---|
S01mtd | フラッシュメモリのパーティション名に従ってMTDのデバイスファイルへのシンボリックリンクを作成します |
S03flatfsd | flatfsdを使いコンフィグ領域(/etc/config/)を復元します |
S05udevd | udevdを起動し、Linuxカーネルから発行されたueventをハンドリングします |
S06mountdevsubfs | udevd起動後にマウントする必要のあるファイルシステムをマウントします |
S20checkroot | システム関連のファイルのパーミッション設定や、オーナーを設定します |
S21checkftp | FTPが利用するファイルやライブラリの配置、パーミッションの設定をします |
S30syslogd, S31klogd | ログデーモンを起動します |
S40mount | その他のファイルシステムをマウントします |
S45firmware | /opt/firmwareに配置されたファームウェアファイルから/lib/firmware/ディレクトリにシンボリックリンクを作成します |
S45module-init-tools | /etc/modulesに記載されたカーネルモジュールをロードします |
S50hostname | hostnameを設定します |
S50pvrsrv | PowerVR SGX540の初期化を行います |
S55firewall, S56networking, S57inetd | ネットワーク関連の初期化を行い、インターネットスーパーサーバー(inetd)を起動します |
S60avahi, S60lighttpd, S60sshd | ネットワークデーモンを起動します |
S90rc.local | コンフィグ領域(/etc/config/)に保存されたrc.localを実行します |
9.1.4. /etc/config/rc.local
コンフィグ領域に保存されたrc.localは、ユーザーランドイメージを変更することなく、起動時に特定の処理を行うことができるようになっています。
Armadillo-840では、システム起動時に自動的にQtサンプルアプリケーションのphotoviewerを起動させたり、AVコーデックミドルウェアのファームウェアをロードするために利用しています。photoviewerは自動起動させないように設定したり、AVコーデックミドルウェアを使わない場合はファームウェアをロードしないように設定できます。
デフォルト状態の/etc/config/rc.localは次のように記載されています。
| |
---|
AVコーデックミドルウェアのファームウェアロード処理は、romfs-a840-v1.02.img(Atmark Dist v20140131)で追加されました。ユーザーランドイメージ romfs-a840-v1.01.img以前(Atmark Dist v20131018以前)でArmadillo-840を起動したことがある場合は、次のようにコンフィグ領域を初期化すると次回起動時からファームウェアロード処理が行われるようになります。
|
デフォルトのユーザーランドにインストールされているアプリケーションを一覧します。
/bin
/usr/bin
/sbin
/usr/sbin