ラズベリー・パイ3でOpenBSDを動かしてみた†
BSD系OSのラズベリー・パイへの対応状況†
OS | 製品/アーキテクチャ |
Raspberry Pi 1 | Raspberry Pi 2 | Raspberry Pi 3 | Raspberry Pi Zero |
ARMv6(32bit) | ARMv7(32bit) | ARMv8(64bit) | ARMv6(32bit) |
FreeBSD | OK | OK | OK | OK |
NetBSD | OK | OK | ? | ? |
OpenBSD | - | - | OK | - |
OpenBSDのラズベリー・パイ3への対応状況†
- 対応機種: Firefly-RK3399, Pine64, Raspberry Pi 3, Opteron A1100
- 対応デバイス:
- SoC ... Broadcom BCM2837
- Ethernet ... smsc(4)
- USB Hub ... dwctwo(4)
- SD/MMC, HDMI, WiFi, Bluetoothなどは未対応
ブートシーケンスの概要†
- microSDをマウントし、bootcode.binを読み込み、実行
- bootcode.bin内でloader.binをmicroSDカードからRAMへ読み込み、実行
- loader.bin内でGPU firmware(start.elf)を読み込む
- GPUによってメモリに読み込まれたU-BOOTに処理が移る
- U-BOOTはOpenBSDのルートパーティションから/bootを読込み実行
- /bootはOpenBSDのカーネルを読込み込み、実行
- GPUの初期化コードとU-BOOTを読み込むためにμSDカードが必要
- OpenBSDは現在μSDをサポートしていない。ファイルシステムをマウントするために、USBのストレージデバイス(USBメモリなど)が必要
- さらに、OpenBSDは現在HDMI出力もサポートしていない。コンソールデバイスは基板上にある40ピンヘッダから3.3VシリアルI/Fとなっているため、ここにシリアル端末を接続する必要がある。
- 配布サイトから OpenBSD/snapshots/arm64/miniroot61.fs をダウンロードし、ddなどでμSDカードに書き込む
- シリアル: Pin[3/GND] 4/RxD 5/TxD] <-----[Serial/USB変換]------> Terminal[11520bps]
- Ethernet <-----> DHCPでインターネット接続可能な環境
- 電源投入後、インストーラが立ち上がるので、USBメモリをターゲットにしてOpenBSDを導入
- 手順はi386, amd64とほぼ同じ。(注:FAT32のパーティションが作成されるが、消さないこと)