Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Oct 2004 20:56:38 -0400
From:      Garance A Drosihn <drosih@rpi.edu>
To:        Scott Long <scottl@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: Breaking up kernel config files (GENERIC)
Message-ID:  <p06110433bda0a9094720@[128.113.24.47]>
In-Reply-To: <417A17E0.7000800@freebsd.org>
References:  <417960C2.8040007@freebsd.org> <20041022194008.GA23778@odin.ac.hmc.edu> <41796396.5070804@freebsd.org> <p06110423bd9f1b6312ed@[128.113.24.47]> <41796D6D.7000108@freebsd.org> <41799315.70201@elischer.org> <41799396.9090307@freebsd.org> <20041023082926.GE45235@ip.net.ua> <417A17E0.7000800@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In the thread "Annoying SCSI waiting..."
     At 2:35 AM -0600 10/23/04, Scott Long wrote:
>Ruslan Ermilov wrote:
>>On Fri, Oct 22, 2004 at 05:11:18PM -0600, Scott Long wrote:
>>
>>>I'd like to see GENERIC get split into several sub-modules
>>>that live in /sys/conf and can be included instead of
>>>constantly duplicated.
>>>i.e.
>>>
>>>/sys/conf:
>>>/SCSI
>>>/BLOCK
>>>/NIC
>>>/USB
>>>/FIREWIRE
>>>
>>>etc.
>>>
>>>Again, only for HEAD, not for RELENG_5.  Thoughts?
>>
>>I've had this idea for quite some time too.  But my thought was
>>as far as having the sys/conf/GENERIC, a common portion of all
>>GENERIC configs for all architectures.
>
>I have a feeling that as we expand to things like ARM and possibly
>MIPS that there will be very little that is 'standard' anymore.
>It might be possible to distill some common 'CORE' pieces, but
>we really shouldn't over-engineer this =-)

But I think we should think about it a bit, and figure out what it
is that we "really want".  I am not sure what that is yet, but it
would be good to throw around some ideas.

>I've been hacking up config(8) to allow the 'include' directive to
>look outside of the current working directory.  Ideally I'd like
>to have a new directive that allows you to specify and/or override
>the default search path for included configs.  Unfortunately my
>blissful ignorance towards lex/yacc is starting to show =-)

So, what *do* we want, and what things do we need as we expand our
support to somewhere between six and ten architectures?

I do not know how I would break up *everything*, but let's take a
few easy cases.  Say, categories like SCSI or Firewire.

I think it is obvious that GENERIC should default to including
support for all scsi controllers, just so a person can get up and
running on any hardware that we support.  But when it comes time to
customize a kernel, what will a person want to do for any category?
Most likely, they want one of two things:
    1) Turn off *all* scsi, because they know they have no
       scsi card at all.
    2) Turn on the scsi card that they have, but turn off all
       other scsi cards.

For either case, what I would like is to duplicate the GENERIC kernel,
and then have to modify only one single line to get what I want (one
line per category, that is).  Maybe something like:
    1)   SCSI OFF
    2)   SCSI ON,ahc

If I know I have ahc (which I can read from dmesg), then I should not
need to learn the full list of possible SCSI controllers.  I just need
to know "I have one scsi controller, and it looks like that is called
'ahc', so I will turn on that specific controller and trust that all
other SCSI controllers will be turned off".

How does that sound?

-- 
Garance Alistair Drosehn            =   gad@gilead.netel.rpi.edu
Senior Systems Programmer           or  gad@freebsd.org
Rensselaer Polytechnic Institute    or  drosih@rpi.edu



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p06110433bda0a9094720>