ブログ

Armadillo Base OS:量産時インストールディスクでRTCを設定する方法

at_shinya.matsumoto
2023年6月30日 17時50分

本ブログは量産時にインストールディスクを使ったROM書き込みを行う際に、RTCの設定も
同時に行う方法についてご説明します。
主に、NTPサーバーに接続できない様な場所で使用する場合にお使い頂ければと思います。

《注意》
 本手順を実行するにあたり、ArmadilloをEthernet経由でNTPサーバーと通信可能なネット
 ワークに接続頂く必要があります。加えて、RTC用バックアップ電池が無い場合には時刻が
 保持されませんのでご注意下さい。

準備するもの

・開発済みのArmadillo(Armadillo Base OS搭載製品)
・RTC用バックアップ電池
・SDカード
・NTPサーバー(自社サーバーも可)と接続可能なネットワーク環境

実施手順

RTC設定をするインストールディスクを作成し、Armadilloにインストールを行います。

1.インストールディスクの作成

インストールディスク作成の詳細につきましてはArmadillo Base OS 開発ガイド
「開発したシステムをインストールディスクにする」を参照下さい。
※Armadillo Base OSのバージョンがv3.17.4-at.7よりも古い場合は、お手数ですが手動で
 第二パーティションのファイルシステムをmkfsで設定ください


RTCの設定を第二パーティションに配置する installer_overrides.sh に記載します。
以下は例ですので適宜変更下さい。

#installer_overrides.sh 

preinstall() {
        : "Preinstall function, run before eMMC is partitionned"
}
postinstall() {
        : "Postinstall function, run after all other steps except sending logs"
        ip link set eth1 up
        udhcpc -t 5 -n -i eth1
        if [ $? -eq 0 ]; then
           chronyd -q && hwclock -w
        else
           #error function
           echo -e "\e[31m### Network Error!! ###\e[m"
        fi
}
send_log() {
        : "This function is called after aggregating logs for archival"
}

以上で、インストールディスクの作成は完了です。

《補足》
 ・エラーログを残したい場合はsend_log()の方に処理を追加します。
 ・自社のNTPサーバーを使う場合は下記に書き換えます。

 chronyd -q 'server サーバーのアドレス iburst'

2.インストールディスクでArmadilloにインストール

1.下記を準備します。
 ・RTCバックアップ電池を取り付け
 ・Ethernet(NTPサーバーに接続可能なネットワーク)
 ・ジャンパ取り付け
 ・インストールディスク(SD)挿入
2.USBでコンソールと接続(目視する場合)します。
3.Armadilloの電源ONで書き込みます。

以上で、出荷後もRTCで時刻を保持する様になります。