Armadillo-X1, Armadillo-IoT G3/G3Lでは、インストールディスクでLinuxカーネル、ルートファイルシステムを更新する仕組みがあります。インストールディスクを使用する方法では、SDカードを使用する必要がありますが、なんらかの理由によりSDカードを使用せずUSBメモリを使用したい場合があるかと思います。
そのため、ここではUSBメモリを使用して、eMMCのLinuxカーネル、ルートファイルシステムを更新する方法について紹介します。
1. USBメモリの環境構築
本手順では、USBメモリのルートファイルシステムから起動し、eMMC上のLinuxカーネル、ルートファイルシステムを更新します。
そのため、まずは以下のブログの手順を元にUSBメモリのルートファイルシステムから起動できるようUSBメモリを構築してください。
2. USBメモリに更新したいファイルを配置
以下のコマンドを実行し、USBメモリの/rootディレクトリに更新したいファイルを配置します。
[atde ~]$ umount /dev/sdb1
[atde ~]$ mkdir usb
[atde ~]$ sudo mount -t ext4 /dev/sdb1 usb
[atde ~]$ sudo cp [Linuxカーネル] usb/root
[atde ~]$ sudo cp [DTBファイル] usb/root
[atde ~]$ sudo cp [Debian GNU/Linuxルートファイルシステム] usb/root
[atde ~]$ sudo umount usb
[atde ~]$ rmdir usb
※: [Linuxカーネル]、[DTBファイル]、[[Debian GNU/Linuxルートファイルシステム]は、使用環境によって実際のファイル名に読み替えてください。
3. USBメモリのルートファイルシステムから起動する
USBメモリをPCから抜去した後、Armadilloに挿入し、保守モードで起動してください。
保守モードで起動した後、以下のコマンドを実行し、USBメモリのルートファイルシステムを起動してください。
=> printenv mmcroot
mmcroot=/dev/mmcblk2p2 rootwait rw
=> setenv mmcroot /dev/sda1 rootwait rw
=> printenv mmcroot
mmcroot=/dev/sda1 rootwait rw
=> boot
Linuxカーネル、DTBファイルの更新
以下のコマンドを実行して、LinuxカーネルとDTBファイルを更新してください。
[armadillo ~]# mount -t vfat /dev/mmcblk2p1 /mnt
[armadillo ~]# cp [Linuxカーネル] /mnt/
[armadillo ~]# cp [DTBファイル] /mnt/
[armadillo ~]# umount /mnt
以下のコマンドを実行してルートファイルシステムの更新を行ってください。
[armadillo ~]# mkfs.ext4 /dev/mmcblk2p2
[armadillo ~]# mount -t ext4 /dev/mmcblk2p2 /mnt
[armadillo ~]# tar zxf [Debian GNU/Linuxルートファイルシステム] -C /mnt
[armadillo ~]# umount /mnt
※: [Linuxカーネル]と[DTBファイル]を/mntに配置する際にはファイル名を、各製品の適切ファイル名に変更してください。
上記コマンドを実行後、再起動を行うと新しいLinuxカーネル、ルートファイルシステムで起動します。