25: 2007-02-18 (日) 22:24:50 |
現: 2024-01-06 (土) 22:39:09 |
- | ちょっと脱線の企画・・・(^^; | + | 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用のコマンドを削除 | + | |
- | -以上でとりあえずは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に書き込む)はすべて未検証となります。} | + | |
- | | + | |
- | **1日目 [#y81f9302] | + | |
- | -helloos0 | + | |
- | --これはまあ、なんもせんでも動くはず。qemuの実験を兼ねてやってみます。 | + | |
- | --ディレクトリに降りて、qemuを実行。これは、本で言うところの'' run.bat''相当です。 | + | |
- | $ cd ~/haribote/01_day/helloos0 | + | |
- | $ qemu -fda helloos.img | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
| | | |
| | | |
| | | |
| + | ちょっと脱線の企画・・・(^^; |
| ---- | | ---- |
| *バージョン [#n4af26bb] | | *バージョン [#n4af26bb] |
| TOOLPATH = ../z_tools/ | | TOOLPATH = ../z_tools/ |
| INCPATH = ../z_tools/haribote/ | | INCPATH = ../z_tools/haribote/ |
| + | |
| MAKE = gmake | | MAKE = gmake |
| NASK = $(TOOLPATH)nask | | NASK = $(TOOLPATH)nask |
| 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 \ |
| 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 |
| -$(DEL) bootpack.hrb | | -$(DEL) bootpack.hrb |
| -$(DEL) haribote.sys | | -$(DEL) haribote.sys |
| + | |
| src_only : | | src_only : |
| $(MAKE) clean | | $(MAKE) clean |
| 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 | |
| | | |
| | | |
| -ふーむ・・・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。移植、全て完了! ---} |
| + | ~ |
| + | ~ |
| + | ~ |