From owner-cvs-src@FreeBSD.ORG Mon May 19 18:40:13 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 99BCD37B404; Mon, 19 May 2003 18:40:13 -0700 (PDT) Received: from magic.adaptec.com (magic-mail.adaptec.com [208.236.45.100]) by mx1.FreeBSD.org (Postfix) with ESMTP id A0B6943FCB; Mon, 19 May 2003 18:40:11 -0700 (PDT) (envelope-from scott_long@btc.adaptec.com) Received: from redfish.adaptec.com (redfish.adaptec.com [162.62.50.11]) by magic.adaptec.com (8.11.6/8.11.6) with ESMTP id h4K1a1Z09906; Mon, 19 May 2003 18:36:01 -0700 Received: from btc.adaptec.com (hollin.btc.adaptec.com [10.100.253.56]) by redfish.adaptec.com (8.8.8p2+Sun/8.8.8) with ESMTP id SAA10069; Mon, 19 May 2003 18:40:05 -0700 (PDT) Message-ID: <3EC986C6.5050800@btc.adaptec.com> Date: Mon, 19 May 2003 19:37:10 -0600 From: Scott Long User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3) Gecko/20030414 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Garrett Wollman References: <20030518005055.GG12759@sunbay.com> <200305192149.h4JLnUrt075384@khavrinen.lcs.mit.edu> <3EC95463.50705@btc.adaptec.com> <20030519.174801.00483404.imp@bsdimp.com> <200305192355.h4JNtx4e076037@khavrinen.lcs.mit.edu> In-Reply-To: <200305192355.h4JNtx4e076037@khavrinen.lcs.mit.edu> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org cc: "M. Warner Losh" Subject: Re: cvs commit: src/release/alpha dokern.sh drivers.conf X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 May 2003 01:40:14 -0000 Garrett Wollman wrote: > < said: > > >>The .dsc files are just used when one can't load the .ko for an error >>message. I don't think they really add much for their 'cost' in the >>install environment. > > > We really should do all of the loading in the loader, anyway. A > little script that prompts ``Load additional driver modules? [yn]'' > shouldn't be too difficult to accomplish, and there are some things we > might want to include (like GEOM classes) that may need to be > pre-loaded. > > -GAWollman Since this has been brought up for debate, and I've been bitten by FreeBSD's lack of working driver update support as recently as today, let's talk about this. FreeBSD needs a way for drivers to be easily loaded and installed during installation. Linux has had this for years; the lack of it in FreeBSD makes it very hard for hardware vendors to offer driver support. This support should include an easy way for users to load drivers during the install process, and in turn have the install process use them and install them on the finished system correctly. It should also allow drivers on the install media to be overriden completely and/or not loaded at all. The first step is to strip down the GENERIC and BOOTMFS kernels to their barest minimum, and have all loadable components by packaged as modules. Yes, this will slightly pessimize the kernel on UP systems, but who reading this email doesn't immediately recompile their kernel after installation anyways? Having all loadable pieces be loadable means that they don't have to actually be loaded; user-supplied drivers can take their place without goofy symbol renaming or probe retval tricks. The second step is to make it easy to package, deliver, and load driver update disks. Defining a standard floppy format can be debated of course, and doesn't matter a whole lot as long as it conveys enough information for the user and installer to intelligently use it. However, I do assert that this is much easier to do from the installer than from the loader. With the kernel completely stripped down, it should be pretty straight-forward for the installer to load and unload modules at the users' request. Doing the same from the loader is also possible, but let's face it: there are few people on the planet that want to program in ficl. Let's leave that realm to tweaking hints and tunables that can't be changed once the kernel is running (Of course, I've now opened the door for a meta-discussion on the merits of ficl in the loader vs. ${your_favorite_interpreter}). The third step is to make the installer actually install the user-supplied drivers. Right now sysinstall has an option for loading KLD's from floppy, but that is all that it does. It doesn't help much when the driver you are loading is the storage driver for your installtion, and once you reboot the driver is not loaded automatically. I've wanted to work on this for quite a while, but I'm not sure I want to further the viability of sysinstall. However, others with less of a dislike of sysinstall are welcome to take this proposal and run with it. Scott