本章では、ブートローダーの起動モードや利用することができる機能について説明します。
ブートローダーが起動すると、USBシリアル変換アダプタのスライドスイッチの状態により、2つのモードのどちらかに遷移します。USBシリアル変換アダプタのスライドスイッチの詳細については、「スライドスイッチの設定について」を参照してください。
表10.1 ブートローダー起動モード
起動モードの種別 | スライドスイッチ | 説明 |
---|
保守モード | 外側 | 各種設定が可能なU-Bootコマンドプロンプトが起動します。 |
オートブートモード | 内側 | 電源投入後、自動的にLinuxカーネルを起動させます。 |
USBシリアル変換アダプタが未接続の場合オートブートモードとなり、Linuxカーネルが起動します。
U-Bootの保守モードでは、Linuxカーネルの起動オプションの設定などを行うことできます。
保守モードで利用できる有用なコマンドは、表10.2「保守モード 有用なコマンド一覧」に示します。
表10.2 保守モード 有用なコマンド一覧
コマンド | 説明 |
---|
boot | OSを起動する場合に使用します |
bdinfo | ハードウェアの情報を表示します |
md mm nm mw cp cmp | 簡易的にメモリアクセスする場合に使用します |
printenv setenv saveenv | 環境変数の設定をする場合に使用します、環境変数にてOSの起動設定等をおこなうことができます |
crc32 | メモリ空間のチェックサムを表示する場合に使用します |
version | ブートローダーのバージョンを表示します |
各コマンドのヘルプを表示するには図10.1「U-Bootコマンドのヘルプを表示」のようにします。
10.2.1. Linuxカーネルイメージとdevice tree blobの指定方法
ブートローダーが OS を起動させる場合、eMMCまたは、microSD カード内に保存されているLinuxカーネルイメージとdevice tree blobを使用することができます。
ファイルを保存しているデバイスを指定するには、環境変数 "mmcdev" を、パーティション番号を指定するには 環境変数 "mmcpart" を使用します。
Linuxカーネルイメージはファイル名 "uImage" で保存されたものを使用します。device tree blobはファイル名 "armadillo_iotg_g3l.dtb" で保存されたものを使用します。
"mmcdev" で設定可能な値と、起動デバイスの関係を 表10.3「mmcdev の設定値と起動デバイス」 に示します。
表10.3 mmcdev の設定値と起動デバイス
設定値 | 起動デバイス |
---|
0 | microSDカード(メインユニットCON12に接続) |
1 | eMMC |
eMMCのパーティション1を指定する場合、図10.2「eMMCのパーティション1に保存されたLinuxカーネルイメージから起動する」のようにします。
QSPI用のブートローダーと、SD用のブートローダーにて、"mmcdev"と"mmcpart"のデフォルト値が異なります。
ブートローダーの種類と、デフォルト値の関係を表10.4「ブートローダーの種類とmmcdev, mmcpartのデフォルト値」に示します。
表10.4 ブートローダーの種類とmmcdev, mmcpartのデフォルト値
ブートローダーの種類 | ブートローダーファイル名 | mmcdevデフォルト値 | mmcpartデフォルト値 |
---|
QSPI用 | u-boot-x1-at*.bin | 1(eMMC) | 1 |
SD用 | u-boot-x1-sd-at*.bin | 0(SD) | 1 |
ルートファイルシステムが構築されているデバイスは、環境変数 "mmcroot" で指定することができます。
eMMCのパーティション2を指定する場合、図10.3「eMMCのパーティション2に保存されたルートファイルシステムを指定する」のようにします。
QSPI用のブートローダーと、SD用のブートローダーにて、"mmcroot"のデフォルト値が異なります。
ブートローダーの種類と、デフォルト値の関係を表10.5「ブートローダーの種類とmmcrootのデフォルト値」に示します。
表10.5 ブートローダーの種類とmmcrootのデフォルト値
ブートローダーの種類 | ブートローダーファイル名 | mmcrootデフォルト値 |
---|
QSPI用 | u-boot-x1-v*.*.*.bin | /dev/mmcblk2p2(eMMC パーティション2) |
SD用 | u-boot-x1-sd-v*.*.*.bin | /dev/mmcblk0p2(SD パーティション2) |
環境変数は"saveenv"コマンドにて保存することができます。保存を行わずに、Armadillo-IoTの電源を切るとsetenvで設定した環境変数は消えてしまいます。
QSPI用のブートローダーを使用した場合、環境変数はQSPI内に保存されます。SD用のブートローダーを使用した場合、環境変数はSD内に保存されます。
全ての環境変数をデフォルト値に戻すには、図10.4「全ての環境変数をデフォルト値に戻す」のようにします。
10.2.4.1. 代表的なLinuxカーネル起動オプション
Linuxカーネルには様々な起動オプションがあります。詳しくは、Linuxの解説書や、Linuxカーネルのソースコードに含まれているドキュメント(Documentation/kernel-parameters.txt)を参照してください。
ここではArmadillo-IoTで使用することができる、代表的な起動オプションを表10.6「Linuxカーネルの起動オプションの一例」に紹介します。
表10.6 Linuxカーネルの起動オプションの一例
オプション指定子 | 説明 |
---|
console= |
起動ログなどが出力されるイニシャルコンソールを指定します。
次の例では、コンソールにttymxc1を、ボーレートに115200を指定しています。
|
root= |
ルートファイルシステムが構築されているデバイスを指定します。
デバイスにはLinuxカーネルが認識した場合のデバイスを指定します。
initrdをルートファイルシステムとする場合には、以下の例のように設定します。
microSDカードにルートファイルシステムを配置する場合には、microSDカードのデバイスファイルを指定します。次の例では、デバイスにmicroSDカードの第2パーティションを指定しています。
|
rootwait |
"root="で指定したデバイスが利用可能になるまでルートファイルシステムのマウントを遅らせます。
|
mem |
Linuxカーネルが利用可能なメモリの量を指定します。RAMの一部を専用メモリとして利用したい場合などに設定します。
|
10.2.4.2. Linuxカーネル起動オプションの設定方法
Linuxカーネル起動オプションは環境変数 "mmcargs" で指定することができます。
"mmcargs" のデフォルト値は次に示す値に設定されています。
デフォルトでは、コンソールには環境変数 "console"が、コンソールのボーレートには環境変数 "baudrate"が、ルートファイルシステムには、環境変数 "mmcroot"が設定されています。
Linuxカーネル起動オプションの追加をしたい場合、環境変数 "optargs"を使用すると便利です。
次に、例として、Linuxカーネルが利用可能なメモリの量を384Mに設定する方法を図10.5「利用可能なメモリ量を384Mにする」に示します。