Hallo,
ich moechte den GRUB - Bootloader verwenden um meinen C - Kernel auszuführen. Funktioniert allerdings nicht,
weil der Bootloader nicht geladen/erkannt wird. Ich hab das nach diesem Tutorial gemacht:
http://www.lowlevel.eu/wiki/C-Kernel_mit_GRUBIch verwende Windows 7 64Bit und habe den Kernel mit dem Crosscompiler kompliliert.
So gehe ich vor:
Als erstes folgende Batch - Datei ausführen:
// Assembler
nasm -f elf -o D:/Programmieren/OS/ckernel/kernel.o D:/Programmieren/OS/ckernel/kernel_asm.asm
// C - Kernel
i586-elf-gcc -m32 -ffreestanding -o D:/Programmieren/OS/ckernel/kernel_c.o -c D:/Programmieren/OS/ckernel/kernel.c -Wall -Werror -nostdinc
// Linken
i586-elf-ld -T D:/Programmieren/OS/ckernel/link.txt -o D:/Programmieren/OS/ckernel/bin/kernel.bin D:/Programmieren/OS/ckernel/kernel.o D:/Programmieren/OS/ckernel/kernel_c.o
// Mit dem GRUB - Bootloader "vereinen"
bfi -t=144 -f=D:/Programmieren/OS/ckernel/floppy.img D:/Programmieren/OS/ckernel/bin
pause
(Die Dateien "kernel.c", "kernel_asm.asm" und "link.txt" sind mit den Dateien aus dem Tutorial identisch)
Im "bin" - Ordner ist eine Datei mit dem Namen "boot", welche aus der Datei "stage1" und "stage2" zusammengefügt wurde
(copy /b stage1 + stage2 boot).
Danach schreibe ich die Datei "floppy.img" mit dem Programm "RawWrite" auf eine Diskette (1,44MB).
Wenn ich von der Diskette mit Bochs boote, kommt folgende Ausgabe:
Booting from Floppy...
Disk formatted with WinImage 4.00 (c) 1993-97 Gilles Vollant
Bootsector from C.H. Hochstätter
No Systemdisk. Booting from harddisk
Cannot load from harddisk
Insert Systemdisk and press any key.
Die Konfigurationsdatei für Bochs:
megs:32
romimage: file=BIOS-bochs-latest, address=0xf0000
vgaromimage: VGABIOS-elpin-2.40
floppya: 1_44=a:, status=inserted
boot: a
log: protokoll.log
mouse: enabled=0
debugger_log: debug.log
debugger_log: -
Ich versuch das schon seit Tagen ohne Erfolg...
Wäre also sehr dankbar wenn mir jemand sagen koennte was ich falsch mache