In testing, I've found that sparc64 needs an entirely untouched, unstripped kernel in order to netboot. The kernels which have gone through the debuginfo process did not netboot properly, but an untouched copy of the kernel made right after it is built work fine.
This is a variant of the spec code we've been using in Aurora for a while, it enables a with-unstripped option, and only enables it for sparc64. If enabled, it makes a copy, calls it foo-UNSTRIPPED, and includes it in the %files macro.
If this is ok, let me know, and I'll commit it in rawhide. If there is a better way to be doing this, also let me know. :)
~spot
On Fri, Aug 17, 2007 at 12:05:10PM -0400, Tom spot Callaway wrote:
In testing, I've found that sparc64 needs an entirely untouched, unstripped kernel in order to netboot. The kernels which have gone through the debuginfo process did not netboot properly, but an untouched copy of the kernel made right after it is built work fine.
This is a variant of the spec code we've been using in Aurora for a while, it enables a with-unstripped option, and only enables it for sparc64. If enabled, it makes a copy, calls it foo-UNSTRIPPED, and includes it in the %files macro.
If this is ok, let me know, and I'll commit it in rawhide. If there is a better way to be doing this, also let me know. :)
Is there a pointer to a spec/standard or something that sparc netbooting uses (or is it just regular PXE?) that might mention caveats that explain why the stripped kernel doesn't netboot?
Dave
On Fri, 2007-08-17 at 13:03 -0400, Dave Jones wrote:
On Fri, Aug 17, 2007 at 12:05:10PM -0400, Tom spot Callaway wrote:
In testing, I've found that sparc64 needs an entirely untouched, unstripped kernel in order to netboot. The kernels which have gone through the debuginfo process did not netboot properly, but an untouched copy of the kernel made right after it is built work fine.
This is a variant of the spec code we've been using in Aurora for a while, it enables a with-unstripped option, and only enables it for sparc64. If enabled, it makes a copy, calls it foo-UNSTRIPPED, and includes it in the %files macro.
If this is ok, let me know, and I'll commit it in rawhide. If there is a better way to be doing this, also let me know. :)
Is there a pointer to a spec/standard or something that sparc netbooting uses (or is it just regular PXE?) that might mention caveats that explain why the stripped kernel doesn't netboot?
Its not regular PXE. We convert the elf kernel to an a.out file, then netboot it via TFTP.
~spot
I'd like to help figure out what the specific problem is, so we can solve it properly.
On Fri, 2007-08-17 at 12:29 -0700, Roland McGrath wrote:
I'd like to help figure out what the specific problem is, so we can solve it properly.
OK, but how do we start? :)
I've CC'd Jakub, who has a tendency to know every corner of this sort of thing. If that alone doesn't do it (;-), next we start with asking about exactly how this vmlinux->bootable conversion is done. (Last time I personally dealt with tftp-booting a Sun, it was a Sun 3/60, but it sounds like maybe things haven't changed much. I guess they have a little, since you're tftp'ing a kernel instead of a stage2 boot loader that does bootparam and nfs.)
I looked at arch/sparc64/boot/Makefile, but a) don't know where to find elftoaout and b) you were talking about doing something with the image installed in /boot, which is AFAICT not the a.out format image at all.
The "image" target in arch/sparc64/boot/Makefile is a mostly-stripped vmlinux (i.e. ELF). What is it that converts that into an a.out image, and where does that image get stored for booting? I surmise that whatever that procedure is depends on a few ELF symbols (-K sun4u_init -K _end -K _start). I'd like to grok all that more fully before suggesting the best solution.
Thanks, Roland
kernel@lists.fedoraproject.org