到http://www.kernel.org/下载一个你适合的内核包(一般是最新,并下载完整的 选 “F”下载)
首先我们升级软件(包)库:
sudo apt-get update
然后我们安装所有需要的软件包:
sudo apt-get install kernel-package libncurses5-dev gcc module-init-tools make
tar xvf linux-2.6.19.tar.bz2
cd linux-2.6.19/
文件名请按自己下载的更改
配置编译
make menuconfig
选“Y”(*)就是把它编译到内核中,选“M”(M)把它编译成模块,供内核动态调用。选“N”就是不安装。
建议不常变的驱动都编译到内核中,这样性能会好一点。
下面作一些选项的简单说明
General setup
Optimize for size (Look out for broken compilers!) 发烧友可以选Y以获得更小的内核。
Processor type and features
Symmetric multi-processing support 如果你没有多线程处理器这个可以选N
Processor family 根据你的CPU来选择。
High Memory Support 1G以上内存的选“4GB”, 1G以下的,将来也不打算升级到1G的,选“off”.
Bus options (PCI, PCMCIA, EISA, MCA, ISA)
PCI support
PCI Express support 老式机器没有PCI-E设备的可以选N
ISA support 较新的新机器没有ISA设备,可以选N
MCA support 一般选N
NatSemi SCx200 support 一般选N
PCI Hotplug Support
Support for PCI Hotplug (EXPERIMENTAL) 如果没有PCI热插拔设备,选N
Device Drivers
Block devices
Packet writing on CD/DVD media
Enable write caching (EXPERIMENTAL) 如果你有刻录机,想启用写缓存功能,选Y
ATA/ATAPI/MFM/RLL support
Include IDE/ATA-2 DISK support 如果你的/boot是放在IDE硬盘上,那么这里一定要选Y,选M都不行。否则启动时会出现“waiting for root file system”的提示而停滞不前。
SCSI device support 如果有SATA硬盘,就选Y
SCSI disk support 如果你的/boot放在SATA硬盘上,一定要选Y。
Network device support
Bonding driver support 如果你要绑定双网卡/多网卡请把这个编译进内核(*)这样多网卡的性能会更好。
Character devices
I2C support 一般可以选Y或者M
Graphics support 不建议把显卡驱动编译进内核。,选M,编译成模块方便日后升级驱动。
Support for frame buffer devices
VESA VGA graphics support 可以选Y
Logo configuration
Bootup logo 如果想看到Linux启动logo,选Y
Sound
Sound card support 选Y, 除非你没有声卡
其他的驱动,酌情添加删除,根据机器配置删除不需要的驱动可以缩短编译时间。你可以在命令行下输如lspci或者dmesg查看硬件信息。
File systems
CD-ROM/DVD Filesystems
ISO 9660 CDROM file system support 一般选Y
DOS/FAT/NT Filesystems
VFAT (Windows-95) fs support 有FAT32分区就选Y吧
NTFS file system support 有NTFS分区就选Y吧
NTFS write support 如果想对 NTFS分区进行写操作,选Y
Native Language Support
Simplified Chinese charset (CP936, GB2312) 选Y或者M使读取FAT分区不会遇到中文乱码现象
配置晚后保存配置退出
开始编译
make
安装内核
make install
编译模块
make modules
安装模块
make modules_install
生成initrd.img
/usr/sbin/mkinitramfs -o /boot/initrd.img-2.6.19 2.6.19
后面的版本号请按实际填写
如果有出错提示,可能是因为 initramfs-tools 没有装,先把它装上吧。
如果没有这一步骤,那么开机就会出现提示
……
initrd /initrd.img-2.6.19
Error 15: File not found
最后修改 /boot/grub/menu.lst
在 ## ## End Default Options ## 下面添加类似下面的两段
title Ubuntu, kernel 2.6.19
root (hd0,1)
kernel /vmlinuz-2.6.19 root=/dev/hda0
initrd /initrd.img-2.6.19
savedefault
boot
title Ubuntu, kernel 2.6.19 (recovery mode)
root (hd0,1)
kernel /vmlinuz-2.6.19 root=/dev/hda0 ro single
initrd /initrd.img-2.6.19
boot
注意 root和kernel字段要模仿menu.lst下面已有的内容写。只有vmlinuz-2.6.19、initrd.img-2.6.19作相应的改变即可。title 后面的内容可以随便改变。
下面是 (hd0,1),那么你也写(hd0,1),下面写root=/dev/hda0,你也写root=/dev/hda0,只是内核的版本号改为现在编译的版本号。
然后把下面重复的savedefault删除。
重新启动计算机,在GRUB中选择新内核启动。如果启动失败,你可以重启选择老内核。