Top/EBUG勉強会/20240217_BuildFuguIta

河豚板のビルドシステム

EBUG 第88回会合 2024年2月17日
川俣吉広、kaw@on.rim.or.jp

はじめに

河豚板は 2023年12月-2024年1月にMakefileを始めとするビルドツールの全面改良を行い、OpenBSDからスクラッチで生成できるようになりました。
今回は、このビルドツールの内容についてざっくりと紹介します。

おさらい: 河豚板のファイルシステムのレイアウト

以下の説明は起動モード0の場合

それ以外の起動モードについては、河豚板ガイドの「起動モードとファイルシステム」を参照のこと。

fi-filesys-mode0.png

/

/sysmedia

/fuguita

/ram

おさらい: デバイスのパーティション構成

LiveDVD

普通のEl Torito規格のブート構成。UEFIのネイティブブートには未対応、CSMで*2

LiveUSB (amd64の場合)

ビルドシステム

Makefileと数個のシェルスクリプトなどで構成

このビルドシステムで作成できるのは、LiveDVD用のISOイメージファイル。 出来上がったISOイメージで河豚板を起動し、usbfadmユティリティのnewdrive機能を呼び出してLiveUSB用のディスクイメージを生成する。
ビルドシステムのMakefileには、vmm(4)上でISOイメージを起動し、LiveDVDの動作チェックとLiveUSBの生成を行うための dvd2usb ターゲットが存在する。

fiflow.png

ブートローダ

カーネル

/ ... ramdisk root

構成要素

イメージファイル(rdroot.img)として作成し、rdsetroot(8)ユティリティを用いてカーネルと結合する。

fuguita-*.ffsimg ... システムのファイルツリーイメージ

3つのフェーズを経て作成

Makefileの変遷

「秘伝のタレ」を取り除く

当初、MakefileはOpenBSDのErrata適用時に、必要なISOイメージを生成する部分のみサポート。
(その他の部分はメジャーリリース時に一回行うことがほとんどで、それほど頻繁に必要なかったため)

その後、

2005- ... ISOの生成部分のみ

2009- ... 手動操作の中でも頻繁に行う部分をMakefileに追加

2022/01- ... ユーザランドとカーネルの生成部分を追加

2022/04- ... 追加部分をさらに拡大

2023/12-2024/01 ... 素のOpenBSD上で、ほぼmakeだけで河豚板をビルドできるようになる

More Topics


Top/EBUG勉強会/20240217_BuildFuguIta

*1 リマスター時の指定でtmpfsに変更可能
*2 OpenBSD 7.4-currentのmkhybrid(8)にはUEFIブートが取り入れられたようだ。
*3 OpenBSDのsyspatchのものではなく、河豚板独自に作成したtarball
*4 ハードリンクが扱えない&&遅いため、OpenRSYNCは使用不可

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