From owner-freebsd-current Fri Nov 10 17:40: 4 2000 Delivered-To: freebsd-current@freebsd.org Received: from feral.com (feral.com [192.67.166.1]) by hub.freebsd.org (Postfix) with ESMTP id BEC3B37B479 for ; Fri, 10 Nov 2000 17:39:53 -0800 (PST) Received: from zeppo.feral.com (IDENT:mjacob@zeppo [192.67.166.71]) by feral.com (8.9.3/8.9.3) with ESMTP id RAA22497; Fri, 10 Nov 2000 17:39:42 -0800 Date: Fri, 10 Nov 2000 17:39:40 -0800 (PST) From: Matthew Jacob Reply-To: mjacob@feral.com To: John Polstra Cc: current@FreeBSD.ORG Subject: Re: savecore broken because kern.bootfile is set wrong In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > Savecore isn't working in -current, dying in my case with "read: > invalid argument". (This is on an Alpha -- I don't have an i386 > -current machine to test it on at the moment.) I traced it down to > the fact that getbootfile() is returning "kernel" -- not the full > pathname as the man page promises. This seems to be because the > "kern.bootfile" sysctl variable isn't getting set correctly: > > alpha# sysctl kern.bootfile > kern.bootfile: kernel > > Because I had an old "/kernel" file and savecore runs in "/", it was > finding the wrong kernel. > > This seems to be some sort of coordination problem between the loader > and the kernel and, maybe, the Alpha SRM. Can anybody shed some light Not SRM. SRM cares not. > on it? > > Also, in "src/sys/boot/common/boot.c" we still have this: > > static const char *default_bootfiles = "kernel.ko"; > > which isn't right any more. Absolutely wrong, yes. Look at kern_mib.c: char kernelname[MAXPATHLEN] = "/kernel"; /* XXX bloat */ SYSCTL_STRING(_kern, KERN_BOOTFILE, bootfile, CTLFLAG_RW, kernelname, sizeof kernelname, "Name of kernel file booted"); This is also wrong now. It's somewhat problematic in that the actual kernel name is kernel, still, but the path that it is found in depends on where the loader actually found it- that's contingent on module_path. I don't know whether the loader is supposed to modify kernelname in the loaded kernel to have the actual path or not. -matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message