contents
- 2007年3月31日(土) 第11回イベント@奈良高専
- 話の概要
- Squeakってなに?
- 参考
- Squeak環境のCD-ROM
- KOF2006 Squeakers CDROM
- 参考
- イベントへの道のり
- CDROMの歴史
- bootloader
- SLAXって?
- わたしのSLAXでの作業スタイル
- SqueakNOSってなに?
- 参考
- KOF2006終了後のわたくし
- 第11回イベント@奈良高専 Squeakers CDROM
- NNCT2007 Squeakers CDROM: つまりは
- FreeSBIEって?
- 参考
- FreeSBIE CD-ROMの作り方:超簡易版
- FreeSBIE CD-ROM Directory
- その他の重要なディレクトリ
- FreeSBIEの重要な設定ファイル
- FreeSBIEのはまりどころ
- FreeSBIE Tips
- 反省点
- アートワーク: KOF2006 Squeak曼荼羅
- アートワーク: Event@NNCT2007春バナー
- 今後の目標
- まとめ
Squeak Dual Boot CDROMを作る!!
話の概要
- 関西オープンソース2006と今回Dual bootable CD-ROMを作りました
- OS1:SLAX(KOF2006)とFreeSBIE(今回)
- OS2:SqueakNOS
- この作業ではまったところなどをお話します
Squeakってなに?
参考
Squeak環境のCD-ROM
- Squeakware
- 噂ではかつてのKNNOPIXにも入ってたらしい
- APEC-KNOPPIXには入っているらしい
KOF2006 Squeakers CDROM
- 関西オープンソース2006 Squeak-ja用に作成
- 100枚+20枚程度
- OSはデュアルブート
- SLAX(slax-ja 5.1.8-3bベース) + Squeakware-edu 0.3のモジュール
- qemuモジュールを使いたかった
- SqueakNOS 2006/08/08版
- Squeak image
- 学習(?)コンテンツ
- 萌えるスクイーク体験版0.09関西オープンソース2006特別版
参考
- 関西オープンソース2006のブースの配布あたり
イベントへの道のり
- 09/16 Squeak-jaでのKOF2006参加のお誘い
- 09/20頃から作業開始?
- 10/13 ミーティング(メモ)
- 10/24 打ち合わせ用qwikWeb作成
- 10/26, 11/11 Squeak曼荼羅作成
- 10/31(Squeak/MGL2) 11/4(PenCentra130) PDA用Squeak環境作成
- 11/04 世界聴診器動作
- 11/11 名刺(兼名札)作成
- 11/14 発表原稿作成開始
- 11/17,18 KOF2006当日
CDROMの歴史
bootloader
- SqueakNOSが要求するので、GRUBが必須
- GRUB legacyのsetvbe(VESAのモードを決める)が必要
- Linuxのブートの仕組に詳しくなかった
- なんで、memory disk必須なの?
title Squeakware-edu 0.3 (GUI safe, vesa driver) kernel /boot/vmlinuz max_loop=255 initrd=/boot/initrd.gz init=/linuxrc load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=4444 root=/dev/ram0 rw slax guisafe gui autoexec=xconf;startx floppy initrd /boot/initrd.gz boot
- /boot/loader@FreeBSDはそのままではダメ
- See Problem booting FreeBSD from cboot FreeBSD from cdrom using grubdrom using grub
- ちなみに、GRUBからcdboot蹴ってもダメ
SLAXって?
- http://www.slax.org/(日本語)
- SlackwareベースのブータブルCDディストリビューション
- モジュールの取捨選択だけでいい場合はWindows上でも作成可能
- MySlax Creator: どこに行った?
- もちろん、FreeBSDでも;-)
- モジュールはmemory diskに展開されて実行される
- モジュール内のファイルへの書込も可能
- モジュールは後で動的に読み込むことも可能
わたしのSLAXでの作業スタイル
- モジュールの作成はSLAXで
- ディスクにインストールしてそこで作業
- 主にonscripterのモジュール化など
- ISOイメージ作成はFreeBSD上で;-p
- Makefileを活用
- 2度する作業は手打ちしてはいけない;-p
- 備忘録にもなって便利
TARGET = cd CD=cd-rom all: kof2006.iso kof2006.iso: $(CD) $(CD)/boot/grub/* $(CD)/modules/*.mo $(CD)/kof2006.html $(CD)/SqueakNOS/*.image make cleanup make htmllint mkisofs -J -hide-rr-moved -joliet-long -l -r -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o $@ $(CD) qemu: qemu -net nic,model=rtl8139 -std-vga -cdrom kof2006.iso htmllint: htmllint $(CD)/kof2006.html cleanup: find cd-rom/ -name '*~' -exec rm \{\} \; sync: rsync -azvv cd-rom/kof2006/ sacraya.610t.org:/usr/local/www/squeak/kof2006/kof2006/ scp cd-rom/kof2006.html sacraya.610t.org:/usr/local/www/squeak/kof2006/ sync-iso: kof2006.iso.gz scp kof2006.iso.gz sacraya.610t.org:/usr/local/www/squeak/kof2006/kof2006-`date "+%Y%m%d"`.iso.gz kof2006.iso.gz: kof2006.iso gzip -c kof2006.iso > kof2006.iso.gz burn: sudo burncd -f /dev/acd0 data kof2006.iso fixate eject
SqueakNOSってなに?
- i386でいきなりSqueakがブートするOS!!
- 最低限のkernelとSqueakで実装されたデバイスドライバ
- まだかなりハードを選びます
- というか、実機で動いたの見たこと無いっす
- 2006/08/08版が最新
- はい、FreeBSDで構築してます;-)
参考
KOF2006終了後のわたくし
- 2週間ぐらい力尽きて呆けてた
- 1週間後に一時ネットワーク敷設/撤去の仕事
- その後、2週間ほど死亡(1年1ヶ月ぶり)
- 無理/無茶はよくないです
第11回イベント@奈良高専 Squeakers CDROM
- 第11回イベント@奈良高専用に作成中
- OSはデュアルブート
- FreeSBIE(FreeBSD 6.2-stableベース) + Squeakware-edu 0.3のイメージ
- SqueakVMは武藤私家版3.9-7ベース
- SqueakNOS 2006/08/08版
- Squeak image
- 初期教育用ソフトウエア類
GCompris, Tux Paint, Tux, of Math Command, stellarium- タイプ練習ソフト各種
- 学習(?)コンテンツ
- 萌えるスクイーク体験版0.09関西オープンソース2006特別版
NNCT2007 Squeakers CDROM: つまりは
- SLAXをFreeSBIEに変えました
- 趣味の問題です;-)
- 長女(新小学三年生)にささぐコンテンツ類;-p
FreeSBIEって?
- FreeBSDベースのブータブルCD作成キット
- ports: sysutils/freesbie
- そこから作られたブータブルCDも同じ名前で呼ばれる
- makeやscriptを駆使した作成環境
- unionfsも使える!!(6.3Rから)
参考
FreeSBIE CD-ROMの作り方:超簡易版
- portからインストール
% sudo portinstall sysutils/freesbie
- 作業用ディレクトリへ
% cd /usr/local/share/freesbie
- パッケージの選択: dialogで選択する
% sudo make pkgselect
- 作成: /usr/obj/FreeSBIE.isoにISOイメージ
% sudo make
- CD-ROMに焼く
% sudo burncd -f /dev/acd0 data /usr/obj/FreeSBIE.iso fixate eject
FreeSBIE CD-ROM Directory
- /usr/local/share/freesbie/: CD-ROM作成作業ベース
- Makefile
- conf/: 設定関係
- freesbie.conf: FreeSBIEの挙動制御
- freesbie.defaults.conf: freesbie.confのデフォルト設定
- make.conf: make関係の設定
- {i386,amd64,powerpc}/FREESBIE: kernel configファイル
- packages: インストールするパッケージ一覧
- extra/: プラグイン回りの設定とスクリプトなど
- customroot/: customroot.shでコピーされるファイルツリー
- *.sh: プラグインそのもの
- scripts/: 作業用スクリプト
その他の重要なディレクトリ
- /usr/local/freesbie-fs/: ツリーの1次作成場所
- /usr/local/freesbie-clone/: ISOイメージ用最終ツリー
FreeSBIEの重要な設定ファイル
- freesbie.conf
MAKE_CONF="conf/make.conf" KERNELCONF="/usr/local/share/freesbie/conf/i386/FREESBIE" EXTRA="xconfig sound customroot rootmfs" unset NO_UNIONFS
- make.conf
NO_PROFILE=TRUE NO_GAMES=TRUE
FreeSBIEのはまりどころ
- cleanで無い環境の呪い
- /usr/local/lib/compat/pkg/に残っているライブラリ
- gettext...
- なぜか入らないpackageが…
- gcomprisがダメ: /usr/local/freesbie-fs/に既に無い
- unionfsが…、動いてるんだろうか…
--- unionfs.org Sun Mar 25 02:56:18 2007 +++ unionfs Sun Mar 25 02:58:21 2007 @@ -23,7 +23,7 @@ while read uniondir; do mkdir /mnt/union/${uniondir} - mount_unionfs -c transparent -o noatime /mnt/union/${uniondir} /${uniondir} + mount_unionfs -o copymode=transparent -o noatime /mnt/union/${uniondir} /${uniondir} if [ -f /dist/${uniondir}.dirs ]; then mtree -PU -p /${uniondir} < /dist/${uniondir}.dirs > /dev/null 2>&1 fi
FreeSBIE Tips
- Symlinkを活用しよう
dyna# ls -ld /usr/opt /SqueakNOS lrwxr-xr-x 1 root wheel 53 3 24 18:17 /SqueakNOS -> /usr/local/share/freesbie/extra/customroot/SqueakNOS/ lrwxr-xr-x 1 root wheel 50 3 24 17:57 /usr/opt -> /usr/local/share/freesbie/extra/customroot/usr/opt
- できるだけcleanな環境で作業しよう!!
- dailyでportupgradeは止めよう(;-;)
- /usr/ports/UPDATINGは必ず確認!!
- 依存関係の呪い
- lddで足りないライブラリを確認
- まずは、pkg_whichで出自を調べる
- 場合によっては、pkg_upgrade -f
- 更に、そのpakageを追加
- 最終手段はextra/customroot/以下にコピーしちゃう
- 恒例;-)Makefileへの追加
CD= extra/customroot IMAGE= /usr/obj/FreeSBIE.iso htmllint: htmllint $(CD)/nnct.html w3m: w3m $(CD)/nnct.html qemu: qemu -net nic,model=rtl8139 -soundhw all -cdrom ${IMAGE} burn: sudo burncd -f /dev/acd0 data ${IMAGE} fixate eject erase-cd: sudo burncd -f /dev/acd0 erase repackage: @chflags -R noschg /usr/local/freesbie-fs @rm -rf /usr/local/freesbie-fs @rm -rf /usr/local/freesbie-clone @rm -rf .done_installworld make sync-iso: ${IMAGE} scp ${IMAGE} sacraya.610t.org:/usr/local/www/squeak/nnct2007/nnct2007-`date "+%Y%m%d"`.iso
反省点
- まず、(タイトな)締め切りありきで動き出す
- やりたいことより、諦めをはやめにする必要がある
- アートワーク(CDレーベル, 壁紙, 名刺, ポスター)がなぁ…
- センスないものはいかんともし難い
- 口は禍の元
- 「言い出しっぺの法則」は強い(;-;)
- バージョン管理ぐらいしようよ
- 突貫作業だからこそ、必要です
- やっぱり、古い構成が必要になったりするもんです
アートワーク: KOF2006 Squeak曼荼羅
- 六道図を参考に
- 最初はひどかった…
- ブースに貼っていたものには
SqSqwareSqSquareの誤植が… - 発表資料(We're Squeakers)でも使用
アートワーク: Event@NNCT2007春バナー
- 桜をイメージ
- 配色センス無いよな(;-;)
- 専門家に提案してもらったけど、作り替えられなかった…
今後の目標
まとめ
- CD-ROMはおみやげに最適!!
- 若草山で投げても、鹿は食べません;-p
- 苦労も多いですが、完成するとうれしいです
- 98枚、ちゃんとはけてよかった…
- 経験値は確実にあがります
- bootloaderの設定…
- 年賀状の作成が早くなる…