grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Invalid symbol table on NetBSD boot


From: Grégoire Sutre
Subject: Re: Invalid symbol table on NetBSD boot
Date: Fri, 08 Jan 2010 01:44:25 +0100
User-agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090707)

Robert Millan wrote:

I suggest you test if GRUB Legacy's Multiboot loader supports this
properly, as the code I used derives from that.

Yes, the problem disappears with GRUB Legacy's multiboot. Moreover, I noticed another issue: the command line is stripped (first word missing) with GRUB 2's multiboot. Here are the logs. After setting the root variable appropriately, I get:

--- With GRUB Legacy ---------------------------------------------------

grub> kernel /netbsd.generic -z root=wd0a
   [Multiboot-elf, ...]
grub> boot

And everything works as expected: silent boot (-z), root device not asked by the kernel, /dev/ksyms working. The kernel says (dmesg):

multiboot: Information structure flags: 0x000003e7
multiboot: Boot loader: GNU GRUB 0.97
multiboot: Command line: /netbsd.generic -z root=wd0a
multiboot: 638 KB lower memory, 1562048 KB upper memory
multiboot: Symbol table at 0xc0b980d4, length 519152 bytes
multiboot: String table at 0xc0c16cc4, length 505776 bytes

--- With GRUB 2 -------------------------------------------------------

grub> multiboot /netbsd.generic -z root=wd0a
grub> boot

And the kernel here does not boot silently, but takes into account `root=wd0a'. As reported before, /dev/ksyms does not work. The kernel says (dmesg):

multiboot: Information structure flags: 0x00000247
multiboot: Boot loader: GRUB 1.97
multiboot: Command line: -z root=wd0a
multiboot: 638 KB lower memory, 1562048 KB upper memory

Nothing regarding symbol or string tables. See also how the command line seen by the kernel is missing `/netbsd.generic' w.r.t. GRUB Legacy. If I use

grub> multiboot /netbsd.generic dummy -z root=wd0a

then the kernel boots silently (-z), and command line reported by the kernel is `dummy -z root=wd0a'.
-----------------------------------------------------------------------


I believe NetBSD kernel developers (that'd be jmmv) implemented Multiboot
support in order to avoid duplication of efforts.

AFAICS, it's implemented only for i386 in NetBSD stable.

I think it's appropiate
to consider knetbsd loader as "legacy" and resolve this problem in our
multiboot loader.

Ok.

Grégoire




reply via email to

[Prev in Thread] Current Thread [Next in Thread]