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
以上で拡張インターフェースの設定は完了です。