起動と終了

5.1. 起動

電源入力インターフェースに電源を接続すると Armadillo-IoT ゲートウェイ G4 が起動します。起動すると CON6 (USB コンソールインターフェース) から起動ログが表示されます。

[注記]

Armadillo-IoT ゲートウェイ G4 の電源投入時点でのジャンパ JP1 の状態によって起動モードが変化します。 詳しくは 「JP1(起動デバイス設定ジャンパ)」 を参照してください。

以下に起動ログの例を示します。

U-Boot SPL 2020.04-at7 (May 21 2022 - 11:21:55 +0900)
DDRINFO: start DRAM init
DDRINFO: DRAM rate 4000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
image offset 0x0, pagesize 0x200, ivt offset 0x0
NOTICE:  BL31: v2.4(release):lf-5.10.y-1.0.0-0-gba76d337e956
NOTICE:  BL31: Built : 11:08:22, Apr  6 2022


U-Boot 2020.04-at7 (May 21 2022 - 11:21:55 +0900)

CPU:   i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 26C
Model: Atmark-Techno Armadillo X2 Series
DRAM:    Hold key pressed for tests: t (fast) / T (slow)
2 GiB
WDT:   Started with servicing (10s timeout)
MMC:   FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In:    serial
Out:   serial
Err:   serial

 BuildInfo:
  - ATF ba76d33
  - U-Boot 2020.04-at7

first boot since power on
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:   eth0: ethernet@30be0000 [PRIME], eth1: ethernet@30bf0000
Fastboot: Normal
Saving Environment to MMC... Writing to redundant MMC(2)... OK
Normal Boot
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc2(part 0) is current device
31051784 bytes read in 675 ms (43.9 MiB/s)
Booting from mmc ...

## Checking Image at 40480000 ...
Unknown image format!
60012 bytes read in 5 ms (11.4 MiB/s)
## Flattened Device Tree blob at 45000000
   Booting using the fdt blob at 0x45000000
   Using Device Tree in place at 0000000045000000, end 0000000045011a6b

Starting kernel ...

[    1.606026] imx6q-pcie 33800000.pcie: invalid resource
[    2.618095] imx6q-pcie 33800000.pcie: failed to initialize host
[    2.624095] imx6q-pcie 33800000.pcie: unable to add pcie port.

   OpenRC 0.44.7.10dab8bfb7 is starting up Linux 5.10.117-r0 (aarch64)

 * Mounting /proc ... [ ok ]
 * Mounting /run ... * /run/openrc: creating directory
 * /run/lock: creating directory
 * /run/lock: correcting owner
 * Caching service dependencies ... [ ok ]
 * Starting rngd ... * Mounting /sys ... * Remounting devtmpfs on /dev ... [ ok ]
 [ ok ]
 * Mounting security filesystem ... [ ok ]
 * Mounting config filesystem ... [ ok ]
 [ ok ]
 * Mounting fuse control filesystem ... * Mounting /dev/mqueue ... [ ok ]
 [ ok ]
 * Mounting /dev/pts ... [ ok ]
 * Mounting /dev/shm ... [ ok ]
fsck_atlog        | * Checking at-log filesystem /dev/mmcblk2gp1 ...udev              | * Starting udev ... [ ok ]
 [ ok ]
cryptsetup        | * Decrypting encrypted secondary partitions ...overlayfs         | * Preparing overlayfs over / ... [ ok ]
 [ ok ]
udev-trigger      | * Generating a rule to create a /dev/root symlink ...hostname          | * Setting hostname ... [ ok ]
 [ ok ]
udev-trigger      | * Populating /dev with existing devices through uevents ... [ ok ]
fsck              | * Checking local filesystems  ... [ ok ]
root              | * Remounting filesystems ... [ ok ]
localmount        | * Mounting local filesystems ... [ ok ]
urandom           | * Saving 4096 bits of creditable seed for next boot
bootmisc          | * Migrating /var/lock to /run/lock ... [ ok ]
bootmisc          | * Creating user login records ... [ ok ]
bootmisc          | * Wiping /var/tmp directory ... [ ok ]
dbus              | * /run/dbus: creating directory
dbus              | * /run/dbus: correcting owner
micron-emmc-reten | * Starting micron-emmc-reten
dbus              | * Starting System Message Bus ...syslog            | * Starting busybox syslog ... [ ok ]
 [ ok ]
