雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
26: 2007-02-19 (月) 03:57:13 ソース バックアップ No.26 を復元して編集 27: 2007-02-19 (月) 10:56:36 ソース バックアップ No.27 を復元して編集
Line 1: Line 1:
-ちょっと脱線の企画・・・(^^; +COLOR(red){''※'' ここは移植の検証やレポートを書いている場所です。LinuxやFreeBSD上ではりぼてOSのコンパイルを行いたい方は、[[こちらのページ:http://thebbl.hideyosi.com/modules/bwiki/index.php?ltmake]]に移動してください。現時点で行える手順やパッチをまとめてあります。
--linuxおよびFreeBSDで「30日でできる!OS自作入門」を進めていけないかと思い、いろいろやってみました。 +
--ウチでの実験は、 +
---FreeBSD 5.5 +
---VineLinux4.0 +
--にて行いました。いずれもほぼ最新のソフトにアップグレードしてあります。 +----
- +
-COLOR(red){'07/2/18現在、まだ完璧ではありません。いくつか問題があります。特に、29日目以降は問題がでて本のとおりにいきません} +
- +
- +
-*環境を整える [#p981dbdc] +
--オイラがやっている方法だと、たぶんrootでなくてもOKのはずです。 +
--まずはとにかく、はりぼてCDの内容をコピーしておきます。全部じゃなくていいですよ。 +
- $ mount /dev/cdrom /mnt                  ←まずはCDを読めるようにして +
- $ mkdir ~/haribote                        ←ホームにでも適当に専用ディレクトリを作っておきます。 +
- $ cp -R /mnt/projects/* ~/haribote/      ←projects内をまるごとコピーしておきます。 +
- $ cp -R /mnt/tolset/z_tools ~/haribote/  ←z_toolsそのものをまるごとコピー。 +
- $ rm -f ~/haribote/z_tools/*.exe          ←間違えるとイヤなのでWin用のコマンドを削除 +
--最後に、haribote.rulファイルを変更してください。 +
- $ vi ~/haribote/z_tools/haribote/haribote.rul  ←お好きなエディタで +
- +
-                       : +
-         /* 例:  c:/osask/gg00libc.lib;  */ +
-       ../z_tools/haribote/harilibc.lib; +
-       ../z_tools/haribote/golibc.lib; +
- +
- label: +
-         /* 必ずリンクしなければいけないラベルを指定 */ +
-                       : +
-                     ↓↓↓ +
-                       : +
-         /* 例:  c:/osask/gg00libc.lib;  */ +
-       ../../z_tools/haribote/harilibc.lib; +
-       ../../z_tools/haribote/golibc.lib; +
- +
- label: +
-         /* 必ずリンクしなければいけないラベルを指定 */ +
-                       : +
- +
- +
--以上でとりあえずはOKです。 +
- +
- +
- +
--tolsetを準備します。 +
--まず、同じようにCDからtolsetのソースをコピーしておきます。 +
- $ cp -R /mnt/omake/tolsrc ~/              ←場所はどこでもいいですがharibote内だとこんがらがるので・・・ +
--次に[[このパッチ:http://thebbl.hideyosi.com/age/tolsetbsd.patch]]をダウンロードしてtolsrcディレクトリの上に置きます。 +
--COLOR(red){''※''パッチは07/2/18現在のものです} +
- $ cd ~/                                                      ←tolsrcの上で。 +
- $ wget http://http://thebbl.hideyosi.com/age/tolsetbsd.patch +
--tolsrcに降り、パッチを当てます。 +
- $ cd ~/tolsrc +
- $ patch -p1 < ../tolsetbsd.patch +
--パッチが当たったらMakefileが出来ているはずです。あとはそこでmakeあるいはgmakeを行ってください。コマンドがコンパイルされ、出来上がるはずです。 +
- $ make +
- $ make install +
--make install を行うと、okというディレクトリが出来、その中に出来上がったコマンドが全部コピーされます。全部あるかどうかチェックしてください。 +
- $ ls ~/tolsrc/ok +
-   bim2bin        edimg          gocc1plus      makefont        obj2bim +
-   bim2hrb        gas2nask        gocpp0          nask            sjisconv +
-   bin2obj        gocc1          golib00        naskcnv0 +
- +
--全部出来上がっていたらOKです。これらをz_toolsにコピーしてください。 +
- $ cp ~/tolsrc/ok/* ~/haribote/z_tools/ +
- +
--以上で準備はOKです。 +
- +
--COLOR(red){・・・あ” 当然ですが、qemuは別にインストールしておいてくださいね。・・・そうか!これはrootじゃないと出来ないんだっけ?(^^} +
- +
-*動かしてみよう [#na7cd182] +
--COLOR(red){''※'' なお、以降、本でいうところのinstall(FDに書き込む)はすべて未検証となります。+
- +
--COLOR(red){''※'' わこうメモによると、dd if=helloos.img of=/dev/fd0 でFDにインストールし、実機で動作できるらしいです。} +
- +
- +
-**1日目 [#y81f9302] +
--helloos0 +
---これはまあ、なんもせんでも動くはず。qemuの実験を兼ねてやってみます。 +
---ディレクトリに降りて、qemuを実行。これは、本で言うところの'' run.bat''相当です。 +
- $ cd ~/haribote/01_day/helloos0 +
- $ qemu -fda helloos.img +
- +
- +
- +
--helloos1 +
---本の通り、アセンブラで書かれたhelloos.nasをコンパイルするとhelloos.imgが出来上がる。(''asm.bat''相当) +
--あとはqemuで動かせる。(''run.bat''相当) +
- $ cd ~/haribote/01_day/helloos1 +
- $ ../../z_tools/nask helloos.nas helloos.img +
- $ qemu -fda hellos.img +
- +
- +
- +
--helloos2 +
---helloos1と同じなので省略・・・ +
- +
- +
- +
- +
-**2日目 [#h7fad81a] +
--helloos3 +
---helloos1と同じなので省略・・・ +
- +
- +
--helloos4 +
---P43。 +
---asm.bat相当のコマンド +
- $ cd ~/haribote/02_day/helloos4 +
- $ ../../z_tools/nask ipl.nas ipl.bin ipl.lst +
---makeimg.bat相当 +
- $ ../../z_tools/edimg imgin:../../z_tools/fdimg0at.tek wbinimg \ +
-   src:ipl.bin len:512 from:0 to:0 imgout:helloos.img +
---あとは同じく、出来上がったイメージをqemuで実行。 +
- $ qemu -fda helloos.img +
- +
- +
--helloos5 +
---ここからはMakefileが登場する。修正点をいちいち書いていたのではかなわないのでパッチを当てるようにする。 +
- $ cd ~/haribote/02_day/helloos5                            ←目的のディレクトリに降りる +
- $ wget http://thebbl.hideyosi.com/age/02/helloos5.patch    ←パッチをゲット! +
- $ ls                                                      ←パッチがあることを確認 +
-   !cons_9x.bat    Makefile      make.bat +
-   !cons_nt.bat    ipl.nas    helloos5.patch +
- $ patch -f < helloos5.patch                                ←パッチを当てる +
- $ ls                                                      ←パッチ後の内容を確認(※1) +
-   !cons_9x.bat    Makefile        helloos5.patch  make.bat +
-   !cons_nt.bat    Makefile.orig  ipl.nas +
- $ head Makefile                                            ←ちゃんとパッチが当たっているか確認 +
-   # デフォルト動作 +
- +
-   default : +
-           gmake img                                      ←こうなっていればOK +
- +
-   # ファイル生成規則 +
- +
-   ipl.bin : ipl.nas Makefile +
-           ../../z_tools/nask ipl.nas ipl.bin ipl.lst +
----COLOR(green){※1  Makefile.orgは元のファイルのバックアップ。Linux等ではない場合も多い} +
- +
- +
--さあ。これでOK。 +
--このMakefileへのパッチにより、これまでと違ってmake runやmake cleanなどが使えるようになる。COLOR(red){(ただしmake installだけはダメ。このページの一番上の方を参照)} +
- +
- +
-*3日目 [#ub67a2ff] +
-えーっと。これ以降は修正点もたくさんあるので一気にパッチ当てとなります。 +
- +
-おそらくこれ以降はすべてこのパターンとなるはずです。(違いがある時だけ書きます。) +
- +
- +
- $ cd ~/haribote/03_day                                ←03_dayディレクトリに移動します。 +
- $ ls                                                  ←内容確認 +
-   harib00a    harib00d    harib00g    harib00j +
-   harib00b    harib00e    harib00h +
-   harib00c    harib00f    harib00i +
- $ wget http://thebbl.hideyosi.com/age/03/03day.patch  ←パッチをゲット! +
- $ ls                                                  ←内容確認(パッチがあるぞ!) +
-   03day.patch  harib00c    harib00f    harib00i +
-   harib00a      harib00d    harib00g    harib00j +
-   harib00b      harib00e    harib00h +
- $ patch -p1 -f < 03day.patch                          ←パッチを適用! +
- +
--以上です。 +
--これで、3日目の全てがmeke、make run等実行できます。COLOR(red){(ただしmake installだけはダメ} +
- +
- +
-*4日目 [#z757de49] +
-まだ・・・ +
- +
-*5日目 [#c457662d] +
-まだ・・・ +
- +
-*6日目 [#y7f65504] +
-まだ・・・ +
- +
-*7日目 [#qc641b6d] +
-まだ・・・ +
- +
-*8日目 [#p92f1024] +
-まだ・・・ +
- +
-*9日目 [#m7f4ff8c] +
-まだ・・・ +
- +
-*10日目 [#cb9eb08f] +
-まだ・・・ +
- +
- +
 +ちょっと脱線の企画・・・(^^;
---- ----
*バージョン [#n4af26bb] *バージョン [#n4af26bb]