第9章 ブートローダー仕様

本章では、ブートローダーの起動モードや利用することができる機能について説明します。

9.1. ブートローダー起動モード

ブートローダーが起動すると、USBシリアル変換アダプタのスライドスイッチの状態により、2つのモードのどちらかに遷移します。USBシリアル変換アダプタのスライドスイッチの詳細については、「スライドスイッチの設定について」を参照してください。

表9.1 ブートローダー起動モード

起動モードの種別スライドスイッチ説明
保守モード外側各種設定が可能なU-Bootコマンドプロンプトが起動します。
オートブートモード内側電源投入後、自動的にLinuxカーネルを起動させます。

USBシリアル変換アダプタが未接続の場合オートブートモードとなり、Linuxカーネルが起動します。

9.2. ブートローダーの機能

U-Bootの保守モードでは、Linuxカーネルの起動オプションの設定などを行うことできます。

保守モードで利用できる有用なコマンドは、表9.2「保守モード 有用なコマンド一覧」に示します。

表9.2 保守モード 有用なコマンド一覧

コマンド説明

boot

OSを起動する場合に使用します
bdinfoハードウェアの情報を表示します

md

mm

nm

mw

cp

cmp

簡易的にメモリアクセスする場合に使用します

printenv

setenv

saveenv

環境変数の設定をする場合に使用します、環境変数にてOSの起動設定等をおこなうことができます
crc32メモリ空間のチェックサムを表示する場合に使用します
versionブートローダーのバージョンを表示します

各コマンドのヘルプを表示するには図9.1「U-Bootコマンドのヘルプを表示」のようにします。

=> help [コマンド]

図9.1 U-Bootコマンドのヘルプを表示


9.2.1. Linuxカーネルイメージとdevice tree blobの指定方法

ブートローダーが OS を起動させる場合、eMMCまたは、SD カード内に保存されているLinuxカーネルイメージとdevice tree blobを使用することができます。

ファイルを保存しているデバイスを指定するには、環境変数 "mmcdev" を、パーティション番号を指定するには 環境変数 "mmcpart" を使用します。

Linuxカーネルイメージはファイル名 "uImage" で保存されたものを使用します。device tree blobはファイル名 "armadillo_iotg_g3_m1.dtb" で保存されたものを使用します。

"mmcdev" で設定可能な値と、起動デバイスの関係を 表9.3「mmcdev の設定値と起動デバイス」 に示します。

表9.3 mmcdev の設定値と起動デバイス

設定値起動デバイス
0SDカード(CON4に接続)
1eMMC

eMMCのパーティション1を指定する場合、図9.2「eMMCのパーティション1に保存されたLinuxカーネルイメージから起動する」のようにします。

=> setenv mmcdev 1
=> setenv mmcpart 1

図9.2 eMMCのパーティション1に保存されたLinuxカーネルイメージから起動する


9.2.2. ルートファイルシステムの指定方法

ルートファイルシステムが構築されているデバイスは、環境変数 "mmcroot" で指定することができます。

eMMCのパーティション2を指定する場合、図9.3「eMMCのパーティション2に保存されたルートファイルシステムを指定する」のようにします。

=> setenv mmcroot /dev/mmcblk2p2

図9.3 eMMCのパーティション2に保存されたルートファイルシステムを指定する


9.2.3. 環境変数の保存

環境変数は"saveenv"コマンドにて保存することができます。保存を行わずに、Armadillo-IoTの電源を切るとsetenvで設定した環境変数は消えてしまいます。

全ての環境変数をデフォルト値に戻すには、図9.4「全ての環境変数をデフォルト値に戻す」のようにします。

=> env default -a
=> saveenv

図9.4 全ての環境変数をデフォルト値に戻す


9.2.4. Linuxカーネル起動オプション

9.2.4.1. 代表的なLinuxカーネル起動オプション

Linuxカーネルには様々な起動オプションがあります。詳しくは、Linuxの解説書や、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/kernel-parameters.txt)を参照してください。

ここではArmadillo-IoTで使用することができる、代表的な起動オプションを表9.4「Linuxカーネルの起動オプションの一例」に紹介します。

表9.4 Linuxカーネルの起動オプションの一例

オプション指定子説明
console=

起動ログなどが出力されるイニシャルコンソールを指定します。

次の例では、コンソールにttymxc1を、ボーレートに115200を指定しています。

console=ttymxc1,115200
root=

ルートファイルシステムが構築されているデバイスを指定します。

デバイスにはLinuxカーネルが認識した場合のデバイスを指定します。

initrdをルートファイルシステムとする場合には、以下の例のように設定します。

root=/dev/ram0

SDカードにルートファイルシステムを配置する場合には、SDカードのデバイスファイルを指定します。次の例では、デバイスにmicroSDカードの第2パーティションを指定しています。

root=/dev/mmcblk0p2
rootwait

"root="で指定したデバイスが利用可能になるまでルートファイルシステムのマウントを遅らせます。

mem

Linuxカーネルが利用可能なメモリの量を指定します。RAMの一部を専用メモリとして利用したい場合などに設定します。


9.2.4.2. Linuxカーネル起動オプションの設定方法

Linuxカーネル起動オプションは環境変数 "mmcargs" で指定することができます。

"mmcargs" のデフォルト値は次に示す値に設定されています。

setenv mmcargs setenv bootargs console=${console},${baudrate} root=${mmcroot} ${optargs}

デフォルトでは、コンソールには環境変数 "console"が、コンソールのボーレートには環境変数 "baudrate"が、ルートファイルシステムには、環境変数 "mmcroot"が設定されています。

Linuxカーネル起動オプションの追加をしたい場合、環境変数 "optargs"を使用すると便利です。

次に、例として、Linuxカーネルが利用可能なメモリの量を384Mに設定する方法を図9.5「利用可能なメモリ量を384Mにする」に示します。

=> setenv optargs mem=384M
=> saveenv
=> printenv optargs
mem=384M

図9.5 利用可能なメモリ量を384Mにする