Armadilloフォーラム

出荷時のイメージ書き込みにて、USBメモリは使用可能でしょうか?

aka123

2022年12月21日 13時10分

下記ページより出荷時のイメージ書き込み方法を参照しましたが
SDカードではなく、USBメモリによる出荷時のイメージ書き込みは可能でしょうか?
https://armadillo.atmark-techno.com/blog/1913/2396

コメント

入江です。

ご存知の通り、自動でUSBブートするためにはeMMCの所定の位置にUSBブート用のboot.scrを予め配置しておく必要があります。
ですが、お客様の手元に届いたばかりのArmadilloには標準イメージが書かれており、USBブート用のboot.scrはありません。
そのため、出荷時のイメージ書き込みをUSBメモリで行なう場合、Armadillo-X1 + USBメモリだけでは実現できません。

代案としましては、
1. Armadillo-X1のROM書き込みサービスを使用する
2. イメージ書き込み時にシリアルコンソール経由でコマンドを実行しUSBブートする
が挙げられます。

「1. Armadillo-X1のROM書き込みサービスを使用する」は、アットマークテクノのサービスとして、
お客様から製品のイメージをいただき、Armadilloに書き込んでから出荷するというものがあります。
こちらを利用すれば、USBメモリでイメージ書き込みをしていただく必要はありません。
詳細は以下からご確認ください。
https://armadillo.atmark-techno.com/services/customize/rom-image

「2. イメージ書き込み時にシリアルコンソール経由でコマンドを実行しUSBブートする」は、少し手間はかかりますが、
お客様の方でイメージ書き込みをUSBメモリから行なっていただける選択肢です。

U-bootのプロンプトに手動でコマンドを打っても、USBブート用のboot.scrと同じことができます。
そこで、イメージ書き込み作業時にArmadillo-X1にUSBメモリだけでなく、USBシリアル変換アダプタを作業用PCと接続していただき、
U-bootのプロンプトで以下のようなboot.scr相当のコマンドを実行することで、USBメモリ内のイメージでArmadilloを起動できます。

=> usb start
=> setenv usbroot /dev/sda2 rootwait rw
=> fatload usb 0:1 ${fdt_addr} ${fdt_file}
=> fatload usb 0:1 ${loadaddr} ${image}
=> setenv bootargs console=${console},${baudrate} root=${usbroot} ${optargs}
=> bootm ${loadaddr} - ${fdt_addr}

この「boot.scr相当のコマンドを実行」を手動で1台1台行なっても良いですが、例えばTeraTermならばTeraTermマクロを
書くなど、自動化の手段も様々あります。

USBメモリ内のイメージで起動できたならば、以下の製品マニュアルにある各イメージの書き換え手順にしたがって、
eMMC内のイメージを書き換えるシェルスクリプトなどを配置し、自動実行するようにすれば、
USBメモリを使ったイメージ書き込みが可能となります。
https://manual.atmark-techno.com/armadillo-x1/armadillo-x1_product_manu…

ご回答頂き、ありがとうございます。
boot.scrの配置以外にも別の手法で、USBブートが可能なこと了解致しました。

イメージの書き換えにつきまして、
OSのリリースバージョンをDebian Linux10(buster)からLinux9(stretch)に置き換えたい場合は、
ブートローダーイメージ、Linuxカーネルイメージ、DTBの書き換えは必要なく、
以下ページのルートファイルシステムの書き換えのみ行う形で問題ないでしょうか?
https://armadillo.atmark-techno.com/resources/software/armadillo-x1/use…

またルートファイルシステムを書き換える際、
以下ページのようにmkfsコマンドの代わりに
# mount -t ext4 /dev/mmcblk2p2 /mnt
でマウント後、
# rm -rf /mnt/*
にeMMCの第2パーティションを全消去してから
ルートファイルシステムを展開する形でも問題ないでしょうか?
https://armadillo.atmark-techno.com/blog/615/3357

at_akihito.irie

2023年1月6日 18時43分

入江です。

> イメージの書き換えにつきまして、
> OSのリリースバージョンをDebian Linux10(buster)からLinux9(stretch)に置き換えたい場合は、
> ブートローダーイメージ、Linuxカーネルイメージ、DTBの書き換えは必要なく、
> 以下ページのルートファイルシステムの書き換えのみ行う形で問題ないでしょうか?
> https://armadillo.atmark-techno.com/resources/software/armadillo-x1/use…
>
> またルートファイルシステムを書き換える際、
> 以下ページのようにmkfsコマンドの代わりに
> # mount -t ext4 /dev/mmcblk2p2 /mnt
> でマウント後、
> # rm -rf /mnt/*
> にeMMCの第2パーティションを全消去してから
> ルートファイルシステムを展開する形でも問題ないでしょうか?
> https://armadillo.atmark-techno.com/blog/615/3357

はい。どちらについても問題ありません。

入江様
いつもお世話になっております。

> 入江です。
>
> > イメージの書き換えにつきまして、
> > OSのリリースバージョンをDebian Linux10(buster)からLinux9(stretch)に置き換えたい場合は、
> > ブートローダーイメージ、Linuxカーネルイメージ、DTBの書き換えは必要なく、
> > 以下ページのルートファイルシステムの書き換えのみ行う形で問題ないでしょうか?
> > https://armadillo.atmark-techno.com/resources/software/armadillo-x1/use…
> >
> > またルートファイルシステムを書き換える際、
> > 以下ページのようにmkfsコマンドの代わりに
> > # mount -t ext4 /dev/mmcblk2p2 /mnt
> > でマウント後、
> > # rm -rf /mnt/*
> > にeMMCの第2パーティションを全消去してから
> > ルートファイルシステムを展開する形でも問題ないでしょうか?
> > https://armadillo.atmark-techno.com/blog/615/3357
>
> はい。どちらについても問題ありません。

了解致しました。
丁寧に解説して頂き、ありがとうございました。