Markus Wichmann
2006-09-26 18:11:06 UTC
Hi all,
ich habe es jetzt mal für den Moment aufgegeben, einen eigenen
Bootloader zu basteln (ich mach' da mal später weiter) und bin zu GRUB
umgestiegen. Ich habe mir auch ein GRUB-Floppy-Image mit gültigem FAT
angelegt. Nur schaffe ich es nicht, diesem Loader beizubringen, meinen
Kernel zu laden. Ich habe folgendes gemacht:
Erstmal den Multiboot-Header eingefügt:
jmp start
align 4
mb_page_align equ 1<<0
mb_mem_info equ 1<<1
mb_header_magic equ 1badb002h
mb_header_flags equ mb_page_align | mb_mem_info
checksum equ -(mb_header_magic + mb_header_flags)
dd mb_header_magic
dd mb_header_flags
dd checksum
start:
(Kernel-Code folgt)
Das Ganze mit yasm assembliert:
yasm -f elf32 -o kernel.elf kernel.asm
und auf die Diskette kopiert. Dann habe ich die Diskette gebootet und mit
kernel /kernel.elf
dazu bewegen wollen, den Kernel zu laden, aber GRUB schrie dauernd
"Invalid or unsupported executable format". Da konnte ich nicht viel machen.
Ich habe schon zigtausendmal die Geschichte mit dem Linkerscript gehört,
aber das klappt nicht, da ich immer die Meldung
ld: PE operation on non-PE file
erhalte. Ich benutze das ld, was als momentan als "current" bei MinGW
mitkommt. Außerdem yasm in der Version für VS, weil ich kein Cygwin
habe(-n will).
Kann ich das Problem lösen, ohne mir Cygwin runterladen zu müssen?
Was ganz anderes: Sollte ich den Kernel segmentieren? Ich arbeite gerade
den Code vom LowLevel-Mag durch, da wäre das von Nachteil, da die
Autoren den Kernel wie eine COM schreiben. Wenn ja, was kommt wo rein?
tia und tschö,
nullplan
ich habe es jetzt mal für den Moment aufgegeben, einen eigenen
Bootloader zu basteln (ich mach' da mal später weiter) und bin zu GRUB
umgestiegen. Ich habe mir auch ein GRUB-Floppy-Image mit gültigem FAT
angelegt. Nur schaffe ich es nicht, diesem Loader beizubringen, meinen
Kernel zu laden. Ich habe folgendes gemacht:
Erstmal den Multiboot-Header eingefügt:
jmp start
align 4
mb_page_align equ 1<<0
mb_mem_info equ 1<<1
mb_header_magic equ 1badb002h
mb_header_flags equ mb_page_align | mb_mem_info
checksum equ -(mb_header_magic + mb_header_flags)
dd mb_header_magic
dd mb_header_flags
dd checksum
start:
(Kernel-Code folgt)
Das Ganze mit yasm assembliert:
yasm -f elf32 -o kernel.elf kernel.asm
und auf die Diskette kopiert. Dann habe ich die Diskette gebootet und mit
kernel /kernel.elf
dazu bewegen wollen, den Kernel zu laden, aber GRUB schrie dauernd
"Invalid or unsupported executable format". Da konnte ich nicht viel machen.
Ich habe schon zigtausendmal die Geschichte mit dem Linkerscript gehört,
aber das klappt nicht, da ich immer die Meldung
ld: PE operation on non-PE file
erhalte. Ich benutze das ld, was als momentan als "current" bei MinGW
mitkommt. Außerdem yasm in der Version für VS, weil ich kein Cygwin
habe(-n will).
Kann ich das Problem lösen, ohne mir Cygwin runterladen zu müssen?
Was ganz anderes: Sollte ich den Kernel segmentieren? Ich arbeite gerade
den Code vom LowLevel-Mag durch, da wäre das von Nachteil, da die
Autoren den Kernel wie eine COM schreiben. Wenn ja, was kommt wo rein?
tia und tschö,
nullplan
--
To err is human. To forgive is divine.
To forget is also human...
To err is human. To forgive is divine.
To forget is also human...