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カーネル、ルートファイルシステムで起動します。