view withGRUB2Kernel/README.txt @ 17:0e67c0057780

add information to README.txt
author Taiki TAIRA <e095767@ie.u-ryukyu.ac.jp>
date Mon, 24 Sep 2012 16:15:47 +0900
parents acdc2c21996a
children
line wrap: on
line source

TODO
64bit だと、 grub2 から OS を起動するための multiboot header magic が認識されていないので、認識されて起動できるようにする。

32bit では動く。


【環境】
//binutils
configure --target=x86_64-elf --enable-64-bit-bfd

//newlib
コンパイルして cbc-gcc のディレクトリにシンボリックリンクを貼る


//cbc-gcc
configure --target=x86_64-elf --disabble-bootstrap --enable-languages=c \
--enable-checking=tree,rtl,assert,types --disable-nls --with-newlib --without-headers --disable-libssp --disable-libquadmath


【コンパイル】
//64bit
gcc -m64 \
    --ffreestanding -fno-common \
    -fomit-frame-pointer \
    -g \
    -Wall \
    -O2 \

//32bit
gcc -m32
    あとは 64bit と同じ

ld -m elf_x86_64 \
    -nostdlib \
    -Ttext 0x100000 \
    --oformat elf64-x86-64 or --oformat elf32-i386

【実行】
fd.img をgrub2 の乗っている VM に接続
grub2 の OS 選択画面で C を押す

bash like command line. 
tab 補完きく
コマンド実行画面で以下のコマンドを実行。

>ls
接続されている記憶媒体の表示

>set root=(記憶媒体,ファイルシステム)
    ex: set root=(fd0,msdos1)

>multiboot2 /cbc_os.elf
boot 前の下準備。OS のロード。

>boot
boot する。