雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
26: 2007-02-19 (月) 03:57:13 ソース バックアップ No.26 を復元して編集 現: 2024-01-06 (土) 22:39:09 ソース 編集
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]
Line 311: Line 128:
 TOOLPATH = ../z_tools/  TOOLPATH = ../z_tools/
 INCPATH  = ../z_tools/haribote/  INCPATH  = ../z_tools/haribote/
 + 
 MAKE    = gmake  MAKE    = gmake
 NASK    = $(TOOLPATH)nask  NASK    = $(TOOLPATH)nask
Line 323: Line 140:
 COPY    = cp  COPY    = cp
 DEL      = rm -f  DEL      = rm -f
 + 
 # デフォルト動作  # デフォルト動作
 + 
 default :  default :
         $(MAKE) img          $(MAKE) img
 + 
 # ファイル生成規則  # ファイル生成規則
 + 
 ipl10.bin : ipl10.nas Makefile  ipl10.bin : ipl10.nas Makefile
         $(NASK) ipl10.nas ipl10.bin ipl10.lst          $(NASK) ipl10.nas ipl10.bin ipl10.lst
 + 
 asmhead.bin : asmhead.nas Makefile  asmhead.bin : asmhead.nas Makefile
         $(NASK) asmhead.nas asmhead.bin asmhead.lst          $(NASK) asmhead.nas asmhead.bin asmhead.lst
 + 
 bootpack.gas : bootpack.c Makefile  bootpack.gas : bootpack.c Makefile
         $(CC1) -o bootpack.gas bootpack.c          $(CC1) -o bootpack.gas bootpack.c
 + 
 bootpack.nas : bootpack.gas Makefile  bootpack.nas : bootpack.gas Makefile
         $(GAS2NASK) bootpack.gas bootpack.nas          $(GAS2NASK) bootpack.gas bootpack.nas
 + 
 bootpack.obj : bootpack.nas Makefile  bootpack.obj : bootpack.nas Makefile
         $(NASK) bootpack.nas bootpack.obj bootpack.lst          $(NASK) bootpack.nas bootpack.obj bootpack.lst
 + 
 naskfunc.obj : naskfunc.nas Makefile  naskfunc.obj : naskfunc.nas Makefile
         $(NASK) naskfunc.nas naskfunc.obj naskfunc.lst          $(NASK) naskfunc.nas naskfunc.obj naskfunc.lst
 + 
 bootpack.bim : bootpack.obj naskfunc.obj Makefile  bootpack.bim : bootpack.obj naskfunc.obj Makefile
         $(OBJ2BIM) @$(RULEFILE) out:bootpack.bim stack:3136k map:bootpack.map \          $(OBJ2BIM) @$(RULEFILE) out:bootpack.bim stack:3136k map:bootpack.map \
                 bootpack.obj naskfunc.obj                  bootpack.obj naskfunc.obj
 # 3MB+64KB=3136KB  # 3MB+64KB=3136KB
 + 
 bootpack.hrb : bootpack.bim Makefile  bootpack.hrb : bootpack.bim Makefile
         $(BIM2HRB) bootpack.bim bootpack.hrb 0          $(BIM2HRB) bootpack.bim bootpack.hrb 0
 + 
 haribote.sys : asmhead.bin bootpack.hrb Makefile  haribote.sys : asmhead.bin bootpack.hrb Makefile
         cat asmhead.bin bootpack.hrb >haribote.sys          cat asmhead.bin bootpack.hrb >haribote.sys
 + 
 haribote.img : ipl10.bin haribote.sys Makefile  haribote.img : ipl10.bin haribote.sys Makefile
         $(EDIMG)  imgin:$(TOOLPATH)fdimg0at.tek \          $(EDIMG)  imgin:$(TOOLPATH)fdimg0at.tek \
