#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
 https://www.openbsd.org/arm64.html ~
 http://undeadly.org/cgi?action=article&sid=20170409123528 ~
 
 --対応機種: 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に処理が移る
 --GPUによってメモリに読み込まれた[[U-BOOT>http://www.denx.de/wiki/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は現在HDMI出力もサポートしていない。コンソールデバイスはシリアルI/F((基板上にある40ピンヘッダ、3.3V))となっているため、ここに端末を接続する必要がある。
 
 -手順
 
 --配布サイトから OpenBSD/snapshots/arm64/miniroot61.fs をダウンロードし、ddなどでμSDカードに書き込む
 
 --周辺機器を接続
 
 ---シリアル: Pin[3/GND] 4/RxD 5/TxD] <-----[Serial/USB変換]------> Terminal[11520bps]
 ---シリアル: 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
  Hit any key to stop autoboot:  2
  U-Boot> setenv boot_targets usb0 mmc0 pxe dhcp
  U-Boot> saveenv
  U-Boot> boot
 
 **現況とまとめ [#sa48c57a]
 
 -6.1-releaseからインストール
 --CPUはシングルコアで動作してるっぽい
 --USBメモリを選ぶ
 ---U-BOOTが認識するUSBメモリと認識しないUSBメモリがある~
 →インストールできるがブート時認識されない。
 ---USBメモリ2本挿すと両方とも認識されない。~
 →インストールできるがブート時認識されない
 
 --arm64用のpackagesなし。
 ---ports treeからコンパイルして導入 ~
 →コンパイルエラーで頻繁に止まる ... GCCからclangに変ったため? ~
 →packageのmakeがネストすると止る(プロセス数が増えるとある時点で起動出来なくなる?)
 
 - -currentでインストールし直し
 --USBデバイスの認識状況は変りなし
 --プロセスが起動出来なくなる問題は解決
 --portsのコンパイルエラーはほぼ解消
 
 -まとめ
 --現状ではヘッドレス運用となるため、クライアントマシンとしての利用は厳しい
 
 --サーバとして見た場合
 ---デフォルトでサーバが運用されるサービスはそのまま使用可~
 →SMTP, Web, DNS, NTPなど
 
 --Webで動的なページ生成を行いたい場合は、必要なもの(サーバサイド言語、データベースサーバなど)をportsからコンパイル・インストールする必要がある
 
 ----
 #topicpath
Top Index Search Recent Backups  Help  RSS