本章では、ブートローダーの起動モードや利用することができる機能について説明します。
ブートローダーが起動すると、USBシリアル変換アダプタのスライドスイッチの状態により、2つのモードのどちらかに遷移します。USBシリアル変換アダプタのスライドスイッチの詳細については、「スライドスイッチの設定について」を参照してください。
表9.1 ブートローダー起動モード
起動モードの種別 | スライドスイッチ | 説明 |
---|
保守モード | 外側 | 各種設定が可能なU-Bootコマンドプロンプトが起動します。 |
オートブートモード | 内側 | 電源投入後、自動的にLinuxカーネルを起動させます。 |
USBシリアル変換アダプタが未接続の場合オートブートモードとなり、Linuxカーネルが起動します。
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コマンドのヘルプを表示」のようにします。
9.2.1. Linuxカーネルイメージとdevice tree blobの指定方法
ブートローダーが OS を起動させる場合、eMMCまたは、SD カード内に保存されているLinuxカーネルイメージとdevice tree blobを使用することができます。
ファイルを保存しているデバイスを指定するには、環境変数 "mmcdev" を、パーティション番号を指定するには 環境変数 "mmcpart" を使用します。
Linuxカーネルイメージはファイル名 "uImage" で保存されたものを使用します。device tree blobはファイル名 "armadillo_x1.dtb" で保存されたものを使用します。
"mmcdev" で設定可能な値と、起動デバイスの関係を次に示します。
CON7 アドオンインターフェースに、SDスロット拡張ボードを接続した場合と、しない場合で、起動デバイスの番号が変わります。
表9.3 mmcdev の設定値と起動デバイス SDスロット拡張ボードを接続しない場合
表9.4 mmcdev の設定値と起動デバイス SDスロット拡張ボードを接続した場合
設定値 | 起動デバイス |
---|
0 | SD(SDスロット拡張ボードを接続した場合のみ) |
1 | eMMC |
SDスロット拡張ボードを接続した状態で、eMMCのパーティション1を指定する場合、図9.2「eMMCのパーティション1に保存されたLinuxカーネルイメージから起動する」のようにします。
ブートローダーの種類と、デフォルト値の関係を表9.5「ブートローダーの種類とmmcdev, mmcpartのデフォルト値」に示します。
表9.5 ブートローダーの種類とmmcdev, mmcpartのデフォルト値
ブートローダーの種類 | ブートローダーファイル名 | mmcdevデフォルト値 | mmcpartデフォルト値 |
---|
QSPI用 | u-boot-x1-at*.bin | 0(eMMC) | 1 |
SD用 | u-boot-x1-sd-at*.bin | 0(SD) | 1 |
ルートファイルシステムが構築されているデバイスは、環境変数 "mmcroot" で指定することができます。
eMMCのパーティション2を指定する場合、図9.3「eMMCのパーティション2に保存されたルートファイルシステムを指定する」のようにします。
QSPI用のブートローダーと、SD用のブートローダーにて、"mmcroot"のデフォルト値が異なります。
ブートローダーの種類と、デフォルト値の関係を表9.6「ブートローダーの種類とmmcrootのデフォルト値」に示します。
表9.6 ブートローダーの種類とmmcrootのデフォルト値
ブートローダーの種類 | ブートローダーファイル名 | mmcrootデフォルト値 |
---|
QSPI用 | u-boot-x1-at*.bin | /dev/mmcblk2p2(eMMC パーティション2) |
SD用 | u-boot-x1-sd-at*.bin | /dev/mmcblk0p2(SD パーティション2) |
環境変数は"saveenv"コマンドにて保存することができます。保存を行わずに、Armadillo-X1の電源を切るとsetenvで設定した環境変数は消えてしまいます。
QSPI用のブートローダーを使用した場合、環境変数はQSPI内に保存されます。SD用のブートローダーを使用した場合、環境変数はSD内に保存されます。
全ての環境変数をデフォルト値に戻すには、図9.4「全ての環境変数をデフォルト値に戻す」のようにした後、電源を切断・接続します。
9.2.4.1. 代表的なLinuxカーネル起動オプション
Linuxカーネルには様々な起動オプションがあります。詳しくは、Linuxの解説書や、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/kernel-parameters.txt)を参照してください。
ここではArmadillo-X1で使用することができる、代表的な起動オプションを表9.7「Linuxカーネルの起動オプションの一例」に紹介します。
表9.7 Linuxカーネルの起動オプションの一例
オプション指定子 | 説明 |
---|
console= |
起動ログなどが出力されるイニシャルコンソールを指定します。
次の例では、コンソールにttymxc1を、ボーレートに115200を指定しています。
|
root= |
ルートファイルシステムが構築されているデバイスを指定します。
デバイスにはLinuxカーネルが認識した場合のデバイスを指定します。
initrdをルートファイルシステムとする場合には、以下の例のように設定します。
SDカードにルートファイルシステムを配置する場合には、SDカードのデバイスファイルを指定します。次の例では、デバイスにmicroSDカードの第2パーティションを指定しています。
|
rootwait |
"root="で指定したデバイスが利用可能になるまでルートファイルシステムのマウントを遅らせます。
|
mem |
Linuxカーネルが利用可能なメモリの量を指定します。RAMの一部を専用メモリとして利用したい場合などに設定します。
|
9.2.4.2. Linuxカーネル起動オプションの設定方法
Linuxカーネル起動オプションは環境変数 "mmcargs" で指定することができます。
"mmcargs" のデフォルト値は次に示す値に設定されています。
デフォルトでは、コンソールには環境変数 "console"が、コンソールのボーレートには環境変数 "baudrate"が、ルートファイルシステムには、環境変数 "mmcroot"が設定されています。
Linuxカーネル起動オプションの追加をしたい場合、環境変数 "optargs"を使用すると便利です。
次に、例として、Linuxカーネルが利用可能なメモリの量を384Mに設定する方法を図9.5「利用可能なメモリ量を384Mにする」に示します。