Line 365: Line 182:
                 copy from:haribote.sys to:@: \                  copy from:haribote.sys to:@: \
                 imgout:haribote.img                  imgout:haribote.img
 + 
 # コマンド  # コマンド
 + 
 img :  img :
         $(MAKE) haribote.img          $(MAKE) haribote.img
 + 
 run :  run :
         $(MAKE) img          $(MAKE) img
         $(COPY) haribote.img ..\z_tools\qemu\fdimage0.bin          $(COPY) haribote.img ..\z_tools\qemu\fdimage0.bin
         $(MAKE) -C ../z_tools/qemu          $(MAKE) -C ../z_tools/qemu
 + 
 install :  install :
         $(MAKE) img          $(MAKE) img
         $(IMGTOL) if=/dev/fd0 of=haribote.img bs=512 count=2880          $(IMGTOL) if=/dev/fd0 of=haribote.img bs=512 count=2880
 + 
 clean :  clean :
         -$(DEL) *.bin          -$(DEL) *.bin
Line 390: Line 207:
         -$(DEL) bootpack.hrb          -$(DEL) bootpack.hrb
         -$(DEL) haribote.sys          -$(DEL) haribote.sys
 + 
 src_only :  src_only :
         $(MAKE) clean          $(MAKE) clean
Line 486: Line 303:
 gmake[1]: *** [tek.nas] Error 1  gmake[1]: *** [tek.nas] Error 1
- 
- 
- 
-//*30日目 [#n28c4f03] 
-//-いよいよラスト〜! はたして!!! 
-//-P678。30_day/harib27f。ラストーー! 
-//--エラーーーーーー!!!! 
-//--ちょっとどうしてもアカンエラーが出たのでMakefile細工して無理やり通したけど、コンソールで文字がまったく表示されないって状態になっちゃった・・・・ 
-//--なんじゃろう??。これ? gas2naskの問題?それとも?? 
-// ../../../z_tools/gas2nask -a tek.gas tek.nas 
-// skip:shrdl      $16, %edx, %eax 
-// gmake[1]: *** [tek.nas] Error 1 
Line 541: Line 346:
-ふーむ・・・gccのバージョンの問題だろうか???Linuxのほうを3.4にして実験してみるかな?? -ふーむ・・・gccのバージョンの問題だろうか???Linuxのほうを3.4にして実験してみるかな??
-いやぁ!待った待った!! Linux版でも、エラーこそ出ないでコンパイルできたけど、やっぱりコンソールがなにも表示されない状態になっている!!!やっぱりこれはgas2naskで問題が起こっているのか!? -いやぁ!待った待った!! Linux版でも、エラーこそ出ないでコンパイルできたけど、やっぱりコンソールがなにも表示されない状態になっている!!!やっぱりこれはgas2naskで問題が起こっているのか!?
 +
 +-むむむーー! gas2naskの問題、解決かな??? (^^
 +-コンパイルもエラーがなくなった!。これまでにあった、コンソールの文字が表示されない問題もクリアした。これでいけたーーーー!
 +-・・・っとどっこい! (世の中そんなに甘くない!)
 +-5lzmaがないってエラーが出てる・・・。このエラーを履きながらも、コンパイルは無事に進んでくれるんだけど、今度はすべての.hrbが「.hrb file format error.」と言われ、実行できない。
 +-5lzmaを移植せにゃならんか!!。たしかこれ、すんげーエラー吐いて手が付けられなかったんじゃなかったっけ・・・(汗
 +
 +
 +-ぐはぁ! キターーー!
 +-なんとあっきぃさんが見事5lzmaの移植を完了!
 +-あわせてあっきぃさんによるbim2binの修正がうまくいき、なんとこの問題は解決!!!!
 +-うほ! 29_day/harib26b から止まっていた移植がすすむ!動作確認!!!
 +-どすこーーーい!! 29日目、完了!!!
 +
 +
 +
 +
 +
 +
 +
 +*30日目 [#n28c4f03]
 +-いよいよラスト〜! はたして!!!
 +-P678。30_day/harib27f。ラストーー!
 +-キター!問題ねーー!
 +----
 +~
 +~
 +
 +CENTER:SIZE(25){--- はりぼてOS。移植、全て完了! ---}
 +~
 +~
 +~