[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: "Error 28" -problem on an old 386
From: |
Riku 'Rakkis' Nurminen |
Subject: |
Re: "Error 28" -problem on an old 386 |
Date: |
Tue, 17 Jun 2003 15:47:31 +0300 |
User-agent: |
Mutt/1.3.28i |
On Tue, Jun 17, 2003 at 08:34:33AM +0900 or thereabouts, Yoshinori K. Okuji
wrote:
> Did you check your kernel with the utility ``mbchk''?
>
> Okuji
Yes, it's a valid multiboot kernel. Remember that it all worked fine
before my kernel grew only few kilobytes in size.
I've done a bit more experimenting on the matter and found the
following:
When I remove everything from my kernel except the main() and printk(),
the kernel size is about 14KB, and it boots fine. This is what GRUB
reports upon bootup (I've added a line "printf(", 0x%x - 0x%x",
phdr->p_paddr, phdr->p_vaddr);" in stage2/boot.c after line 599 to print out
the virtual and physical load addresses of the kernel, which in my case
are both 0x100000):
...
kernel /boot/rkernel
[Multiboot-elf, 0x100000 - 0x100000, <0x100000:0x1000:0x0> ...
The addresses are correct and my kernel boots fine. Now I compile my
kernel with all the source files included, its size grows to 17KB, and
I get the following from GRUB:
...
kernel /boot/rkernel
[Multiboot-elf, 0x0 - 0x0, <0x0:0xac1:0x0>,
Error 28: ...
Both of the addresses are zero, and the only thing done is that the
kernel is few KBs bigger.
I believe the virtual/physical addresses in boot.c come from the ELF
header, but I can't imagine how adding some C-files to the kernel could
screw up the header.
Any ideas?
Greetings,
Riku "Rakkis" Nurminen
Personal: http://www.rakkis.net
Member of: http://www.madqon.org