1
0

More than 1 year has passed since last update.

RZBoard V2LでUbuntu

Last updated at Posted at 2023-05-17

RZBOARD V2L(Avnet製)にUbuntu base 22.04LTSを導入します。

ブートドライブ

/dev/mmcblk0がmSDまたはeMMCに割り当てられています。内蔵mSDスロットとeMMCは排他利用で、同時に利用することができないようです。
これに関してAvnetドキュメントを見るとこんなことが書かれています。

3.9 Storage

Note:Due to the SD card and eMMC flash shar e the same hardware interface. Therefore, the system starts from SD card if it detects an SD card, and starts from eMMC if it does not,cannot use SD card and eMMC at the same time.

2.2 Booting RZBoard

RzBoard supports Linux boot from eMMC or SD card.
a) Booting u-boot and the Linux System image from eMMC
b) Booting u-boot from QSPI flash, booting Linux system image from SD card

それから、電気的にはSDスロットが空で BOOT0信号 が1、挿入されていると0だと思います。

出荷時ブートローダーの書き込み

bootloaderが書き変わっている場合、出荷時ROM (RZBoard_dashboard_eMMC.zip)を入手し、これに含まれるflash_bootloader.batを使ってQSPI flashにubootを書き込みます。

2.1.4 Procedure to Reflash the Bootloader Firmware
https://avnet.me/RZBoard_emmc

eMMCへの書き込みではありません。
flash_bootloader.batを実行すると書き込み先を訊かれますので、QSPIを選びます。

mSD上にrootFSを構築

出荷時Linuxイメージ(avnet-core-image-rzboard-20221213083153.rootfs.wic)を書き込んだmSDカードを用意します。
容量32GBytes程度のmSDを用意すると良いでしょう。mSDには/dev/mmcblk0p1 (/boot, 100MBytes)と/dev/mmcblk0p2 (poky, 3GBytes)が存在し、残りは未使用領域のはずです。

mSDの未使用領域にUbuntu baseのrootFSを作成します。
  1. mSDの未使用領域に/dev/mmcblk0p3パーティションを作成
  2. ext4でフォーマット(mkfs.ext4 /dev/mmcblk0p3などとします)
  3. /dev/mmcblk0p3にubuntu-base-18.04*-base-arm64.tar.gzとmodules*.tgzのふたつを展開します。
    image.pngimage.png

このmSDからRZBoard V2Lを起動します。
/dev/mmcblk0p2の出荷時Linuxイメージ(poky)でブートし、rootでログインします。
Linux(poky)が起動したらまず、ネットワークがreachableで正常に名前解決ができることを確認しておきましょう。(以下の作業はUbuntuリポジトリに接続できる環境が前提です。)

chrootしてpathを偽装しつつ、aptコマンドで環境構築します。
# cd /lib/modules/5.10.83-cip1-g51ea567d6d/
/lib/modules/5.10.83-cip1-g51ea567d6d# depmod -a
/lib/modules/5.10.83-cip1-g51ea567d6d# cd

# export TZ=JST-9
# date -s "2023/5/1 12:34:56"
Thu May 1 12:34:56 JST 2023

# mount /dev/mmcblk0p3 /mnt

# mount -t proc none /mnt/proc
# mount -t sysfs none /mnt/sys
# mount -t devtmpfs none /mnt/dev
# chroot /mnt /bin/bash

# echo nameserver 8.8.8.8 >/etc/resolv.conf
# apt update

# apt install -y apt-utils perl-modules ubuntu-standard
# apt install -ynano vim net-tools ssh sudo tzdata rsyslog udev iputils-ping

# apt full-upgrade
  1. カレントディレクトリを /lib/modules/に移動し、depmod -aコマンドを実行します。
  2. システム時刻を正しい現在日時に設定します。(aptパッケージデータベースの日時判定を正しく動作させるため)
  3. Ubuntu baseのrootFSをマウントします。
  4. Ubuntu baseの/にchrootします。(chrootコマンドの実行でエラーが返る場合、ここまでの準備に誤りがあることを意味します)
  5. DNSサーバーを仮設定しパッケージデータベースを更新します。(Ubuntuリポジトリに接続するため)
  6. 必須コマンド等をインストール
  7. Ububtu 18 LTSの更新があるはずなのでアップグレード

(TimeZone設定)image.png表示されたら、Asia/Tokyoを指示します。

続いてネットワーク廻りの初期設定を行います。
# cd /etc/systemd/network
/etc/systemd/network# ls
/etc/systemd/network# nano 01-eth0.network
/etc/systemd/network# cat 01-eth0.network
[Match]
Name=eth0

[Network]
DHCP=ipv4
/etc/systemd/network# cd /etc
/etc# nano shadow
/etc# cat shadow
root::187655:0:99999:7:::
…
/etc# cd /etc/ssh/

/etc/ssh# nano sshd_config
/etc/ssh# cat sshd_config
…
permitRootlogin yes
…
/etc/ssh# cd
  1. DHCPクライアントの設定をします。
  2. rootアカウントでSSH接続するための設定をします。

(/etc/systemd/network/01-eth0.network)
image.png
(/etc/shadow)
image.png
(/etc/ssh/sshd_config)
image.png

systemd-networkdサービスの初期設定をします。
# systemctl enable systemd-networkd
# cp /usr/share/systemd/tmp.mount /etc/systemd/system/tmp.mount
# systemctl enable tmp.mount
# systemctl enable systemd-resolved
# rm /etc/resolv.conf -f
# ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
chroot環境を終了して再起動

リブートしたら2秒以内にキーを押してU-Bootメニュー投入します。

# ^D
exit
# reboot
…
U-Boot 2021.01 (Jun 1 2021 - 00:36:02 +0000)
…
Hit any key to stop autoboot: 0

rootFSを/dev/mmcblk0p3に切り替えてブートします。

=> setenv bootargs 'rw rootwait earlycon root=/dev/mmcblk0p3'
=> setenv mmcbootargs 'setenv bootargs rw rootwait earlycon root=/dev/mmcblk0p3'
=> saveenv
=> run bootcmd

image.png

rootアカウントは初期パスワード無しです。ターミナルからログインできることを確認して完了です。
image.png
この時点のUbuntu baseは18.04 LTSです。デスクトップ版のUbuntu同様に、do-release-upgradeコマンドで20.04 LTSにアップグレートできます。

# apt update
# apt install update-manager-core
# apt full-upgrade
# do-release-upgrade

image.pngimage.pngimage.pngimage.png
20.04 LTSからもう一度do-release-upgradeコマンドを実行することでで22.04 LTSにアップグレートできます。

# apt update
# apt full-upgrade
# do-release-upgrade

image.pngimage.png

とりあえずここまで。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0