Hallo,
Ich habe einen Bootloader (Aus dem LowLevel Wiki) und den C-Kernel von TeeJay.
Ich habe das ganze erfolgreich unter Linux/Gentoo kompiliert, gelinkt und assembliert. Sowie auch zusammen gefügt und auf die Diskette geschrieben.
Wenn ich die Diskette von auf meinem HauptPC booten will, seh ich nur einen blinkenden Cursor. Liegt warscheinlich an falschen BIOS Einstellungen.
Wenn ich die Diskette in meine alten P3 einlege, funktioniert es.
Allerdings wird hier sofort nachdem der Bootloader gestartet ist, rebootet. (Zum Kernel laden kommt es nicht mal.)
Eins sei gesagt, Assembler ist nicht so mein Ding, aber C und C++ verstehe ich.
Meine benutzen Befehle:
nasm -f bin -o kernel16.bin kernel16.asm
nasm -f aout -o kernel32.obj kernel32.asm
gcc -ffreestanding -c -Os -o ckernel.obj kernel.c
ld -T link.ld -o c32kernel.bin
cat boot.bin kernel16.bin c32kernel.bin > operatingsystem.img
dd if=operatingsystem.img of=/dev/fd0
Super, alles funktioniert ohne Probleme. Nichts... Nur der PC rebootet sobald der Bootloader gestartet wird.
Codes sind exact die gleichen wie vom Tutorial.
Hier noch ein Linker File:
OUTPUT_FORMAT("binary")
INPUT(kernel32.obj ckernel.obj)
ENTRY(start)
SECTIONS
{
.text 0x10200 : {
code = .; _code = .; __code = .;
*(.text)
. = ALIGN(1);
}
.data : {
data = .; _data = .; __data = .;
*(.data)
. = ALIGN(1);
}
.bss :
{
bss = .; _bss = .; __bss = .;
*(.bss)
. = ALIGN(1);
}
end = .; _end = .; __end = .;
}
Bitte, sagt mir nicht ich solle suchen. Ich suche schon seit Vormittag nach einer Lösung hier im Forum sowie bei Google und Co..
Nur, ich finde kein Thema welches mit meinem übereinstimmt.
Tut - 1:
http://www.jay-code.de/scripts/htmlgenerator.php?page=ckernel&directory=tutorialsTut - 2:
http://lowlevel.brainsware.org/wiki/index.php/Ausgabe_1Ich hoffe ihr könnt mir helfen.
Gruß