みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

raspberrypi3 model b+ USBブート

ラズベリーパイ3 Model B+は、初期状態でUSBブートが可能になっている。

もともとのラズベリーパイ3(Model B)では、 OTPという一度だけ書き込みができる特殊なメモリの設定を変更することでUSBブートができるらしいのだが、 間違った設定をすると文鎮化するということもあって、なかなか手を出せないでいた。

個人的にはそんなに需要もないし。

やりかた

USBブートの方法は簡単。

今まで、EtcherやWin32DiskImagerでSDに書き込んでいたイメージを、USBストレージに書き込んで、 BOOT用のパーティションにある「cmdline.txt」の「root=/dev/mmcblk0p2」を「root=/dev/sda2」に変更するだけで良い。

そして、ラズベリーパイにSDカードをささずに、USBストレージを挿した状態で電源を投入すると、きちんとLinuxが起動する。

yocto

yocto環境でも簡単。local.confに下記の内容を追加すれば、USBストレージからブートできる。

CMDLINE_remove = "root=/dev/mmcblk0p2"
CMDLINE_append = " root=/dev/sda2"

まとめ

USBブートができるようになると、USBメモリはもちろんUSB接続のハードディスクなどでラズベリーパイを起動できるようになる。

システムのストレージの大容量化や、書き込み回数に制限のあるSDカードでは都合が悪い場合など、いままで使いづらかった用途でも、活用範囲が広がるかもしれない。