#topicpath
*ラズベリー・パイ3でOpenBSDを動かしてみた [#le8801c8]
RIGHT:EBUG 第62回会合 ~
2017年 8月19日、三条市グリーンスポーツセンター ~
川俣吉広、kaw@on.rim.or.jp

**BSD系OSのラズベリー・パイへの対応状況 [#c24fba0c]

|CENTER:|CENTER:|CENTER:|CENTER:|CENTER:|c
|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への対応状況 [#mdbab495]

-ラズベリー・パイ3のみ対応、OpenBSD 6.1 (2017/5 リリース)から ~
https://www.openbsd.org/arm64.html

--対応機種: Firefly-RK3399, Pine64, Raspberry Pi 3, Opteron A1100

--対応デバイス:
---SoC ... Broadcom BCM2837
---Ethernet ... smsc(4)
---USB Hub ... dwctwo(4)
---SD/MMC, HDMI, WiFi, Bluetoothなどは未対応

**ブートシーケンスの概要 [#o4822211]
-電源投入直後は、GPUが起動

--SoCのROMからブートローダを読み込み、実行

--microSDをマウントし、bootcode.binを読み込み、実行

--bootcode.bin内でloader.binをmicroSDカードからRAMへ読み込み、実行

--loader.bin内でGPU firmware(start.elf)を読み込む

--start.elf内で各種設定ファイルを読み込む

-GPU初期化後、CPUが起動

--GPUによってメモリに読み込まれたU-BOOTに処理が移る

--U-BOOTはOpenBSDのルートパーティションから/bootを読込み実行

--/bootはOpenBSDのカーネルを読込み込み、実行

**導入手順 [#jea29406]

-前提条件

--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]

---μSDカード、USBメモリ装着

---Ethernet <-----> DHCPでインターネット接続可能な環境

--電源投入後、インストーラが立ち上がるので、USBメモリをターゲットにしてOpenBSDを導入
---手順はi386, amd64とほぼ同じ。(注:FAT32のパーティションが作成されるが、消さないこと)

--インストール完了後、リブート。
---インストールされたOpenBSDカーネルが立ち上がるように、U-BOOTのデバイス優先順位を変更する。
 Hit any key to stop autoboot:  0
 U-Boot> setenv boot_targets usb0 mmc0 pxe dhcp
 U-Boot> saveenv
 U-Boot> boot

----
#topicpath

Front page   New Page list Search Recent changes   Help   RSS of recent changes