public inbox for speakup@linux-speakup.org
 help / color / mirror / Atom feed
From: "Doug Sutherland" <doug@proficio.ca>
To: "Speakup is a screen review system for Linux." <speakup@braille.uwo.ca>
Subject: Re: moving from amd to p3?
Date: Sun, 17 Jun 2007 21:56:59 -0500	[thread overview]
Message-ID: <007601c7b154$56f192b0$ab00a8c0@tenstac> (raw)
In-Reply-To: <006001c7b145$70941080$9501a8c0@yellobow>

Yes, lspci is very useful in knowing what hardware you have, and
therefore what drivers you need. Try using the -v verbose option.
Then on your running system, do lsmod and note what drivers you
have loaded, and match them with your pci devices. Some may
not be modules, because all of these drivers can be either loadable
modules or statically compiled into the kernel.

I actually think going through the config process, even frequently
is a good idea, because it teaches you about all of the various
drivers. When you first start building kernels it's inevitable that
some mistakes will be made, but those are valuable experiences.
I recall selecting a processor option that I thought was right and
the system wouldn't boot, won't be making that mistake again.
I have at times missed selecting drivers I needed, or included
stuff I will never use, but over time you get to know what they
all are. I can go through the kernel config very fast now and
know what I need, which in the large collection of stuff is not
much!

Also look at your existing .config file. There you see all of the
drivers listed, which are statically built into kernel, which are
modules, and which are not included. The "standard" kernels
that come with distros usually have way more than you need.
That's not really a problem these days with tons of RAM
available and fast processors, but you can reduce your build
time a lot by removing a bunch of stuff you don't need. I have
become more disciplined with this because I also work on
embedded systems where you definitely only want what you
need, it's unthinkable to compile drivers for hardware that
you don't have.

The only way to really get to know the kernel drivers is to
build kernels. It does take a long time, but I recommend
not sitting around waiting for them, start a build and go to
sleep, go for a walk, go to work, whatever.

The "default" kernel will have all of the various ethernet
drivers included, when I only need one, and only one will
work with my hardware. Same is true of other things like
audio, but you need to get to know that there are core
drivers and hardware specific. For example, with usb there
is a usb core driver, everyone needs that, but your system
will have either an ohci, uhci, or ehci controller, and the
devices you actually use on usb are probably just a few
compared to the huge list that gets compiled if you choose
them all. Audio is similar, you have core drivers for alsa
and then hardware specific ones.

There is usually huge sections of the kernel that you don't
need on a PC, for example, I have an IDE controller so
I don't need SCSI, I only need SCSI emulation to support
CD burning, so I exlude most of SCSI. I don't need a 
game controller joystick port. I don't need any of the 
printer drivers. I don't need all of those flash devices 
listed as mtd, memory technology devices, etc. 

After you have gone through the config several times you
get to know what you need and don't. The kernel is huge,
getting to be kinda scary huge. Usually including extra
stuff doesn't really "cost" you anything more than some
disk space and compile time, because your system will
only load drivers it actually needs, unless you statically
compile in stuff you don't have hardware for. So it's safe
to include all of the networking hardware driver, for
example, but getting to know what all these drivers are
takes the mystery out of the kernel, and also teaches
you what hardware is supported, when you go to buy
new cards or peripherals.

Another thing to consider, there is a huge amount of
networking code, much of which you don't need if you
are just using the web and email etc. Excluding stuff you
don't need increases security. If I will never do any
point to point tunneling, then I'd rather not let anyone,
in case someone does manage to compromise the
machine. The networking in particular takes some time
to understand, but there are tons of good FAQs on the
net about most of it. Do I need sendmail? Not me, I
just use a provider pop3 server for mail. Do I need
multicast networking? Nope. I only need DHCP 
client support, not server. There are so many things I 
don't need altogether. Getting to know what you do 
need speeds up builds and increases your chances 
of successful builds. I have found that sometimes my
kernel build will terminate in error trying to build 
some module I will never use. Actually that has 
happened quite a lot over the years. Better to just
compile what I need.  

  -- Doug


Scott wrote:
What is the best way to go through the config?  
Do you just do like a lspci <snip>



  reply	other threads:[~ UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
 Littlefield, Tyler
 ` Doug Sutherland
   ` Scott Berry
     ` Littlefield, Tyler
       ` Doug Sutherland
         ` Littlefield, Tyler
     ` Doug Sutherland
       ` Gregory Nowak
         ` Doug Sutherland
           ` Gregory Nowak
             ` Doug Sutherland
               ` Gregory Nowak
           ` Scott Berry
             ` Doug Sutherland [this message]
               ` Gregory Nowak
                 ` Doug Sutherland
           ` Littlefield, Tyler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='007601c7b154$56f192b0$ab00a8c0@tenstac' \
    --to=doug@proficio.ca \
    --cc=speakup@braille.uwo.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).