Date: Mon, 19 May 2003 19:37:10 -0600 From: Scott Long <scott_long@btc.adaptec.com> To: Garrett Wollman <wollman@lcs.mit.edu> Cc: "M. Warner Losh" <imp@bsdimp.com> Subject: Re: cvs commit: src/release/alpha dokern.sh drivers.conf Message-ID: <3EC986C6.5050800@btc.adaptec.com> In-Reply-To: <200305192355.h4JNtx4e076037@khavrinen.lcs.mit.edu> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
Garrett Wollman wrote: > <<On Mon, 19 May 2003 17:48:01 -0600 (MDT), "M. Warner Losh" <imp@bsdimp.com> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3EC986C6.5050800>