|
楼主 |
发表于 2007-4-13 18:20:13
|
显示全部楼层
Power Mangement Options
This section is highly system dependent. I would advise going through each option carefully. Many of the options are only for mobile systems or those running on mobile Pentium or Athlon processors.
Power Management support
[PM]
Purpose: Enables ACPI / APM
Suggestion – build in.
I won't describe the APM/ACPI options. If possible, use ACPI (some older systems will only support APM, others may not even support that). APM is deprecated.
CPU Frequency scaling
[CPU_FREQ]
Purpose: CPU Frequency scaling allows you to change the clock speed of
CPUs on the fly. Note that this driver doesn't automatically change the CPU
clock speed, you need to either enable a dynamic cpufreq governor
after boot, or use a userspace tool.
Enable CPUfreq debugging
[CPU_FREQ_DEBUG]
Suggestion – exclude
CPU frequency translation statistics
[CPU_FREQ_STAT]
Purpose: This driver exports CPU frequency statistics information through sysfs file system
Suggestion – exclude.
Default CPUFreq governor
This option sets which CPUFreq governor shall be loaded at
startup. If in doubt, select 'performance' ie. [CPU_FREQ_DEFAULT_GOV_PERFORMANCE].
Enable 'powersave' governor [CPU_FREQ_GOV_POWERSAVE],
'userspace' governor for userspace frequency scaling [CPU_FREQ_GOV_USERSPACE] and 'conservative' cpufreq governor [CPU_FREQ_GOV_CONSERVATIVE]. In case of desktop systems (excluding AMD systems), enable 'ondemand' cpufreq policy governor [CPU_FREQ_GOV_ONDEMAND] instead of 'conservative'.
CPUFreq processor drivers
Enable the appropriate driver (if any) for your system.
PCI Support
[PCI]
Purpose: Required if the system bus is PCI (as it is on almost all systems from P1 upwards).
Suggestion – build in.
PCI Access Mode – any [PCI_GOANY].
PCI Express support
[PCIEPORTBUS]
Purpose: This automatically enables PCI Express Port Bus support
Suggestion – if you have PCIE on your motherboard, build this in.
Message Signaled Interrupts (MSI and MSI-X)
[PCI_MSI]
Purpose: This allows device drivers to enable MSI (Message Signaled
Interrupts).
Suggestion – exclude for now, it is a new feature.
Legacy proc/pci interface
[PCI_LEGACY_PROC]
Purpose: Legacy support. Newer tools are now in use (ie lspci).
Suggestion – exclude.
PCI device name database
[PCI_NAMES]
Purpose: The kernel contains a database of all known PCI devices.
Disabling this feature replaces the device names by device IDs. It also reduces kernel image size by 80KB (though this memory can be freed at runtime).
Suggestion – build in. If you are creating a boot disk then it can be excluded.
PCI Debugging
[PCI_DEBUG]
Purpose: Produces PCI debug information and writes it to the system log.
Suggestion – exclude.
ISA Support
[ISA]
Purpose: Required only if you have ISA slots in your system.
Suggestion – Most modern systems do not have ISA slots (the Intel 875 may be an exception). It can, therefore, be excluded in such systems.
If your system does have ISA slots then include this as well as all subsequent options that appear on enabling it (except VESA Local Bus priming).
MCA Support
[MCA]
Purpose: Required on systems having Microchannel architecture.
Suggestion – This is supported only on a few systems from IBM. For most systems it should be excluded.
NatSemi SCx200 support
[SCx200]
Suggestion – Required only if you have the National Semiconductir
SCx200 processor. Exclude for most systems.
PCMCIA/ Cardbus Support
Purpose: This sub menu includes several options. It is necessary only on laptops.
Suggestion – exclude on desktop systems. On laptops it should be built in, giving access to several other options not described here.
Executable File Formats
Kernel Support for ELF binaries
Purpose: Required for using Binaries compiled in the ELF format. As the conversion to ELF was started in 1995, this option can be considered critical.
Suggestion – built in.
Kernel support for a.out and ECOFF binaries
Purpose: Required to run certain old binaries which were in the a.out format which is now dead (this has nothing to do with the fact that the default name of all files compiled by gcc is a.out, that was just a convention which is still followed). Needed only if you have really old binries lying around.
Suggestion – exclude. If absolutely necessary then include it as a module.
Kernel support for Miscellaneous binaries
Purpose: Plug wrapper-driven binary formats into the kernel.
Suggestion – built in.
Device Drivers
This is one of the weirdest parts of the configuration, and unfortunately, one which I can't help you with. There are hundreds if not thousands of options, all of them system dependent. I will give you a few tips though.
If you started your configuration using an existing reference .config (whether of the current running kernel or from /arch/... subdirectory) then you should have it a bit easier.
Include Parallel support (module) if you use the parallel port on your PC. Include PC-style hardware under this, but not Multi-IO cards.
Include PnP support – this is important.
Under block devices -
Normal floppy disk support – include
Parallel port IDE device support – exclude (unless you use an external CDROM / HDD connected to your parallel port.
Include Loopback device support (module)
RAM disk support – include
Leave the default values of RAM disk number and size.
Initial RAM disk (initrd) support – include.
Support for Large Block Devices – exclude (do you have a 2 TB disk?)
Packet writing on CD/DVD media – include (module)
ATA over Ethernet support – exclude (most of the time)
Use the CFQ I/O scheduler and exclude the others
ATA/ATAPI/MFM/RLL support – DEFINITELY include unless you have a pure SCSI system. Haven't heard of those for a long time.
Support for SATA [BLK_DEV_IDE_SATA] under Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support – exclude, as it is deprecated. Do not worry if you have SATA hard drives, there is another driver for them.
Include:
IDE/ATAPI CDROM support
IDE/ATAPI FLOPPY support
PCI IDE chipset support
generic/default IDE chipset support
Generic PCI bus-master DMA support
Use PCI DMA by default when available
AMD and nVidia IDE support (nForce users only)
Your SATA controller may be listed here, so include it as well.
For any chipset you don't have – exclude it.
Include SCSI device support. It IS required for USB storage. Also include legacy /proc/scsi/ support and SCSI disk support (for USB storage). Exclude everything else under SCSI and its submenus (except SATA support).
Multiple devices driver support - exclude. Few people use software raid or LVMs on desktops.
I2O support – exclude.
Do not disable networking, it is required even by some non-network programs.
Networking options – leave the defaults, but most people can get rid of Appletalk and IPX.
Choose the correct n/w card option - "Tulip" family network device support is used by NC100 based cards.
Do you have IR ports, Token Ring, Bluetooth, FDDI, 10Gbps networks? Use common sense and exclude everything in these sections.
Wireless LAN – include only on systems with a wireless card of some type. You will still need drivers.
WAN interfaces support – exclude. No one connects to a WAN using an interface card on a desktop. Very rare.
ISDN support – do you use ISDN? I don't, nor do I know anyone who does anymore.
Character devices -
do you need non standard serial support? – mostly no.
Intel/AMD/VIA HW Random Number Generator support – yes if you have an i8xx series chipset. Presumably it should work for i9xx series as well, but I can't be sure of that.
/dev/nvram support – include.
/dev/agpgart – build in (module).
Lookout for your chipset driver for AGP support in character devices and make sure to include it (all others can then be excluded). Specifically, there is support for i865 and nforce 1 and 2, SIS and VIA, apart from several others (If you have nforce3 you can try nforce2 driver).
If you have a Radeon then include its driver under Direct Rendering Manager of Character Devices.
Configure Graphics support carefully. It can cause problems otherwise.
Under sound, select ALSA, not OSS (which is deprecated).
In ALSA, under PCI devices, select your soundcard. There is support for quite a few soundcards – Aureal, Audigy, SBLive, AC97, Intel HD Audio and many others.
USB support should also be configured carefully. Most people now have USB 2.0, so it along with USB 1.1 should be selected. Include USB storage if you are likely to use a pen drive.
Remember this section is largely about common sense. If you don't have need for a particular feature, or do not have certain hardware, then in most cases it is safe to switch it off. This however, does not apply to the networking and SCSI. Be careful there.
File Systems
This is another large section, so I'll just mention whether you should include an option or not.
Second Extended fs support – build in for Redhat/Fedora etc distros.
EXT2 extended attributes – exclude.
EXT3 journalling file system support - build in for Redhat/Fedora etc distros.
EXT3 extended attributes – exclude.
(extended attributes must be included if you want to use SELinux or the like)
JBD debugging support – exclude.
Reiserfs support – include on SUSE, Mandrake and others.
JFS support – exclude.
XFS support – exclude.
Minix filesystem support – exclude.
ROM filesystem support – exclude.
(Some people might need these, but if you are such a person, you will know how to configure them)
Quota support – exclude. Only needed if you want to set limits on user disk usage. Again, an advanced option, not present on most home PCs or single user desktops.
Kernel automounter support – exclude.
Kernel automounter support v4 – exclude. Needed only on large networks.
CD/DVD ROM filesystems – use built in for all the options in the submenu.
DOS/FAT/NT Filesystems --->
MSDOS fs suport – exclude (usually, except in cases where linux is mounted from a DOS partition).
VFAT fs support – include.
NTFS support – build in.
NTFS debugging support – exclude.
NTFS write support – exclude. It doesn't do much.
(The above options should actually be included as modules, but I would recommend not doing so the first time. With experience you will learn which features should generally be compiled as modules and then these can be configured accordingly).
Pseudo Filesystems-->
/proc file system support – include.
/dev/pts extended attributes – exclude. Again, you will know if you need it.
Virtual memory file system support – include.
HugeTLB filesystem support – exclude. Not sure what this does.
Miscellaneous filesystems-->
All the options in the submenu can generally be excluded. They are not commonly used on Linux/Windows dual boot systems.
Network filesystems support-->
Again, all these options can usually be excluded. They are required only on networked computers. If you are on a networked system then your administrator should be able to tell you which filesystems are required. Accordingly support can be compiled in. Possibly you can include SMB file system support.
Partition types--> Only two options are to be included:
1. Advanced partition selection.
2. PC BIOS support.
If you use dynamic disks in Windows 2000 or later, then you should also include Windows Logical Disk Manager support.
Native Language Support--> exclude all except USA/Canada and NLS ISO 8859-1 + NLS ISO 8859-15. This is to do with codepages (non-english filenames, not contents).
Kernel Hacking
All the options in this menu are advanced features. It is best to exclude them from the kernel.
Security Options
Enable different Security models
Purpose: This allows you to use security models other than the default linux security model.
Suggestion – exclude. You may want to include this however if you are interested in using SELinux (security enhanced).
Enable access key retention support – exclude.
Cryptographic Options
It is safe to include all these options as modules. Don't build them in, otherwise your kernel size will increase dramatically. Compiling these options into the kernel is recommended only if you use them very frequently (e.g. All your documents are encrypted using one of these algorithms).
Even if you don't include them, third party tools can provide these services.
Library Routines
Both options can be included safely.
After you are finished save the file and proceed to the Post Configuration section given earlier.
The above configuration procedure was on the 32 bit system, when you try this on a 64 bit system, different options are available.
-The processor options are different.
-There are different ACPI options.
-CPU frequency scaling now has K8 PowerNow! (Cool n Quiet)
-Funnily enough, there is no option for initrd. Add it in manually to the .config file as:
CONFIG_BLK_DEV_INITRD=y
-File formats: there is no longer an a.out format in the 64 bit world. However, there is IA32 emulation, as well as IA32 a.out emulation.
Unfortunately, I was unable to get the kernel up and running on FC3 (64 bit). FC3 has some difficulties which I was unable to get around. For one, it is necessary to make an initrd (initial RAM disk). And there was no option in the kernel to enable it. Even after putting it in manually I was unable to boot up. Seems like some bug. If anyone has any success (on a 64 bit FC3) please do post here.
Funnily, I used the 64 bit kernel, with a 32 bit Distro (CentOS 3.6) and it booted up properly.
If you want to enable SATA then try this (it did not work on the 32 bit FC1, but did on the 64 bit kernel + CentOS combo – CentOS root was located on the SATA hdd):
In code maturity options, include “Prompt for development and/or incomplete code/drivers”, but exclude “Select only drivers expected to compile cleanly”. Then under ATA/ATAPI/MFM/RLL include support for your SATA chipset (if listed). Then go to SCSI, enable support for SCSI hard disks. Got to SCSI low level drivers, enable SATA hard disks and enable support for your SATA chipset/controller listed under that (sata_sil, sata_nv, etc.).
Well that's it! Enjoy!!!! |
|