やっと、floppy image 作成完了して、kernel bootできました。
忘れぬうちに、手順を書きとめておく。
(1) VMware Player の導入
VMwareのWebサイトより、Windows用のVMware Playerをダウンロード、
インストールします。
(2) QEMU の導入(VMware の Disk Image作成のため)
qemu を ここ から取ってこよう。とってきたパッケージを適当なところへ
解凍すると、中に qemu-img.exe があるはず。
(3) Ubuntu の導入
日本語ローカライズされた VMwareイメージを ここ からダウンロードし、
解凍すれば、 そのまま、VMware Player で実行できます。
(4) Floppy disk image の作成
qemu-img create -f vmdk floppy0.bin 1440
Ubuntu で FAT Formatする。
mkdosfs /dev/fd0
(5) GRUBのインストール
まずは Floppy diskをマウント。
cd ~
mkdir ./floppy
sudo mount -t vfat /dev/fd0 ./floppy
次に、Ubuntu の GRUB をそのまま使っちゃおう。
mkdir ./floppy/boot
mkdir ./floppy/boot/grub
cp /boot/grub/stage1 /boot/grub/stage2 /boot/grub/menu.lst \\
./floppy/boot/grub/.
/usr/sbin/grub
grub> root (fd0)
grub> setup (fd0)
grub> quit
最後に menu.lst の編集。
Ubuntu用のエントリは全て削除して、下記エントリを追加。
# For booting Sample Kernel
title SampleKernel
root (fd0)
boot
(6) Sample Kernel のビルド
ここ に書いてある、multiboot.h、boot.S、kernel.c がソース。
Makefile が無いので、下記のように作成。
TARGET= kernel
MAPFILE= kernel.map
START= 0x100000
CC=/usr/bin/gcc
CFLAGS= -ffreestanding -nostdinc -nostdlib -fno-stack-protector -I.
LDFLAGS= -Ttext $(START) -e start -Map $(MAPFILE)
OBJS= boot.o kernel.o
.c.o:
$(CC) $(CFLAGS) -c $*.c
.S.o:
$(CC) $(CFLAGS) -c $*.S
all: $(TARGET)
$(TARGET): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $(OBJS)
clean::
rm -f $(TARGET) $(OBJS) *~
boot.o: Makefile boot.S multiboot.h
kernel.o: Makefile kernel.c multiboot.h
(7) Sample Kernel を Floppy diskへコピー
cp kernel ./floppy/boot/.
(8) Boot
Boot画面はこんなかんじ。
0 件のコメント:
コメントを投稿