ブログ

Armadillo Base OS:拡張インターフェースをカスタマイズする

at_shinya.matsumoto
2024年2月27日 13時40分

Armadillo Base OS搭載製品で、拡張インターフェースを使用する場合のカスタマイズ方法を紹介します。
拡張インターフェースのピンアサインは製品毎で異なる為、各製品のマルチプレクス表(※)を参照下さい。
※[各製品ページ]⇒[技術情報・ダウンロード]⇒[ドキュメント]⇒[マルチプレクス表]よりダウンロード下さい

手順紹介

拡張インターフェースの設定を行う場合、当社で配布しているATDE環境でat-dtwebを使用します。
手順は以下の通りです

《手順》
 1.Linuxカーネルをダウンロード~解凍する
 2.at-dtwebでピンアサインを変更する
 3.アップデートファイルを作成する
 4.アップデートを実行する

1.Linuxカーネルをダウンロード~解凍する

ATDE環境に各製品ページからwgetコマンドなどでカーネルをダウンロードします。
カーネルは[各製品ページ]⇒[技術情報・ダウンロード]⇒[ソフトウェア]⇒[Linuxカーネル]にあります。
以下はArmadillo-IoT A6Eでの一例になります。(正確なURLはカーネルのリンクをコピー下さい)

カーネルをダウンロード
[ATDE]$ wget https://armadillo.atmark-techno.com/files/downloads/alpine/v3.18/atmark/src/linux-at-a6-5.10.209-r0.tar
 
カーネルを展開する
[ATDE]$ tar xf linux-at-a6-5.10.209-r0.tar
[ATDE]$ tar xf linux-at-a6-5.10.209-r0/linux-5.10-5.10.209-r0.tar.gz
 
デフォルトコンフィグを適用する
[ATDE]$ cd linux-5.10-5.10.209-r0/                       //ディレクトリ名にatが付いていない方
[ATDE]$ make ARCH=arm armadillo-iotg-a6e_defconfig


2.at-dtwebでピンアサインを変更する

下記コマンドを実行し、at-dtwebを起動します。

ATDEを起動する
[ATDE]$ at-dtweb


at-dtwebを起動すると、最初に製品の選択肢が出てくるため、対応する製品を選択します。
その後、下記の様なカーネルのディレクトリ選択するウインドウが出てきますので、先ほど展開した
カーネルのディレクトリ(linux-5.10-xxxx)を選択します。
※カーネル選択後、warningが出ますが無視してください。

カーネルを選択して右上のOKを押せば下記画像の様にat-dtwebが起動します。

ここではUART7を端子に割り当ててみます。(割り当てられる場所は決まっています)
UART7をドラッグすると割り当てる事が出来ます。

端子割り当てが終わったら右上の”SAVE"を押してビルドします。
ビルドが終わったらat-dtwebを終了します。(右上のxボタンで終了)

3.アップデートファイルを作成する

上記でat-dtwebで”SAVE"を実行すると、~/mkswu下にディレクトリ(at-dt-web-[製品名])が作成されています。
mkswuコマンドを実行してアップデートファイル(at-dtweb.swu)を作成します。

at-dtwebで作成されたディレクトリを確認
[ATDE]$ ls ~/mkswu/at-dtweb-Armadillo-IoT_A6E/
armadillo-iotg-a6e-at-dtweb.dtbo  at-dtweb.desc  update_overlays.sh  update_preserve_files.sh
 
アップデート時にpoweroffする設定を追記
[ATDE]$ echo "swdesc_option POST_ACTION=poweroff" >> ~/mkswu/at-dtweb-Armadillo-IoT_A6E/at-dtweb.desc
 
mkswuを実行してアップデートファイル(xxx.swu)を作成
[ATDE]$ cd ~/mkswu/at-dtweb-Armadillo-IoT_A6E/
[ATDE]$ mkswu at-dtweb.desc 
Enter pass phrase for /home/atmark/mkswu/swupdate.key:       //initial_setupで決めた署名用パスワードを入力
at-dtweb.swu を作成しました。
[ATDE]$ ls at-dtweb.swu 
at-dtweb.swu 


4.アップデートを実行する

こちらと同じ要領でat-dtweb.swuでアップデートを実行します。

アップデートで追加したUART7(ttymxc6)が使える様になります。(以下はA6Eの例)

アップデート前
[armadillo]# ls /dev/ttymxc*
/dev/ttymxc2  /dev/ttymxc4
 
アップデート前
[armadillo]# ls /dev/ttymxc*
/dev/ttymxc2  /dev/ttymxc4  /dev/ttymxc6


また、先ほど作成されたarmadillo-iotg-a6e-at-dtweb.dtboは下記に保存されており、 overlays.txtに追記する事でUART7(ttymxc6)が使える様になっています。

[armadillo]# ls /boot/armadillo-iotg-a6e-at-dtweb.dtbo
/boot/armadillo-iotg-a6e-at-dtweb.dtbo
 
[armadillo]# cat /boot/overlays.txt 
fdt_overlays=armadillo-iotg-a6e-at-dtweb.dtbo


元の状態に戻したい場合はoverlays.txtを下記の様に編集し、persist_fileコマンドでeMMCに
書き込みます。(Armadillo Base OSはoverlayFSで読み取り専用となっている為、下記手順が必要)

overlays.txtの編集
[armadillo]# cat /boot/overlays.txt 
fdt_overlays=
 
eMMCへの保存
[armadillo]# persist_file /boot/overlays.txt 


以上で拡張インターフェースの設定は完了です。


開発手順・TIPS集のTOPに戻る