networkmanager    | * Starting networkmanager ... [ ok ]
buttond           | * Starting button watching daemon ...podman-atmark     | * Starting configured podman containers ... [ ok ]
 [ ok ]
reset_bootcount   | * Resetting bootcount in bootloader env ...Environment OK, copy 1
chronyd           | * Starting chronyd ...reset_bootcount   | [ ok ]
sshd              | * Starting sshd ... [ ok ]
 [ ok ]
local             | * Starting local ... [ ok ]

Welcome to Alpine Linux 3.15
Kernel 5.10.117-r0 on an aarch64 (/dev/ttymxc1)

armadillo login:

U-Boot プロンプト

USB コンソールインターフェース に"Hit any key to stop autoboot:" が出力されている間に何かしらのキー入力を行うと U-Boot のプロンプトが表示されます。この間にキー入力がなければ自動的に起動します。

: (省略)
 BuildInfo:
  - ATF ba76d33
  - U-Boot 2020.04-at7

first boot since power on
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:   eth0: ethernet@30be0000 [PRIME], eth1: ethernet@30bf0000
Fastboot: Normal
Saving Environment to MMC... Writing to redundant MMC(2)... OK
Normal Boot
Hit any key to stop autoboot:  0
u-boot=>

5.2. ログイン

起動が完了するとログインプロンプトが表示されます。「root」か一般ユーザーの「atmark」でログインすることができます。

「SWUイメージの作成」 の手順で initial_setup.swu を適用した Armadillo の 「root」、「atmark」ユーザーには、 initial_setup.swu 作成時に入力したパスワードが設定されます。

initial_setup.swu を適用しない場合、「root」ユーザーは初回ログイン時にパスワードを入力せずに新しいパスワードを促されます。 「atmark」ユーザーは、初期状態ではロックされています。そのロックを解除するには、「root」ユーザーでログインし、 passwd atmark コマンドで「atmark」ユーザーのパスワードを設定してください。

設定するパスワードには大文字のアルファベット、小文字のアルファベット、0から9までの数字、その他(記号・句読点など)を含める事ができます。

  1. root でログイン

    初期パスワードを変更します。

    armadillo login: root
    You are required to change your password immediately (administrator enforced).
    New password: 1
    Retype new password: 2
    Welcome to Alpine!

    1

    新しいパスワードを入力します

    2

    新しいパスワードを再入力します

  2. atmark でログイン

    初期状態でロックされてますので、rootで一度パスワードを設定してからログインします。

    armadillo:~# passwd atmark 1
    New password:
    Retype new password:
    passwd: password updated successfully
    armadillo:~# persist_file /etc/shadow 2
    armadillo:~# exit
    
    Welcome to Alpine Linux 3.16
    Kernel 5.10.118-1-at on an aarch64 (/dev/ttymxc1)
    
    armadillo login: atmark
    Password: 3
    Welcome to Alpine!

    1

    atmarkユーザーのパスワード変更コマンド。「SWUイメージの作成」 を使用した場合には不要です

    2

    パスワードファイルを永続化します。

    3

    設定したパスワードでログインすることができます。

[警告]

Armadillo BaseOS ではルートファイルシステムに overlayfs を採用しており、そのままではシステムが OFF すると内容は消えてしまいます。そのため persist_file コマンドが用意されています。このコマンドを利用することでファイル単位で変更を反映することができます。パスワードを設定した後には以下のコマンドを実行してください。

[armadillo ~]# persist_file /etc/shadow

persist_file コマンドに関する詳細は「overlayfs と persist_file について」を参照してください。

5.3. 終了方法

eMMC や USB メモリ等に書き込みを行っている時に電源を切断すると、データが破損する可能性が有ります。 安全に終了させる場合は、次のように poweroff コマンドを実行し、「reboot: Power down」と表示されたのを確認してから電源を切断します。

[armadillo ~]# poweroff
* WARNING: clock skew detected!
urandom          | * Saving random seed ...chronyd          | * Stopping chronyd ...syslog           | * Stopping busybox syslog ... [ ok ]
overlayfs        | * Unmounting /etc ...rngd             | * Stopping rngd ...podman-atmark    | * Stopping Start podman containers ... [ ok ] [ ok ]

 * start-stop-daemon: no matching processes found
podman-atmark    | [ ok ]
 [ ok ]
