You first need to select your timezone so that your system knows where it is
located. Look for your timezone in
# ls /usr/share/zoneinfo(Suppose you want to use GMT) # nano -w /etc/conf.d/clock TIMEZONE="GMT"
The core around which all distributions are built is the Linux kernel. It is the
layer between the user programs and your system hardware. Gentoo provides its
users several possible kernel sources. A full listing with description is
available at the
For x86-based systems we have, amongst other kernels,
For AMD64-based systems we have
Choose your kernel source and install it using
# emerge gentoo-sources
When you take a look in
# ls -l /usr/src/linux lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-
Now it is time to configure and compile your kernel source. You can use
If you want to manually configure your kernel, continue now with
Manually configuring a kernel is often seen as the most difficult procedure a Linux user ever has to perform. Nothing is less true -- after configuring a couple of kernels you don't even remember that it was difficult ;)
However, one thing
Now go to your kernel source directory and execute
# cd /usr/src/linux # make menuconfig
You will be greeted with several configuration sections. We'll first list some options you must activate (otherwise Gentoo will not function, or not function properly without additional tweaks).
First of all, activate the use of development and experimental code/drivers. You need this, otherwise some very important code/drivers won't show up:
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers
Make sure that every driver that is vital to the booting of your system (such as
SCSI controller, ...) is compiled
We shall then select the exact processor type. The x86_64 kernel maintainer
strongly recommends users enable MCE features so that they are able to be
notified of any hardware problems. On x86_64, these errors are not printed to
Processor type and features --->
[ ] Intel MCE Features
[ ] AMD MCE Features
Processor family (AMD-Opteron/Athlon64) --->
( ) AMD-Opteron/Athlon64
( ) Intel EM64T
( ) Generic-x86-64
Now select the correct processor family:
Processor type and features --->(Change according to your system) (Athlon/Duron/K7) Processor family
Now go to
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
(Select one or more of the following options as needed by your system)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
(Select one or more of the following options as needed by your system)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
Do not forget to enable DMA for your drives:
Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
[*] Generic PCI bus-master DMA support
[*] Use PCI DMA by default when available
If you are using PPPoE to connect to the Internet or you are using a dial-up modem, you will need the following options in the kernel:
Device Drivers --->
Networking Support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
Device Drivers --->
Networking support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
The two compression options won't harm but are not definitely needed, neither
does the
If you require it, don't forget to include support in the kernel for your ethernet card.
If you have an Intel CPU that supports HyperThreading (tm), or you have a multi-CPU system, you should activate "Symmetric multi-processing support":
If you have a multi-CPU Opteron or a multi-core (e.g. AMD64 X2) system, you should activate "Symmetric multi-processing support":
Processor type and features ---> [*] Symmetric multi-processing support
If you use USB Input Devices (like Keyboard or Mouse) don't forget to enable those as well:
Device Drivers --->
USB Support --->
<*> USB Human Interface Device (full HID) support
If you want PCMCIA support for your laptop, don't forget to enable support for the PCMCIA card bridge present in your system:
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
PCCARD (PCMCIA/CardBus) support --->
<*> PCCard (PCMCIA/CardBus) support
(select 16 bit if you need support for older PCMCIA cards. Most people want this.)
<*> 16-bit PCMCIA support
[*] 32-bit CardBus support
(select the relevant bridges below)
--- PC-card bridges
<*> CardBus yenta-compatible bridge support (NEW)
<*> Cirrus PD6729 compatible bridge support (NEW)
<*> i82092 compatible bridge support (NEW)
<*> i82365 compatible bridge support (NEW)
<*> Databook TCIC host bridge support (NEW)
When you've finished configuring the kernel, continue with
Now that your kernel is configured, it is time to compile and install it. Exit the configuration and start the compilation process:
# make && make modules_install
When the kernel has finished compiling, copy the kernel image to
# cp arch//boot/bzImage /boot/
Now continue with
If you are reading this section, you have chosen to use our
Now that your kernel source tree is installed, it's now time to compile your
kernel by using our
Now, let's see how to use genkernel. First, emerge the genkernel ebuild:
# emerge genkernel
Next, copy over the kernel configuration used by the Installation CD to the location where genkernel looks for the default kernel configuration:
# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
Now, compile your kernel sources by running
Note that, if your boot partition doesn't use ext2 or ext3 as filesystem you
might need to manually configure your kernel using
# genkernel all
Once
# ls /boot/kernel* /boot/initramfs*
You should list the modules you want automatically loaded in
To view all available modules, run the following
# find /lib/modules// -type f -iname '*.o' -or -iname '*.ko'
For instance, to automatically load the
# nano -w /etc/modules.autoload.d/kernel-2.6
3c59x
Continue the installation with