linux编译内核主要步骤(如不想改变内核的版本,直接到第四步):
第一步:在/usr/src/目录下解开新的内核源程序(内核源程序不在该目录下先移过来),以.tar.gz源程序为例:
tar -xvfz linux-x.x.xx.tar.gz
第二步:rm /usr/src/linux
这通常是一个符号连接。
第三步:在 /usr/src/ 下建立一个符号连接到你的新内核目录。
ln -s /usr/src/linux-x.x.xx /usr/src/linux
老版本的内核可能还要做一下工作:
cd /usr/include
rm -rf asm linux scsi
ln -s /usr/src/linux/include/asm-i386 asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi
第四步:将当前目录变成 /usr/src/linux
cd /usr/src/linux
第五步:变成超级用户
su - root
第六步:配置内核
在 X window下并且希望有图形界面,可以: make xconfig
如果不在 X Window 下或不想使用图形界面,可以:make config 或 make menuconfig (推荐)
根据需要依次配置即可。
第七步:生成新内核
make dep
make clean
make zImage (或则用make bzImage进一步压缩内核)
第八步:如果你用了模块,你还需要生成和安装模块
make modules
make modules-install
depmod -a
第九步:察看/etc/lilo.conf 看用的是那个目录的那个文件作为image。
例如:image = /boot/vmlinuz (slackware版是/vmlinuz)
将 /usr/src/linux/System.map 复制到 /boot 目录中,
将 /usr/src/linux/arch/i386/boot/zImage 复制到 /boot 目录中并改名为 vmlinuz
推荐的方法是:
用一个新文件名将新内核拷贝到相应的目录下,如
cp /usr/src/linux/arch/i386/boot/zImage /boot/zImage2
然后编辑/etc/lilo.conf文件,把原内核有关的那一段复制一份,如
image = /boot/vmlinuz
root = /dev/hda1
label = linux
复制后把image改成/boot/zImage2 把label改成newlinux.
这样新内核与旧内核可以共存,当新内核不能启动时,还有备份在那儿呢.
注意复制后放置的位置,如果没有设置default则谁是第一项谁就是缺省启动项。
第十步:安装新内核并重新起动。
lilo (不要忘记了这一步哦! 并注意看输出信息)
shutdown -r now
警告:应该有备用的起动手段,如果是初次进行内核编译,最好找个编译过的协助完成
更详细的情况可查看 /usr/src/linux/readme文档, 以及有关内核编译的资料,
动手之前仔细阅读相关资料是个好习惯!
阅读(680) | 评论(0) | 转发(0) |