|
发表于 2003-1-9 17:44:33
|
显示全部楼层
抛砖引玉(粘贴中可能会有格式错误)
如何编译内核
首先你的手中要有一个Linux的分发版本,RedHat是个不错的选择,为了具有普遍性,下面的操作是在RedHat 7.2的基础上完成的。
当你安装完Linux后,你需要确认下列的rpm包已经存在(*是指不同的版本),你可以使用rpm -Uvh来安装(绝大多数文件在CD2中) :
mount /dev/cdrom /mnt/cdrom
cd /mnt/redhat/RPM
rpm -Uvh kernel-headers*
rpm -Uvh kernel-source*
rpm -Uvh kernel-doc*
rpm -Uvh dev86*
rpm -Uvh make-*
rpm -Uvh glibc-devel*
rpm -Uvh cpp*
rpm -Uvh ncurses-devel*
rpm -Uvh binutils*rpm -Uvh gcc-2*
cd /usr/srcumount /mnt/cdrom
如果你从www.kernel.org
上下载了Linux稳定的内核2.4.18,可以将他解开并移到/usr/src目录下:
tar xvfz linux-2.4.18.tar.gz
mv linux /usr/src/linux-2.4.18
你可以修改Makefile文件来改变编译的内核名称,RedHat 7.2的内核版本是2.4.7.10,首先要清理编译的过程文件,将当前版本内核配置文件作为新编译内核版本的配置使用,编译中的错误输出到指定文件
cd /usr/src/linux-2.4.18
make mrproper
cp -p /usr/src/linux-2.4/config/kernel-*-i686.config .config
make oldconfig
make depmake bzImage 2 > errors
make modules 2 > mod-errors
cp -p arch/i386/boot/bzImage /boot/vmlinuz-2.4.18
cp -p System.map /boot/System.map-2.4.18
make modules_install
编译内核的初始化文件:
new-kernel-pkg -install -mkinitrd -depmod 2.4.18
mkdir /mnt/initrd
gzip -dc /boot/initrd-2.4.8.img > /tmp/initrd.img
mount -o loop /tmp/initrd.img /mnt/initrd
ls -R /mnt/initrdumount /mnt/initrd
修改GRUB的启动配置(/boot/grub/grub.conf)文件,加入新编译内核的条目:
vi /boot/grub/grub.conf
title Red Hat Linux (2.4.18)
root (hd0,0)
kernel /vmlinuz-2.4.18 ro root=/dev/hda2
下次启动时就可以选择了。 |
|