Windows 10 上で Raspberry Pi4 の OpenSUSE Leap 15.2 を起動する。


はじめに

Windows 10 上で、QEMU を使ってラズベリーパイ用の OpenSUSE Leap 15.2 の実行環境を作成してみました。
そのインストール時に利用した情報などについての記録です。(自分への覚書でもあります)
OpenSUSE 以外の raspios や ubuntu などのインストールイメージも確認してみましたが、EFI のパーテションがないため、ここに書いた EFI からの起動する手法はつかえないでしょう。
raspios を起動したい場合は、https://www.programmersought.com/article/86794759043/ に記事があります。

用意したもの

  • Windows 用の QEMU インストーラ
    qemu-w64-setup-20201124.exe
  • ビルド済みの UEFI イメージファイル
    QEMU_EFI.fd
  • ラズベリーパイ QEMU に入れる OS イメージ
    openSUSE-Leap-15.2-ARM-GNOME-raspberrypi4.aarch64-2020.07.08-Build1.71.raw

1.Windows へ QEMU のインストール

https://qemu.weilnetz.de/w64/ より qemu-w64-setup-xxxx.exe をダウンロードし、実行することでインストールを行います。
C:\Program Files\qemu に、qemu の実行ファイルなどが置かれます。

2.ビルド済みの UEFI イメージ取得

下記 URL よりダウンロードします。ファイル名 QEMU_EFI.fd
http://snapshots.linaro.org/components/kernel/leg-virt-tianocore-edk2-upstream/latest/QEMU-AARCH64/RELEASE_GCC5/QEMU_EFI.fd

3.Raspberry Pi4 OS イメージ取得

今回は OpenSUSE の Jeos (最小限)を使いました。 以下の URL からダウンロード。
http://download.opensuse.org/ports/aarch64/distribution/leap/15.2/appliances/openSUSE-Leap-15.2-ARM-JeOS-raspberrypi4.aarch64.raw.xz

openSUSE...aarch64.raw.xz を winrar などで、展開し openSUSE...aarch64.raw にします。

4. OS イメージファイルのリサイズ

初回 OS 起動時に、インストールしたディスクのサイズに合わせて、ファイルシステムを拡張する動作を行います。そのため openSUSE...aarch64.raw のイメージを、あらかじめ以下のコマンドで拡張しておきます。
以下では 20G byte 拡張しています。

"C:\Program Files\qemu\qemu-img.exe" resize ^
openSUSE-Leap-15.2-ARM-JeOS-raspberrypi4.aarch64-2020.07.08-Build1.71.raw +20G

5.起動用のバッチファイルの作成

BIOS の指定に、上記で用意した QEMU_EFI.fd を指定し、最小限の構成として、キーボード、マウス、そしてディスクイメージを指定しています。
うまく動作すれば、これをベースにして、好みの設定を追加していきます。

REM [OpenSUSE.bat]

"C:\Program Files\qemu\qemu-system-aarch64.exe" ^
-m 4G -smp 4 ^
-cpu cortex-a72 -M virt  ^
-device virtio-gpu-pci ^
-device usb-ehci,id=ehci ^
-device usb-mouse -device usb-kbd ^
-bios QEMU_EFI.fd ^
-drive if=none,format=raw,file=D:\openSUSE-Leap-15.2-ARM-JeOS-raspberrypi4.aarch64-2020.07.08-Build1.71.raw,id=hd0 ^
-device virtio-blk-device,drive=hd0  

6.起動してみる!


Serial0 に切り替えると、起動時のメッセージも見える。

7. 使える程度に設定を行う

アップデート

まずは、現時点での最新パッケージへアップデートしておきます。

# zypper update

GUI 環境のパッケージをインストール

# zypper in -t pattern gnome
# systemctl set-default graphical.target
ここで利用した JeOS のイメージには最低限のパッケージしか入っていないので GUI 環境がありません。上記のコマンドで、GUI 環境をインストールします。この例では gnome をインストールしてみました。

openSUSE-Leap-15.2-ARM-GNOME-raspberrypi4.aarch64-2020.07.08-Build1.71.raw などの GUI パッケージも含んだイメージを利用されている場合は、ここはスキップしてください。

デスクトップの画面は、こんな感じです。

Qemu に設定を追加

・ディスプレイデバイス
何がベストかは手探りですが、わたしは ramfb にしました。
-device ramfb

・SSH 接続
 外部から ssh 接続できると、何かと楽なので TCP 22 を 10022 へフォーワードする設定を加えました。
-device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp::10022-:22

 他の機器からは、下記のようにポート番号 10022 を指定して接続します。
 # ssh [email protected] -p 10022

8. スピード比較

簡単に ImageMagick を make する時間について計測してみました。
ん~~~遅い。この速度では、動作確認に利用するなどの利用用途でしょうかね。

Raspberry Pi4
real 19m14.075s
user 17m48.268s
sys 1m3.984s

QEMU Raspberry Pi4
real 71m30.115s
user 64m53.332s
sys 6m50.806s