はじめに
Ubuntu MateがRaspberry Pi 3 B+に対応しておらず、インストールしても起動できない。
起動できるようにするまでの手順をメモとして残す。
参考記事
手順
まず、Ubuntu Mateを通常手順でmicroSDカードにインストールする。
ダウンロード:https://ubuntu-mate.org/raspberry-pi/
microSDにイメージを焼く手順も上記URLに記載されているもので良い。
イメージを焼けたらmicroSDをマウントして、PI_BOOTとPI_ROOTがあることを確認する。
次にRasbianをダウンロードする。
ダウロードURL:https://www.raspberrypi.org/downloads/raspbian/
unzip 2018-11-13-raspbian-stretch-full.zip # zipファイル展開
fdisk -l 2018-11-13-raspbian-stretch-full.img # マウント位置を確認(※)
mkdir mnt # 一時的なマウントポイントを作成
sudo mount -o loop,offset=<boot開始位置> 2018-11-13-raspbian-stretch-full.img ./mnt/ # boot領域をマウント
cd ./mnt
cp -p bootcode.bin fixup.dat start.elf kernel7.img bcm2710-rpi-3-b-plus.dtb /<microSDのマウントポイント>/PI_BOOT/ # 必要なファイルを上書き
cd ..
sudo umount ./mnt # bootとroot領域を同時にマウントできないのでboot領域をアンマウント
sudo mount -o loop,offset=<root開始位置> 2018-11-13-raspbian-stretch-full.img ./mnt/
sudo cp -pr mnt/lib/firmware/brcm /<microSDのマウントポイント>/PI_ROOT/lib/firmware/ # brcmを上書き
sudo cp -pr mnt/lib/modules/4.14.* /<microSDのマウントポイント>/PI_ROOT/lib/modules/ # modulesをコピー
sudo umount ./mnt
※マウント位置の確認方法
fdisk
コマンドでイメージの開始位置のセクタ数を確認する。
セクタサイズが512バイトになっているはずなので、開始位置×512をマウントコマンドのoffsetに指定する。
下の例だと
boot:8192×512=4194304
root:98304×512=50331648
を<開始位置>に指定すれば良い。
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
2018-11-13-raspbian-stretch-full.img1 8192 98045 89854 43.9M c W95 FAT32 (LBA)
2018-11-13-raspbian-stretch-full.img2 98304 10346495 10248192 4.9G 83 Linux
以上の手順でmicroSDにmodel B+で起動できるイメージが書き込まれた状態になる。