先日買ったOrangePi3Bには専用のeMMCインターフェースが存在している。 今回アリエクから購入したOrangePiは32GBのeMMCがセットになっている商品の為、MicroSDカードを使わずeMMCを使ったUbuntuの実行方法について紹介。
注意
今回行った手順は公式のユーザーマニュアルを元に行った物である。ユーザーマニュアルが更新される等により今回記載している方法と異なって居る場合があるので留意して欲しい。
eMMCへの焼き込み手段
eMMCへの焼き込み手段は大まかに二通り存在する
- 公式の提供するツールを使う(WindowsOSが必要)
- SDカードからLinuxを起動してOrangePiからeMMCへ書き込む
前者のツールを使う手段はマニュアルを見た感じ雑に出来そうな所があったが、USB-AMale to USB-AMaleケーブルが必要になる。また、Windowsのツールがバリバリ中国語&クローズドソースっぽく若干怖かった為、今回は後者のSDカードでLinuxを起動した状態からの書き込みを行った。当然Linuxが起動出来るMicroSDカードが一枚必要になるので注意。
準備する物
今回はRockChip向けにパッチが当てられたUbuntu22.04LTSを使っていきます。SDカードで実行するOSもeMMCに書き込むOSも両方このOSの想定です。
- ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img.xz
(デスクトップが焼きたいならdesktopを選ぶ) - 適当なMicroSDカード
今回はコスパ的に32GBを選んだ
手順
MicroSDカードヘのUbuntuインストールは調べて行って下さい。山程転がっています。
SDカードにUbuntuを保存
現在OrangePi3BのMicroSDカードから起動しているUbuntuに、ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img.xz
を保存します。SDカードに同じOSを焼いていれば手元にあるはずなので、sftp等でOrangePiに転送してください。何かしらの理由で転送が出来ない場合はcurlやwgetで再度リポジトリのリリースから取得を行ってSDカード上に保存して下さい。
eMMCを接続
一度SDカードから実行しているOrangePiの電源を落として、基板背面のeMMCインターフェースにeMMCを取り付け、その後再起動。eMMCには有効なOSが入っていないはずなので再度SDカードから起動が行われる。
.xzの解凍
ここからSDカードのDocumentフォルダ直下に
ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img.xz
が保存されていると仮定します。 まず以下のコマンドで.xzを解凍
xz -d ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img.xz
解凍後Document直下にubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img
が存在する事を確認する。
eMMDの接続ノードを確認
以下のコマンドでeMMCのノードを確認する。
ls /dev/mmcblk*boot0 | cut -c1-12
実行後/dev/mmcblk0
といった具合にeMMCの接続先が表示される。このディレクトリは今後のコマンドで使用するので把握する事。
eMMCの初期化
以下のコマンドを使い接続しているeMMCの初期化を行います。
sudo dd bs=1M if=/dev/zero of='先程のノード' count=1000 status=progress
sudo sync
若干時間がかかる筈。
Ubuntuのコピー
ddコマンドを用いてeMMCへUbuntuを書き込む
sudo dd bs=1M if=ubuntu-22.04.3-preinstalled-server-arm64-orangepi-3b.img of='先程のノード' status=progress
sudo sync
こちらもまあまあ時間がかかる筈。
コマンドが完了したらシャットダウンしてSDカードを抜いてから再度起動したらeMMCからOSが起動する。サーバーOSを焼いた場合ユーザー名パスワード共にubuntu
となっている。
ドキュメント読むのは面倒だったが実際やる分にはそこまで難しくなかった。