EBUG勉強会/20161119_河豚板のマルチプラットフォーム対応
をテンプレートにして作成
Start:
#topicpath
*河豚板のマルチプラットフォーム対応
RIGHT:EBUG 第59回会合 ~
2016年 11月19日、ながおか市民センター ~
川俣吉広、kaw@on.rim.or.jp
OpenBSD Live System「河豚板」は、2005年初頭の''CD-OpenBSD...
この度、OpenBSD 6.0をベースとするFuguIta 6.0にて従来のi38...
今回の勉強会では、このFuguIta 6.0のamd64対応、およびそれ...
**amd64対応の経緯
- 以前よりメール/Wiki共ユーザからの要望で最も多かったのが...
-2008年にFuguIta 4.3で実験的に対応
--「Member of the 2600 Community」より、OpenBSD/amd64ベー...
--当時は手元にamd64マシンがなかったため、i386上でqemu-x86...
---FuguIta-4.3-amd64-200805222alpha.iso.gz
---FuguIta-BuildTools-4.3-amd64.tar.gz
-最近のamd64対応要望の例 (FuguIta/BBSより引用)
>User from Oklahoma U.S.A.
>>Charlie Ebert (2016-03-17 (Thu) 11:13:45) ~
~
I have been using this for several versions on USBDISK.
I just can't wait to see the 5.9 version when it comes out.
There is supposed to be a VM in that version!!! YEAH!!!!
Anyway, thank you for all your work. ''I do wonder why yo...
~
Thank you very much ~
Charlie
>kaw 2016-03-17 (Thu) 22:25:21
>>Thank you for using FuguIta.
Also, I'm looking forward to seeing OpenBSD 5.9, and prep...
I agree that a 64 bit version of FuguIta is quite attract...
But ''I don't have enough time to build both 64 and 32 bi...
A 32 bit version of FuguIta is prior than 64, because one...
上述のように、マンパワー的に2つのアーキテクチャに対応す...
とりあえず、条件を制限して実装してみた。
-FuguIta 5.9で試験的にリリース
--FuguIta-5.9-amd64-201608056shrinked.iso.xz ~
→ shrinked → OpenBSD 6.0本体+FuguIta関連ツールを収録し、...
-FuguIta 6.0からi386、amd64版の両方を正式にリリース
--FuguIta-6.0-i386-201609124
--FuguIta-6.0-amd64-201609153
-- 2つのアーキテクチャに対応する替わりに、''各種ソフトの...
--- ソフトの追加は各自がports/packagesを利用して行う。
--- 日本語化も、[[30分でできる OpenBSD 日本語デスクトップ...
-- その後、11/14現在まででErrata対応等で計4回改版。
**ビルド環境の対応
amd64でのビルド手法はFuguIta-4.3-amd64で確立していたので...
-作業環境はi386とamd64をそれぞれ別のパーティションに作成...
--OpenBSD 6.0/amd64は新規にインストール
--ビルドツールは、FuguIta-5.9-i386の作業環境から移植
---ビルドスクリプト, Makefile, /boottmp/rc(起動スクリプト...
---バイナリファイルのリビルド(起動中に使用するクランチバ...
FuguIta-5.9-i386 FuguIta-6.0-...
ビルド環境 ビルド環境
+---------------------+ +-----------...
| +-------------+ | マルチ | +-------...
| | 5.9-i386 |=====プラット=====+=========>| 6.0-i3...
| | build tools | | フォーム | | | build ...
| +-------------+ | 対応 | | +-------...
|+-------------------+| | |+----------...
|| OpenBSD 5.9/i386 |==CVSアップデート=====>| OpenBSD 6...
|+-------------------+| &ビルド | |+----------...
+---------------------+ | +-----------...
|
| FuguIta-6.0-...
| ビルド環境
| +-----------...
| | +-------...
+=========>| 6.0-am...
| | build ...
| +-------...
新規 |+----------...
インストール======>| OpenBSD 6...
|+----------...
+-----------...
以上の手順で作業環境を準備し、amd64版の河豚板を生成できる...
**複数プラットフォームに対応した改良
前項の手順でamd64版の河豚板を生成しリリースできるようにな...
つまり、このままでは異ったアーキテクチャ用のファイルを読...
この状況を改善するため、以下のような改良を施した;
-ファイル名等で、バージョンに引続きアーキテクチャを含める...
FuguIta-6.0-20161101.iso.gz ~
↓~
FuguIta-6.0-''i386''-20161101.iso.gz / ~
FuguIta-6.0-''amd64''-20161101.iso.gz
-前項のようなケースは、生成物のファイル名以外にも、以下の...
--起動時にマウントされる全ファイルツリーを含んだイメージ...
fuguita-6.0.ffsimg → fuguita-6.0-amd64.ffsimg
--/usr/fuguta/versionに格納されているリリース名 ~
FuguIta-6.0-201611011 → FuguIta-6.0-amd64-201611011
--usbfadmでsaveasサブコマンドを使用してファイルを保存する...
[6.0-'''hogehoge''']--> → [6.0-amd64-'''hogehoge''']-->
--...etc
-実際には、ビルドシステムのMakefile, 河豚板本体内の /boot...
-ただし、変更前の「fuguita-6.0.ffsimg」のようなファイル名...
-これにより、異ったアーキテクチャ用の河豚板が混在しても矛...
-これの応用として、一つのUSBメモリにi386版とamd64版を両方...
**その他諸々の作業
-usbfadmの改良 ... 大容量のストレージ対応
--newdrive実行時、dパーティションのサイズによってnewfsの...
--- 2ギガバイト未満 ~
ports/packagesなどによるファイルの追加は多くないと想定さ...
→ 保存するファイルの殆どがシンボリックリンクになるので、...
→→ ブロック&フラグメントサイズを小さく ~
→→ iノード密度を高く
--- 2ギガバイト以上 ~
→ デフォルトのパラメータでnewfs ~
→ 2ギガバイト未満の場合に採用したパラメータはnewfsにかな...
--余った領域は自動的にFATとして割り当てていた ~
→ ユーザに尋ねるように改良
-ソフトウェアに関する実作業以外にも種々の作業が発生 ... ...
--i386, amd64両アーキテクチャサポートのアナウンス → 実施...
--Eratta適用時、i386, amd64両アーキテクチャに対し適用・確...
--「河豚板ガイド」の改版 → 着手したところ
-ビルドツールの公開
--ユーザからの要望により、まずamd64、ついでi386版のビルド...
**今後の予定
-vmm(4)の動作検証
-amd64版のUEFIブート対応
-usbfadmの改良
--non-interactiveに実行できるようにする
-起動モード3でのファイル読込機能の改善
-英語版河豚板ガイドの作成
----
#topicpath
End:
#topicpath
*河豚板のマルチプラットフォーム対応
RIGHT:EBUG 第59回会合 ~
2016年 11月19日、ながおか市民センター ~
川俣吉広、kaw@on.rim.or.jp
OpenBSD Live System「河豚板」は、2005年初頭の''CD-OpenBSD...
この度、OpenBSD 6.0をベースとするFuguIta 6.0にて従来のi38...
今回の勉強会では、このFuguIta 6.0のamd64対応、およびそれ...
**amd64対応の経緯
- 以前よりメール/Wiki共ユーザからの要望で最も多かったのが...
-2008年にFuguIta 4.3で実験的に対応
--「Member of the 2600 Community」より、OpenBSD/amd64ベー...
--当時は手元にamd64マシンがなかったため、i386上でqemu-x86...
---FuguIta-4.3-amd64-200805222alpha.iso.gz
---FuguIta-BuildTools-4.3-amd64.tar.gz
-最近のamd64対応要望の例 (FuguIta/BBSより引用)
>User from Oklahoma U.S.A.
>>Charlie Ebert (2016-03-17 (Thu) 11:13:45) ~
~
I have been using this for several versions on USBDISK.
I just can't wait to see the 5.9 version when it comes out.
There is supposed to be a VM in that version!!! YEAH!!!!
Anyway, thank you for all your work. ''I do wonder why yo...
~
Thank you very much ~
Charlie
>kaw 2016-03-17 (Thu) 22:25:21
>>Thank you for using FuguIta.
Also, I'm looking forward to seeing OpenBSD 5.9, and prep...
I agree that a 64 bit version of FuguIta is quite attract...
But ''I don't have enough time to build both 64 and 32 bi...
A 32 bit version of FuguIta is prior than 64, because one...
上述のように、マンパワー的に2つのアーキテクチャに対応す...
とりあえず、条件を制限して実装してみた。
-FuguIta 5.9で試験的にリリース
--FuguIta-5.9-amd64-201608056shrinked.iso.xz ~
→ shrinked → OpenBSD 6.0本体+FuguIta関連ツールを収録し、...
-FuguIta 6.0からi386、amd64版の両方を正式にリリース
--FuguIta-6.0-i386-201609124
--FuguIta-6.0-amd64-201609153
-- 2つのアーキテクチャに対応する替わりに、''各種ソフトの...
--- ソフトの追加は各自がports/packagesを利用して行う。
--- 日本語化も、[[30分でできる OpenBSD 日本語デスクトップ...
-- その後、11/14現在まででErrata対応等で計4回改版。
**ビルド環境の対応
amd64でのビルド手法はFuguIta-4.3-amd64で確立していたので...
-作業環境はi386とamd64をそれぞれ別のパーティションに作成...
--OpenBSD 6.0/amd64は新規にインストール
--ビルドツールは、FuguIta-5.9-i386の作業環境から移植
---ビルドスクリプト, Makefile, /boottmp/rc(起動スクリプト...
---バイナリファイルのリビルド(起動中に使用するクランチバ...
FuguIta-5.9-i386 FuguIta-6.0-...
ビルド環境 ビルド環境
+---------------------+ +-----------...
| +-------------+ | マルチ | +-------...
| | 5.9-i386 |=====プラット=====+=========>| 6.0-i3...
| | build tools | | フォーム | | | build ...
| +-------------+ | 対応 | | +-------...
|+-------------------+| | |+----------...
|| OpenBSD 5.9/i386 |==CVSアップデート=====>| OpenBSD 6...
|+-------------------+| &ビルド | |+----------...
+---------------------+ | +-----------...
|
| FuguIta-6.0-...
| ビルド環境
| +-----------...
| | +-------...
+=========>| 6.0-am...
| | build ...
| +-------...
新規 |+----------...
インストール======>| OpenBSD 6...
|+----------...
+-----------...
以上の手順で作業環境を準備し、amd64版の河豚板を生成できる...
**複数プラットフォームに対応した改良
前項の手順でamd64版の河豚板を生成しリリースできるようにな...
つまり、このままでは異ったアーキテクチャ用のファイルを読...
この状況を改善するため、以下のような改良を施した;
-ファイル名等で、バージョンに引続きアーキテクチャを含める...
FuguIta-6.0-20161101.iso.gz ~
↓~
FuguIta-6.0-''i386''-20161101.iso.gz / ~
FuguIta-6.0-''amd64''-20161101.iso.gz
-前項のようなケースは、生成物のファイル名以外にも、以下の...
--起動時にマウントされる全ファイルツリーを含んだイメージ...
fuguita-6.0.ffsimg → fuguita-6.0-amd64.ffsimg
--/usr/fuguta/versionに格納されているリリース名 ~
FuguIta-6.0-201611011 → FuguIta-6.0-amd64-201611011
--usbfadmでsaveasサブコマンドを使用してファイルを保存する...
[6.0-'''hogehoge''']--> → [6.0-amd64-'''hogehoge''']-->
--...etc
-実際には、ビルドシステムのMakefile, 河豚板本体内の /boot...
-ただし、変更前の「fuguita-6.0.ffsimg」のようなファイル名...
-これにより、異ったアーキテクチャ用の河豚板が混在しても矛...
-これの応用として、一つのUSBメモリにi386版とamd64版を両方...
**その他諸々の作業
-usbfadmの改良 ... 大容量のストレージ対応
--newdrive実行時、dパーティションのサイズによってnewfsの...
--- 2ギガバイト未満 ~
ports/packagesなどによるファイルの追加は多くないと想定さ...
→ 保存するファイルの殆どがシンボリックリンクになるので、...
→→ ブロック&フラグメントサイズを小さく ~
→→ iノード密度を高く
--- 2ギガバイト以上 ~
→ デフォルトのパラメータでnewfs ~
→ 2ギガバイト未満の場合に採用したパラメータはnewfsにかな...
--余った領域は自動的にFATとして割り当てていた ~
→ ユーザに尋ねるように改良
-ソフトウェアに関する実作業以外にも種々の作業が発生 ... ...
--i386, amd64両アーキテクチャサポートのアナウンス → 実施...
--Eratta適用時、i386, amd64両アーキテクチャに対し適用・確...
--「河豚板ガイド」の改版 → 着手したところ
-ビルドツールの公開
--ユーザからの要望により、まずamd64、ついでi386版のビルド...
**今後の予定
-vmm(4)の動作検証
-amd64版のUEFIブート対応
-usbfadmの改良
--non-interactiveに実行できるようにする
-起動モード3でのファイル読込機能の改善
-英語版河豚板ガイドの作成
----
#topicpath
Page: