NetBSD/x68k開発用 X68030 ブートストラップ起動動作仕様
@tsutsuii /usr/sbin/installbootのarch/x68kが、Human68kパーティションとかなければ動くはず、くらいの出来栄えです…(;´Д`)
2012-11-13 22:52:46newdisk では ・-F のような通常ファイル指定オプションを足して tools ではそれのみ対応 ・その場合 opendisk(3) を open(2) に置き換える ・DIOCGDINFO は単にサイズ見てるだけっぽいので stat(2) すればいい?
2012-11-13 22:53:56イメージファイルが実際サイズ分の大きさがないとラベル(もしくはそれに類するデータ)を書けないという仕様にしてしまうと、それはそれでビルドのとき面倒くさいという話もあるので、サイズ強制指定オプションがあったほうがよいかも
2012-11-13 22:56:04ただ、newdisk.c の先頭のコメントにあるように、内容的には shell/awk で済ませてもいいのかもしれない
2012-11-13 22:57:10@isaki68k これで実際に起動できるディスクってできるんでしょうか。さっきの boot_ufs 側の対応次第という話ですが…
2012-11-13 22:57:47installbootを真に tools 対応にするためには Human68kパーティションテーブルを解釈するようにしないといけない。
2012-11-13 23:01:09ただ、native BSD disklabel と Huma68kラベルと両方解釈させるなら x68k/disksubr.c の readdisklabel()/writedisklabel() 相当のルーチンを用意して tools disklabel と共用すべきかもしれない
2012-11-13 23:01:5568k/disksubr.c の readdisklabel()/writedisklabel() は、 (1)まずディスク先頭の BSD disklabel を探してあったらそれを採用 (2)なかったら Human68k ラベルを見てそれをBSD disklabelに読み替え
2012-11-13 23:03:18writedisklabelはBSD disklabelがあったらそこに上書き、なければHuman68kラベルに上書きだけど、Human68kラベルがない場合(新規作成の場合)にも問答無用でHuman68kラベル形式を書いてるように見える。この仕様をtoolsでどうするかが問題
2012-11-13 23:08:04src/sbin/disklabel に USE_ACORN みたく USE_HUMAN とか足すのが本筋だけどそこまでやるんかという
2012-11-13 23:10:13仕様的には BSD disklabel か Human68k label のどちらかしか書かないので、Human68kパーティションテーブルエディタ(sbin/fdisk もどき)があれば十分という説もあるけど、プログラマじゃないのでそっちの方がめんどいという罠(´・ω・`)
2012-11-13 23:12:48あと、 src/distrib/common/bootimage/Makefile.bootimage では disklabel(8) を呼ぶこと前提なので、Makefileで小細工したくないなら disklabel(8) で真っ向勝負するしかないけど、めんどくさー
2012-11-13 23:15:02@isaki68k boot_ufs/boot.S には「Human68kのパーティション情報がない場合」みたいなこと書いてあるので考慮されてるみたいですね。「mbootの場合」が書いてないですが当然SCSI IPL準拠?
2012-11-13 23:27:17というわけでやるべき内容はだいたいわかったところで実際の実装はGSoCもどきで外注に出したいのですが生きの良い若者いませんか(いません
2012-11-13 23:29:32あと、細かい点として sys/arch/x68k/include/disklabel.h の struct dos_partition の定義でビットフィールドを使っているという問題。これはtools用に別の定義(たぶんuint8_t配列にするしかない)を用意してやる必要あり。
2012-11-13 23:34:46newdisk.c では sprintf(3) でSCSIディスクマーカー書いてるけど、正直これも適切な構造体を明示的に定義してそれを仕様の説明書代わりにしたい感
2012-11-13 23:37:24説明書を書く元気がないのなら、コメントに説明を書こう。 コメントを書く元気もないのなら、ヘッダを読めば仕様がわかる定義をしよう。 ……ってのは書かずに読むばかりの立場だから言えることか(´・ω・`)
2012-11-13 23:43:35目にしたのは10年ぶり2回目。RT @tsutsuii: これが噂に聞く伝説のメッセージか…… http://t.co/w8pNIpfZ
2012-11-14 17:34:37あれ…… NetBSD/x68k の -current の GENERICカーネルだとフロッピーアクセスできなくなってる? XM6i だけ?
2012-11-15 22:08:25で、実機でしか確認できないとなると xxboot_ffsv1 がフロッピーで can't load the secondary bootstrap. になる原因を調べるのがめんどい(´・ω・`)
2012-11-15 22:16:12