Autor Thema: Grub - Format Problem  (Gelesen 2554 mal)

Krox

  • Beiträge: 38
    • Profil anzeigen
    • Coding42.de
Gespeichert
« am: 27. March 2006, 16:04 »
Hallo,

ich habe ein Problem mit Grub. Und zwar versteht er das Format meines Kernels nicht. Ich benutze Flat Binary und habe dort per "dd" und co. einen Multiboot header hereingeschrieben, den ein Tool namens multiboot_checker übrigens auch für richtig hält. Sogar Grub liest richtig: Multiboot-kludge, Loadaddr: 0x100000, text-and-data: 0x1900 bricht aber in der nächsten Zeile mit "invalid or unsupportet executable Format" ab.

Weiß jeamand was da falsch sein könnte?

edit: das ist der code:
; Macros for Multi Boot Header
MULTIBOOT_PAGE_ALIGN equ 1 << 0
MULTIBOOT_MEMORY_INFO equ 1 << 1
MULTIBOOT_AOUT_KLUDGE equ 1 << 16
MULTIBOOT_HEADER_MAGIC equ 0x1BADB002
MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | MULTIBOOT_AOUT_KLUDGE
MULTIBOOT_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)

MultiBoot: ; Multiboot header
ALIGN 4
dd MULTIBOOT_HEADER_MAGIC
dd MULTIBOOT_HEADER_FLAGS
dd MULTIBOOT_CHECKSUM
   
; AOUT kludge
dd MultiBoot ; multiboot header
dd text ; code/data segment
dd bss ; bss segment
dd end ; bss end
dd start ; entrypoint for the OS
21 ist nur die halbe Wahrheit

Krox

  • Beiträge: 38
    • Profil anzeigen
    • Coding42.de
Gespeichert
« Antwort #1 am: 31. March 2006, 22:51 »
arg, der Fehler lag ganz woanders. Der Label "MultiBoot" steht vor der align Anweisung und verweist deswegen auf eine Hand voll Null-Bytes.... und dafür hab ich jetzt fast ne Woche gebraucht das zu bemerken  ](*,)  ](*,)  ](*,)  ](*,)  ](*,)  ](*,)  ](*,)  ](*,)  ](*,)  ](*,)  ](*,)  ](*,)  ](*,)
21 ist nur die halbe Wahrheit

 

Einloggen