Discussion on the future of floppies in 5.x and 6.x

Scott Long scottl at freebsd.org
Thu Jan 8 14:37:08 PST 2004


Matthew D. Fuller wrote:

> On Thu, Jan 08, 2004 at 03:43:55AM -0700 I heard the voice of
> Scott Long, and lo! it spake thus:
> 
>>Well, regardless of how you label it, these floppies still require lots
>>of care and feeding in order to work.  We currently have no way to
>>support multiple floppies in a convenient way.
> 
> 
> My hope is that, with this piece taken care of, the amount of care and
> feeding necessary to maintain it will be minimized.  When adding new
> drivers, you'd have to stick their names in a list somewhere to be split
> out, but that's pretty minimal.  It should help avoid all the juggling we
> keep having to do to manage the size.
> 

We already have this.  It's at src/release/i386/drivers.conf.  It can
trivially be expanded to take care of more than just three floppies.
However, the piece that is missing is the ability for 3rd, 4th, 5th,
etc, floppies to be conveniently loaded and work seamlessly.  Right now,
the boot loader that comes on floppy on has some magic to ask the user
for the second floppy, then load the mfsroot and .ko files off it
automatically before the kernel boots.  Unfortunatley, this magic is
split between an interactive step in boot/loader.rc and a
non-interactive step in the loader code.  There is no easy way to expand
this to handle multiple floppies; the non-interactive second step cannot
recurse back to the interactive first step.

The 3rd floppy is handled right now in a menu that is run when
sysinstall starts.  It's a nice menu; it gives you a list of the drivers
on the floppy and asks which one you want to load.  Unfortunately, there
are two problems with this.  The first is that it runs after the kernel
has already booted, so SCSI devices that are handled by drivers on this
floppy won't get probed.  The second is that forcing the user to know
which driver is appropriate for their hardware is not very good form.

My preference would be to deprecate the sysinstall method and expand the
boot loader to fully handle an arbitrary number of floppies.  It would
also be nice to build a method for manually excluding drivers that the
user doesn't want to load.  This would greatly help to support 3rd party
vendor driver disks, something that SuSE and Redhat derive significant
benefit from right now.

> 
> 
>>This can be fixed in a variety of ways that range from fragile hacks to
>>wonderful designs, but it still requires someone to put forth the
>>effort.  My offer for a 'floppy maintainer' is quite sincere; I hope
>>that someone takes an interest and steps up to the challenge.
> 
> 
> I have some interest in this, to be sure.  However, every time I've
> ventured into src/release/ in the past, I've come away with an intense
> desire for absinthe.  I've never successfully built a release, and it's
> been my impression that you can't just build the floppies, you have to
> build the full release to have everything in place to build them.  That
> takes a huge chunk of disk space (to say nothing of _TIME_!  Just
> building the kernel and modules takes the better part of a half hour),
> which are two things in chronically short supply.
> 
> 

There are several documents linked off of http://www.freebsd.org/releng
that describe how to build a release.  It's not nearly as arcane of a
process as it used to be 5 years ago.  The biggest barrier to entry is
probably disk space.  You'll need a good 5GB free to hold the CVS repo,
chroot environment, and resulting bits.  Yes, to build the floppies you
need to build most of the release, but once you've built the release,
you can back-step and rebuild the floppies at will.

Scott



More information about the freebsd-hackers mailing list