[Top][All Lists]
[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