ブログ

Armadillo-IoT(A6E):Linuxカーネルのビルド~Armadilloへの書き込み(一連の手順)

at_kazutaka.bito
2024年9月5日 11時15分

Armadillo-IoT(A6E)で、Linuxカーネルのビルド~Armadilloへの書き込みまでの一連の手順です。

0. 前提(開発環境の準備)

ここでは、Linuxカーネルのビルド、および、Armadilloのイメージ書き換え環境として、該当する製品の
Armadillo-IoT ゲートウェイ A6E製品マニュアル「3.1. 開発の準備」
の「3.1.5. Armadillo に初期設定をインストールする」まで実施済みの前提で説明します。

補足)後述の手順にて、上記手順内の 「 図3.9 initial_setup.swu 初回生成時の各種設定」で設定した
「証明書の鍵のパスワード」「abos-web のパスワード」が必要になります。

以下、ATDEのコマンドライン端末(GNOME)が起動している状態で実施します。

1. Linuxカーネルのソースファイル入手

[ATDE ~]$ wget [ソースファイルのURL(※)]
# linux-at-a6-[VERSION].tarというファイルがダウンロードされます。
[ATDE ~]$ tar xf linux-at-a6-[VERSION].tar
[ATDE ~]$ tar xf linux-at-a6-[VERSION]/linux-[VERSION].tar.gz
[ATDE ~]$ cd linux-[VERSION]

※)最新バージョンの場合、下記サイト内の「Linuxカーネル」のリンク先のURL
Armadillo-IoT ゲートウェイ A6E Linuxカーネル

2. Linuxカーネルのデフォルトコンフィグ

[ATDE ~/linux-[VERSION]]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- armadillo-iotg-a6e_defconfig


3. Linuxカーネルのカスタマイズ(必要な場合のみ)

コンフィギュレーションを変更する場合

[ATDE ~/linux-[VERSION]]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

コマンドを実行するとカーネルコンフィギュレーション設定画面が表示されます。

カーネルコンフィギュレーションを変更後、"Exit"を選択し、
「Do you wish to save your new kernel configuration? (Press to continue kernel configuration.)」
で"Yes"を選択し、 カーネルコンフィギュレーションを確定します。

ソースコードを改変する場合
linux-[VERSION]ディレクトリ内のソースコードを編集します。

4. Linuxカーネルのビルド

[ATDE ~/linux-[VERSION]]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x82000000 uImage
[ATDE ~/linux-[VERSION]]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-


5. ビルドしたLinuxカーネルのアップデートファイル(kernel.swu)を作成

[ATDE ~/linux-[VERSION]]$ /usr/share/mkswu/examples/kernel_update_plain.install.sh ~/mkswu/kernel.desc
[ATDE ~/linux-[VERSION]]$ mkswu ~/mkswu/kernel.desc
Enter pass phrase for /home/atmark/mkswu/swupdate.key:  # 「証明書の鍵のパスワード」(※)を入力します。
/home/atmark/mkswu/kernel.swu を作成しました。

※)上記手順「0. 前提」で設定した「証明書の鍵のパスワード」

6. LinuxカーネルをArmadilloに書き込む

Linuxカーネルのアップデートファイル(kernel.swu)で、Armadilloに書き込みます。
書き込み方法は、 Armadillo-IoT ゲートウェイ A6E 製品マニュアル「3.3.3.5. SWU イメージのインストール」
に記載の通り複数ありますが、ここでは一例として、ABOS Webを使った手順で説明します。
(下記手順は、ATDEからArmadilloに対して、ネットワーク名(armadillo.local)か、[ArmadilloのIPアドレス]で
 ネットワーク接続可能な場合に有効です。)

下記のどちらかのコマンドで、ABOS Webを開きます。

# Armadilloのネットワーク名が「armadillo.local」で見えている場合
[ATDE ~/linux-[VERSION]]$ firefox --url https://armadillo.local:58080
 
# ArmadilloのIPアドレスを直接指定する場合
[ATDE ~/linux-[VERSION]]$ firefox --url https://[ArmadilloのIPアドレス]:58080

①ログイン画面では、上記手順「0. 前提」で設定した「abos-web のパスワード」を入力してログインします。
②ABOS Webの画面で「SWUインストール」をクリックします。

③「SWUファイル入力」のウィンドウで「参照」をクリックします。
④「ファイルのアップロード」のウィンドウで、「/home/atmark/mkswu」ディレクトリ内の
 「kernel.swu」を選択します。
⑤「SWUファイル入力」のウィンドウに戻ったら「インストール」をクリックします。

以上で、ArmadilloにLinuxカーネルが書き込まれた後、自動的に再起動がかかります。