From owner-cvs-all Tue May 21 18:24: 8 2002 Delivered-To: cvs-all@freebsd.org Received: from Awfulhak.org (gw.Awfulhak.org [217.204.245.18]) by hub.freebsd.org (Postfix) with ESMTP id 794DF37B411; Tue, 21 May 2002 18:24:01 -0700 (PDT) Received: from hak.lan.Awfulhak.org (root@hak.lan.Awfulhak.org [IPv6:fec0::1:12]) by Awfulhak.org (8.12.3/8.12.3) with ESMTP id g4M1Np7e009389; Wed, 22 May 2002 02:23:56 +0100 (BST) (envelope-from brian@Awfulhak.org) Received: from hak.lan.Awfulhak.org (brian@localhost [127.0.0.1]) by hak.lan.Awfulhak.org (8.12.3/8.12.3) with ESMTP id g4M1No4m005723; Wed, 22 May 2002 02:23:50 +0100 (BST) (envelope-from brian@hak.lan.Awfulhak.org) Message-Id: <200205220123.g4M1No4m005723@hak.lan.Awfulhak.org> X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 To: Peter Wemm Cc: Brian Somers , John Baldwin , cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org, Makoto Matsushita Subject: Re: cvs commit: src/sys/i386/i386 userconfig.c In-Reply-To: Message from Peter Wemm of "Tue, 21 May 2002 16:49:02 PDT." <20020521234902.DA22F380A@overcee.wemm.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 22 May 2002 02:23:50 +0100 From: Brian Somers Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > Brian Somers wrote: > > > On 21-May-2002 Brian Somers wrote: > > > >> > > > >> jhb> Compile in the 'intro' command if VISUAL_USERCONFIG is > > > >> jhb> specified not just for INTRO_USERCONFIG. This allows a > > > >> jhb> userconfig script to use the 'intro' command to bring up the > > > >> jhb> introduction kernel config screen which cdboot ISO's use. > > > >> > > > >> Wonderful! > > > >> > > > >> jhb> The only downside for a cdboot ISO now is that when you boot up > > > >> jhb> you get bogus error messages from kldloading the drivers in the > > > >> jhb> mfsroot since the kernel modules are already present in GENERIC. > > > >> > > > >> I'm also same problem in my mind. Perhaps we can steal some codes > > > >> (or logics) from ifmaybeload() at src/usr.sbin/ifconfig/ifconfig.c. > > > > > > > > Or perhaps src/usr.sbin/ppp/defs.c:loadmodules(). > > > > > > Maybe we need a generic function in libutil then to avoid duplicating > > > this code. > > > > The problem is that the code would read something like: > > > > int > > loadmodule(const char *module) > > { > > if (modfind(module) == -1) > > return (kldload(module)); > > return (0); > > } > > This is actually inadequate. If you are looking for a specfic module, there > is no guarantee that it is in the file that you load. You really need to check > that the file load works and it yieled the correct module. > > eg: > if (modfind("ccd") < 0) { > /* Not present in kernel, try loading it */ > if (kldload("ccd") < 0 || modfind("ccd") < 0) > warn("ccd module not available!"); > } > > Specifically, the second modfind() afterwards is necessary. Yes, until there's a proper way of turning module names into file names, this is probably the best we can do. A different error would be appropriate if the second modfind() fails, but still, I think it's pushing it a bit to put something like this in libutil. > Cheers, > -Peter > -- > Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com > "All of this is for nothing if we don't go to the stars" - JMS/B5 -- Brian Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message