Armadillo-640 をインストールディスクイメージで初期化して環境構築する – Node-REDもインストールしてみる

以前カーネルをアップデートした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 します。

5.1. 起動
https://manual.atmark-techno.com/armadillo-640/armadillo-640_product_manual_ja-1.15.0/ch05.html#sec-boot

「初めて起動した時は、 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も起動できました。

まとめ

イメージディスクによる初期化インストールそのものは製品マニュアル通りに行えば簡単です。
その後の設定は個人任せで、ちょっとつまずいたりもしますので未来の自分の為に記録しました。

参考記事

Armadillo-640でUSBを使う – ATDEでカーネルをビルドする

コメントを残す

メールアドレスが公開されることはありません。

1 × 4 =