起動と終了

5.1. 起動

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

[注記]

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

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

U-Boot SPL 2020.04-at11 (Jan 19 2023 - 10:53:24 +0000)
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):2020.04-at10-0-ge26bfd065
NOTICE:  BL31: Built : 10:54:50, Jan 19 2023


U-Boot 2020.04-at11 (Jan 19 2023 - 10:53:24 +0000)

CPU:   i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 44C
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 e26bfd0
  - U-Boot 2020.04-at11

first boot since power on
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:
Warning: ethernet@30be0000 using MAC address from ROM
eth0: ethernet@30be0000 [PRIME]
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc2(part 0) is current device
28962824 bytes read in 628 ms (44 MiB/s)
Booting from mmc ...
78223 bytes read in 3 ms (24.9 MiB/s)
Loading fdt boot/armadillo.dtb
## Flattened Device Tree blob at 45000000
   Booting using the fdt blob at 0x45000000
   Loading Device Tree to 0000000052bbe000, end 0000000052bf4fff ... OK

Starting kernel ...

[    0.521327] fxl6408 2-0043: FXL6408 probe returned DID: 0xfa
[    0.835647] mdio_bus 30be0000.ethernet-1: MDIO device at address 3 is missing.

   OpenRC 0.45.2 is starting up Linux 5.10.161-0-at (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 ]
fsck                     | * Checking local filesystems  ... [ ok ]
 [ ok ]
root                     | * Remounting filesystems ... [ ok ]
localmount               | * Mounting local filesystems ... [ ok ]
overlayfs                | * Preparing overlayfs over / ... [ ok ]
udev-trigger             | * Generating a rule to create a /dev/root symlink ...sysctl                   | * Configuring kernel parameters ... [ ok ]
hostname                 | * Setting hostname ...udev-trigger             | * Populating /dev with existing devices through uevents ... [ ok ]
 [ ok ]
 [ ok ]
bootmisc                 | * Migrating /var/lock to /run/lock ... [ ok ]
bootmisc                 | * Creating user login records ... [ ok ]
bootmisc                 | * Wiping /var/tmp directory ... [ ok ]
syslog                   | * Starting busybox syslog ...dbus                     | * /run/dbus: creating directory
dbus                     | * /run/dbus: correcting owner
micron-emmc-reten        | * Starting micron-emmc-reten
dbus                     | * Starting System Message Bus ... [ ok ]
 [ ok ]
klogd                    | * Starting busybox klogd ... [ ok ]
networkmanager           | * Starting networkmanager ... [ ok ]
dnsmasq                  | * /var/lib/misc/dnsmasq.leases: creating file
dnsmasq                  | * /var/lib/misc/dnsmasq.leases: correcting owner
dnsmasq                  | * Starting dnsmasq ... [ ok ]
reset_bootcount          | * Resetting bootcount in bootloader env ...buttond                  | * Starting button watching daemon ... [ ok ]
Environment OK, copy 1
reset_bootcount          | [ ok ]
zramswap                 | [ ok ]
podman-atmark            | * Starting configured podman containers ...chronyd                  | * Starting chronyd ...zramswap                 | * Creating zram swap device ... [ ok ]
 [ ok ]
 [ ok ]
local                    | * Starting local ... [ ok ]

Welcome to Alpine Linux 3.17
Kernel 5.10.161-0-at on an aarch64 (/dev/ttymxc1)

armadillo login:

U-Boot プロンプト

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

: (省略)
 BuildInfo:
  - ATF e26bfd0
  - U-Boot 2020.04-at11

reset cause: normal reboot
switch to partitions #0, OK
mmc2(part 0) is current device
flash target is MMC:2
Net:
Warning: ethernet@30be0000 using MAC address from ROM
eth0: ethernet@30be0000 [PRIME]
Fastboot: Normal
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.17
    Kernel 5.10.161-0-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
armadillo:~# zramswap                 | * Deactivating zram swap device ...local                    | * Stopping local ... [ ok ]
dnsmasq                  | * Stopping dnsmasq ... [ ok ]rngd                     | * Stopping rngd ...
podman-atmark            | * Stopping all podman containers ...buttond                  | * Stopping button watching daemon ... [ ok ]
klogd                    | * Stopping busybox klogd ...chronyd                  | * Stopping chronyd ... [ ok ]
 [ ok ]
 [ ok ]
 [ ok ]
networkmanager           | * Stopping networkmanager ...syslog                   | * Stopping busybox syslog ... [ ok ]
udev                     | * Stopping udev ... [ ok ]
 [ ok ]
dbus                     | * Stopping System Message Bus ...nm-dispatcher: Caught signal 15, shutting down...
 [ ok ]
 [ ok ]
localmount               | * Unmounting loop devices
localmount               | * Unmounting filesystems
localmount               | *   Unmounting /opt/firmware ... [ ok ]
localmount               | *   Unmounting /var/at-log ... [ ok ]
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 ]
killprocs                | * Terminating remaining processes ...mount-ro                 | * Remounting remaining filesystems read-only ... *   Remounting / read only ... [ ok ]
mount-ro                 | [ ok ]
indicator_signals        | * Signaling external devices we are shutting down ... [ ok ]
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
Requesting system poweroff
[   88.401459] imx2-wdt 30280000.watchdog: Device shutdown: Expect reboot!
[   88.408763] reboot: Power down

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

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

[警告]

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

[警告]

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

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

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