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