ブログ

Armadillo-X1, Armadillo-IoT G3/G3L: USBメモリを使用してeMMCのLinuxカーネル、ルートファイルシステムを更新する

at_ito
2017年8月7日 8時11分

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