ブログ

Armadillo-640(ABOS版):拡張I/F(CON9/CON14/CON11)のデバイスツリーのカスタマイズ(一連の手順)

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

Armadillo-640/610の拡張I/F(CON8)のデバイスツリーをカスタマイズする一連の手順です。
補足)Armadillo-640/610は、2つのOS(Debian/Armadillo Base OS)に対応しています。
このブログでは、Armadillo Base OSを使用する場合の手順になります。

備考)拡張I/Fの詳細情報(使用可能な機能など)は、 Armadillo-640 マルチプレクス表のサイトより
ダウンロード可能なマルチプレクス表を参照ください。

0. 前提(Linuxカーネルの準備)

本手順に先立って、予めLinuxカーネルを準備しておく必要があります。
Armadillo-640/610(ABOS版):Linuxカーネルのビルド~Armadilloへの書き込み(一連の手順)を実施し、
以下の手順で作成されるデバイスツリーに対応したLinuxカーネルをArmadilloに書き込んでおきます。
補足)後述の手順にて、上記ブログ手順内の 「 図3.9 initial_setup.swu 初回生成時の各種設定」で設定した
「証明書の鍵のパスワード」「abos-web のパスワード」が必要になります。

1. 拡張I/Fのデバイスツリーをat-dtwebでカスタマイズ

「Armadillo-640製品マニュアル(Armadillo Base OS 対応)」「3.5. Device Treeをカスタマイズする」
の「3.5.2. at-dtweb のインストール」~「3.5.4.4. 機能の削除」を参考に、at-dtwebで拡張I/Fの端子を設定します。
(ここでは、具体的な設定は省略します)

「3.5.4.5. Device Tree のファイルの生成」の「図3.69 dtbo/desc の生成完了」までを実施し、at-dtwebを閉じます。

2. デバイスツリーのソースコードをカスタマイズ(必要な場合のみ)

at-dtwebで対応していない設定(使用するデバイスドライバ、GPIOの用法等)のカスタマイズは、
デバイスツリーのソースコードの編集が必要な場合があります。

デバイスツリーのソースコードにカスタマイズを施す場合は、下記のファイルを編集します。
linux-[VERSION]/arch/arm/boot/dts/armadillo-640-at-dtweb.dts

注意)デバイスツリーのソースコード編集後に、at-dtwebを使用する場合
 at-dtwebで「Save」すると、armadillo-640-at-dtweb.dtsはat-dtweb上の設定情報で上書きされます。
 armadillo-640-at-dtweb.dtsのバックアップを残す場合は、別ファイル名で保存しておきます。

デバイスツリーのみビルドします。

[ATDE ~/linux-[VERSION]]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- armadillo-640-at-dtweb.dtbo

手順4実施のため、ビルドしたデバイスツリー(armadillo-640-at-dtweb.dtbo)を
アップデートファイル作成用ディレクトリ(~/mkswu/at-dtweb-Armadillo-640)にコピーします。

[ATDE ~/linux-[VERSION]]$ cp arch/arm/boot/dts/armadillo-640-at-dtweb.dtbo ~/mkswu/at-dtweb-Armadillo-640

3. デバイスツリーのアップデートファイルの設定(必要に応じて実施)

アップデートの設定ファイル(at-dtweb.desc)を、下記の場合に応じて編集ください。

デバイスツリーのソースコードのカスタマイズ(手順2)を実施した場合
~/mkswu/at-dtweb-Armadillo-640/at-dtweb.descの下記の行の[version]をインクリメント(※)します。

swdesc_option version=[version]

※)[version]に指定できる文字は、下記を参考ください。
「Armadillo-640製品マニュアル(Armadillo Base OS 対応)」「6.4.1. インストールバージョンを指定する」

デバイスツリーをArmadilloに書き込んだ後、自動的に再起動させない場合(※)
※)書き込んだデバイスツリーで起動する前に、拡張I/Fに接続する対向基板を交換する、等。
~/mkswu/at-dtweb-Armadillo-640/at-dtweb.descの末尾に下記を記述します。

swdesc_option POST_ACTION=poweroff

4. デバイスツリーのアップデートファイル(at-dtweb.swu)を作成

Armadilloに書き込むためのアップデートファイル(at-dtweb.swu)を作成します。

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

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

5. デバイスツリーをArmadilloに書き込む

デバイスツリーのアップデートファイル(at-dtweb.swu)で、Armadilloに書き込みます。
書き込み方法は、 「Armadillo-640製品マニュアル(Armadillo Base OS 対応)」「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/at-dtweb-Armadillo-640」ディレクトリ内の
 「at-dtweb.swu」を選択します。
⑤「SWUファイル入力」のウィンドウに戻ったら「インストール」をクリックします。

以上で、Armadilloにデバイスツリーが書き込まれた後、自動的に再起動、または、poweroff(※)します。
※)手順3で「デバイスツリーをArmadilloに書き込んだ後、自動的に再起動させない場合」を実施した場合は、
poweroffが実行されます。