以前カーネルをアップデートしたarmadillo-640をクリーンな状態に戻すため、インストールディスクイメージを使って工場出荷状態に初期化して必要な設定を行いました。
製品マニュアルにはインストールディスクによる初期化方法は記載されているのですが、ロケール設定などの初期化後の設定については特に明記されていないので自分用の設定として次回の為に手順をメモします。
Armadillo-640
初期化前のバージョン
atmark@armadillo:~$ uname -a
Linux armadillo 4.14-at11 #1 Fri Apr 26 12:55:42 JST 2019 armv7l GNU/Linux
Armadilloをインストールディスクイメージで初期化する
SDブートでイメージを初期化するために、まずインストールイメージをコピーしたSDカードを作成します。
製品マニュアルはこちら参照
11.1. インストールディスクを使用する
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_manual_ja-1.15.0/ch11.html
インストールディスクイメージ
https://armadillo.atmark-techno.com/resources/software/armadillo-640/disc-image
インストール用SDカード作成
ATDEをインストールしたPC(Windows 10)での作業になります。
microSDカード512MB以上(4GBカードを使用)をPCに接続し、SDCard FormatterでFAT32フォーマット。
ATDEにSDカード接続VMwareで認識させる:VMPlayer メニューより Player – 取外し可能デバイス –
イメージのダウンロード
atmark@atde7:~$
イメージファイルのダウンロード
$ wget https://armadillo.atmark-techno.com/files/downloads/armadillo-640/image/install-disk-sd-a600-20200925.img
$ wget https://armadillo.atmark-techno.com/files/downloads/armadillo-640/image/install-disk-sd-a600-20200925.img.md5
md5のチェック
$ md5sum -c install-disk-sd-a600-20200925.img.md5
./install-disk-sd-a600-20200925.img: 完了
SDカードの準備
atmark@atde7:~$
SDカードのmount確認
$ sudo mount
SDカードのumount
$ sudo umount /dev/sdb1
SDカードのフォーマット確認
$ sudo fdisk /dev/sdb
コマンド p で確認
Command (m for help): p
Disk /dev/sdb: 488.5 MiB, 512229376 bytes, 1000448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf93b467f
コマンド qでfdisk終了
Command (m for help): q
イメージファイルをSDカードへコピー
atmark@atde7:~$
$ sudo dd if=install-disk-sd-a600-20200925.img of=/dev/sdb bs=4M conv=fsync
127+1 レコード入力
127+1 レコード出力
536870400 bytes (537 MB, 512 MiB) copied, 82.3781 s, 6.5 MB/s
これでATDEの作業は終了なのでVMwareのSDカードを取り出します。
ArmadilloをSDカードでブートする
11.1.2. インストールの実行
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_manual_ja-1.15.0/ch11.html#sct.update_image.do_install
microSDカードスロットはヒンジ式になっています。よく見ると表面にカードの向きやLock/Unlockの鍵マークが書いてあります。
Unlock方向にスライドして跳ね上げます。Unlockは少し硬いです。
カード挿入後はロックして、JP1もジャンパーでショートします。隣のJP2は通常ショートで使用しています。シャンパーは付属品に入ってましたので探しましょう。
あとは手順通りにUSBシリアル変換アダプタのスライドスイッチを1側(外側)の保守モードにして電源投入すればSDブートします。
TeraTermなどのターミナルソフトで以下の状態で boot 入力でインストール開始します。
U-Boot 2018.03-at1 installer+ (Apr 04 2018 - 21:17:22 +0900)
CPU: Freescale i.MX6ULL rev1.0 at 396 MHz
Reset cause: POR
DRAM: 512 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
In: serial
Out: serial
Err: serial
Net: FEC
Warning: FEC (eth0) using random MAC address - 5a:fd:55:1c:bb:91
コマンドboot入力
=> boot
初めてbootするとwarningが出ます。
こちらを参照して env save
します。
「初めて起動した時は、 U-Boot の環境変数が eMMC に書き込まれていないために、上記のような Warning が表示されます。
env save すると、次の起動から表示されなくなります。 詳しくは 9章ブートローダー (U-Boot) 仕様 を参照してください。」
初期化状態のArmadilloに各種設定を行う
インストール直後です。Debian 9 Stretch Kernel 4.14-at25 になりました。
root@armadillo:~# uname -a
Linux armadillo 4.14-at25 #1 Fri Sep 25 14:24:36 JST 2020 armv7l GNU/Linux
root@armadillo:~# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
...
root@armadillo:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 10M 0 10M 0% /dev
tmpfs 100M 1.5M 99M 2% /run
/dev/mmcblk0p2 3.3G 553M 2.6G 18% /
tmpfs 250M 0 250M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 250M 0 250M 0% /sys/fs/cgroup
/dev/mmcblk0gp0 128K 128K 0 100% /opt/license
tmpfs 50M 0 50M 0% /run/user/0
最新状態にupdate
root@armadillo:~#
# apt update
# apt upgrade -y
ネットワーク設定
static ip 設定
Getting start guide より
5.8. ネットワークを使う(Armadillo-600シリーズ向け)
https://manual.atmark-techno.com/armadillo-guide-std/armadillo-guide-std-getting-started_ja-1.1.1/ch05.html#sec_using_network_a600
/etc/interface ファイルを編集してstatic addressへ。
root@armadillo:~#
# vi /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo eth0
iface lo inet loopback
iface eth0 inet static
address 192.0.2.10
netmask 255.255.255.0
network 192.0.2.0
broadcast 192.0.2.255
gateway 192.0.2.1
sshサーバーインストール
「標準状態のArmadilloではSSH Serverが動作していないので、まずはArmadilloにopenssh-serverをインストールします。」
root@armadillo:~#
# apt install openssh-server
参考:8.1. アプリケーションプログラムの作成
8.1.1 Hello World!
https://manual.atmark-techno.com/armadillo-guide-std/armadillo-guide-std-getting-started_ja-1.1.1/ch08.html#sec_hello_world
localeにen_US.UTF-8を設定
localeはデフォルトで以下の通り、ja_JP.UTF-8はあるが、en_US.UTF-8が無いので追加します。
atmark@armadillo:~$ locale -a
C
C.UTF-8
POSIX
ja_JP.utf8
locale.genファイルの編集
root@armadillo:~#
# vi /etc/locale.gen
en_US.UTF-8 のコメントを解除
# en_US.ISO-8859-15 ISO-8859-15
en_US.UTF-8 UTF-8
# en_ZA ISO-8859-1
コマンド実行
root@armadillo:~#
# locale-gen
確認
# locale -a
C
C.UTF-8
POSIX
en_US.utf8
ja_JP.utf8
locale 設定
root@armadillo:~#
# localectl set-locale LANG=en_US.UTF-8
確認
# localectl status
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: n/a
# locale
LANG=en_US.utf8
LANGUAGE=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
以上で最小限の初期設定が完了しました。
アプリケーション、ユーティリティのインストール
後は好みで
tmux
# apt install tmux
locale で en_US.UTF-8を入れておかないとtmuxは以下のエラーで実行できません。
atmark@armadillo:~$ tmux
tmux: need UTF-8 locale (LC_CTYPE) but have ANSI_X3.4-1968
python
python 2.7.13
python 3.5.3
# apt install python3-pip
Node-RED
Node-RED User Group Japanに書かれている手順でインストールしました。Raspberry Pi用の手順ですが、
「Debianベースのオペレーティングシステムで動作します」とありますのでこちらを使います。
インストール中にラズパイ用のNodeをインストールするかと聞かれるので、それは「No」を選択しました。
Node-RED User Group Japan – Node-RED インストール
https://nodered.jp/docs/getting-started/raspberrypi
まずcurlをインストール
# apt install curl
ラズパイと同じ方法でnode-red install ラズパイ用nodeはインストールせず。
# bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
確認。nodeも同時にインストールされます。
# node -v
v12.19.0
# node-red -h
Node-RED v1.2.2
起動
$ node-red-start
停止
$ node-red-stop
無事にNode-REDも起動できました。
まとめ
イメージディスクによる初期化インストールそのものは製品マニュアル通りに行えば簡単です。
その後の設定は個人任せで、ちょっとつまずいたりもしますので未来の自分の為に記録しました。