udev             | * Stopping udev ...hwclock          | * Setting hardware clock using the system clock [UTC] ... [ ok ]
 * in use but fuser finds nothing
overlayfs        | [ !! ]
overlayfs        | * Unmounting /dev/shm/overlay_etc_lower ... [ ok ]
networkmanager   | * Stopping networkmanager ...overlayfs        | * Unmounting /var ...nm-dispatcher: req:1 'connectivity-change': find-scripts: Cannot execute '/etc/Netw.
 [ ok ]
dbus             | * Stopping System Message Bus ...nm-dispatcher: System bus stopped. Exiting
 * in use but fuser finds nothing
overlayfs        | [ !! ]
 [ ok ]
overlayfs        | * Unmounting /dev/shm/overlay_var_lower ... [ ok ]
overlayfs        | * Unmounting /root ... [ ok ]
overlayfs        | * Unmounting /dev/shm/overlay_root_lower ... [ ok ]
localmount       | * Unmounting loop devices
overlayfs        | * Unmounting /home ...localmount       | * Unmounting filesystems
localmount       | *   Unmounting /var/tmp ... [ ok ]
localmount       | *   Unmounting /var/app/volumes ... [ ok ]
localmount       | *   Unmounting /var/app/rollback/volumes ... [ ok ]
localmount       | *   Unmounting /var/lib/containers/storage_readonly ... [ ok ]
localmount       | *   Unmounting /var/log ... [ ok ]
localmount       | *   Unmounting /tmp ... [ ok ]
localmount       | *   Unmounting /home ...
 *   in use but fuser finds nothing
localmount       | [ !! ]
localmount       | *   Unmounting /var ... [ ok ]
localmount       | *   Unmounting /etc ... *   in use but fuser finds nothing
localmount       | [ !! ]
 [ ok ]
overlayfs        | * Unmounting /dev/shm/overlay_home_lower ... [ ok ]
killprocs        | * Terminating remaining processes ...mount-ro         | * Remounting remaining filesystems read-only ... *   Remounting /etc read only ... [ ok ]
mount-ro         | *   Remounting / read only ... [ ok ]
mount-ro         | [ ok ]
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
Requesting system poweroff
[   62.855146] imx2-wdt 30280000.watchdog: Device shutdown: Expect reboot!
[   62.862470] reboot: Power down

poweroff コマンドを使用せずに安全に終了できるかは、3G/LTE モジュールを搭載しているかによっても変わります。

5.3.1. 3G/LTE モジュールが搭載されていない場合

Podman コンテナの保存先が tmpfs であり、eMMC への書き込みを行っていない場合は、poweroff コマンドを使用せずに電源を切断することが可能です。

Podman コンテナの保存先が eMMC の場合や、頻繁に rootfs 等の eMMC にあるボリュームを変更するような開発段階においては、poweroff コマンドを実行し、「reboot: Power down」と表示されたのを確認してから電源を切断してください。

5.3.2. 3G/LTE モジュールが搭載されている場合

3G/LTE モジュールは poweroff 時にシャットダウン処理を行いますので、3G/LTE モジュールが搭載されている Armadillo-IoT ゲートウェイ G4 の場合は、電源を切断する前に必ず poweroff コマンドを実行し、「reboot: Power down」と表示されたのを確認してから電源を切断してください。

コンソールを確認できない環境で、スイッチなどを使用して電源オフ操作を実施する場合は、電源オフ操作実施後 3G/LTE ステータス確認用 LED (LED20) が消灯されたのを確認してから AC アダプタを抜いてください。3G/LTE ステータス確認用 LED の場所は、 図4.14「インターフェースレイアウト LTEモデル(ケース正面)」 を参照してください。

[警告]

haltコマンドで終了させた場合、「reboot: System halted」と表示されてから約128秒後、Armadilloは自動的に再起動します。確実に終了させるためにもpoweroffコマンドを利用してください。

[警告]

電源を再投入する際は、コンデンサに蓄えられた電荷を抜くため、電源を切断後、一定時間以上待つ必要があります。 開発セット付属のACアダプタの場合に必要な時間は以下のとおりです。

  • DCプラグ側で電源を切断した場合 : 約5秒
  • ACプラグ側で電源を切断した場合 : 約1分

コンデンサに蓄えられた電荷が抜ける前に電源を再投入した場合、 電源シーケンスが守られず、起動しない等の動作不具合の原因となります。