Raspberry Pi 3でarm64版Ubuntu 18.04 Bionicインストーラーを起動

こちらの画面は、Raspberry Pi 3 Model Bでブートローダー(GRUB2)を起動した画面です。arm64版Ubuntu 18.04 Bionic Beaverのインストーラーを起動する入り口になります。

Raspberry Pi 3用の64ビット(arm64)版Ubuntu 18.04インストールメディア(microSDカードまたはUSBフラッシュメモリー)を作る手順を記録しておきたいと思います。

※インストーラーの起動は確認しましたが、実際にインストールを行えていません。あくまで「起動した」レベルですのでご注意下さい。

※18.8.14追記:新しいUbuntu 18.04.1にて64ビットカーネルを起動する新しい記事が御座います。

以下、上記の記事よりも古い内容となります。


Raspberry Pi 3用arm64版Ubuntu 18.04インストールメディア作成手順

最終的に、下図のような感じのmicroSDカードを作るかたちになります。フォーマットはFAT32になりますので、Windows PCで読み書き可能です。

最初、Raspberry Piでインストールメディアを作成しようと思いましたが、arm64のクロスコンパイルができませんでした。

他の理由もあり、最終的にWindows 10 Pro x64のPCを使用しました。VagrantとVirtualBoxを使用しますので、CPUが仮想化機能(Intel VT-x、AMD-V)に対応していれば、Windows 10無印(Home相当)でも作成できると思います。

基本的にこちらの内容に従ってインストールメディアを作成する流れになります。


Vagrantのインストール

  1. PCにVagrantをインストールします。こちらの記事になります。

VagrantでDebian Stretch64実行

U-bootのクロスコンパイルを行いますが、Ubuntu Xenialではgccのバージョンが低く、コンパイルできませんでした。Debian Stretchで試したところ問題ありませんでしたので、こちらの実行環境を作ろうと思います。

  1. stretch実行環境用のフォルダを作成します。
    mkdir stretch
    cd stretch
  2. vagrantのboxにdebian/stretch64を追加します。選択肢は2)virtualboxを選びました。
    vagrant box add debian/stretch64

  3. vagrant initでVagrantfileを作成します。それとフォルダ同期のためvagrant-vbguestプラグインを入れておきます。
    vagrant init debian/stretch64
    vagrant plugin install vagrant-vbguest

  4. Vagrantfileを編集、config.vm.synced_folder行を追加します。
    config.vm.synced_folder "./", "/vagrant_data"

    /vagrant_dataディレクトリ経由でWindowsのフォルダへアクセスできるようにする設定になります。

  5. stretchを起動してsshでログインします。
    vagrant up
    vagrant ssh

/vagrant_dataディレクトリに、2番で作成したstretch動作環境フォルダがマウントされていると思います。こちらのフォルダに、microSDカード用のファイルをコピーしてゆこうと思います。


U-bootのコンパイル

  1. クロスコンパイラーをインストールして、u-bootのソースをクローン、コンパイルする流れです。
    sudo apt install git make gcc gcc-aarch64-linux-gnu
    git clone --depth 1 git://git.denx.de/u-boot.git
    cd u-boot
    make rpi_3_defconfig
    make CROSS_COMPILE=aarch64-linux-gnu-
  2. system-bootフォルダを作成、インストールメディア用のファイルをコピーしようと思います。
    mkdir /vagrant_data/system-boot
    sudo cp u-boot.bin /vagrant_data/system-boot/kernel8.img

    コンパイルしたu-boot.binファイルは、kernel8.imgにリネームしてコピーします。


dtb(Device Tree Blob)のコピー

  1. dtbファイルをダウンロードしてコピーします。
    cd
    wget http://ports.ubuntu.com/dists/bionic/main/installer-arm64/current/images/device-tree/bcm2837-rpi-3-b.dtb
    mkdir -p /vagrant_data/system-boot/dtb/broadcom/
    sudo cp bcm2837-rpi-3-b.dtb /vagrant_data/system-boot/dtb/broadcom/


ISOコンテンツのコピー

  1. arm64版Ubuntuインストールisoイメージをダウンロードしてコピーします。
    wget http://ports.ubuntu.com/dists/bionic/main/installer-arm64/current/images/netboot/mini.iso
    mkdir /tmp/mini-iso
    sudo mount -o loop -o ro mini.iso /tmp/mini-iso
    sudo cp -rT /tmp/mini-iso /vagrant_data/system-boot/

    ネットワークインストール用のmini.isoで試しましたが、オフラインインストール用メディアでも作れそうな感じです(未確認)。

  2. efiイメージを展開してコピーします。
    mkdir /tmp/efi-img
    sudo mount -o loop -o ro /tmp/mini-iso/boot/grub/efi.img /tmp/efi-img/
    sudo cp -rT /tmp/efi-img /vagrant_data/system-boot/
  3. イメージをアンマウントします。
    sudo umount /tmp/efi-img
    sudo umount /tmp/mini-iso


カーネルとGRUBファイルのダウンロード

いろいろと試したところ、isoイメージのinitrdではうまく起動しませんでした。最新版をダウンロード・コピーします。

  1. 最新版のカーネルとGRUBファイルをダウンロードしてコピーします。
    wget http://ports.ubuntu.com/dists/bionic/main/installer-arm64/current/images/cdrom/initrd.gz
    wget http://ports.ubuntu.com/dists/bionic/main/installer-arm64/current/images/cdrom/vmlinuz
    sudo cp initrd.gz vmlinuz /vagrant_data/system-boot/

GPUファームウェアとブートローダーのコピー

最後にこちらの内容に従って、GPUファームウェアとブートローダーをコピーしました。

  1. ファームウェアをダウンロード、展開してコピーします。
    wget http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-bootloader_1.20180417-1_armhf.deb
    dpkg-deb -x raspberrypi-bootloader_1.20180417-1_armhf.deb /tmp/pi-bootloader
    sudo apt remove linux-firmware-raspi2
    sudo cp /tmp/pi-bootloader/boot/* /vagrant_data/system-boot/

これで必要なファイルがすべて揃いました。

FAT32でフォーマットしたmicroSDカードにこれらをコピーして、Raspberry Piを起動してみて下さい。

GRUB2の画面からInstallを選択してしばらく待つとこのような感じでインストールメニューが起動するかと思います。

GRUB2の画面から先に進まない場合は、RAMディスクイメージ(initrd.gz)やカーネル(vmlinuz, linux)の最新版をご確認下さい。

さて。

インストーラーは起動しましたが。

CD-ROMドライブが見つかりません、というエラーで先に進まない感じです。

うーん。


※18.8.14追記:新しいUbuntu 18.04.1にて64ビットカーネルを起動する新しい記事が御座います。

スポンサーリンク

フォローする

スポンサーリンク