当前位置: 技术问答>linux和unix
怎么编译内核?
来源: 互联网 发布时间:2015-10-06
本文导语: 环境,完全安装的Red Hat Linux 9.0 内核 2.4.20-8,新装好尚未做任何系统的设置和修改 因为要核心支持一种文件系统,不得不编译内核 搜索到一些资料,不过这些资料介绍的都是较早的版本,按照这些资料进行下...
环境,完全安装的Red Hat Linux 9.0 内核 2.4.20-8,新装好尚未做任何系统的设置和修改
因为要核心支持一种文件系统,不得不编译内核
搜索到一些资料,不过这些资料介绍的都是较早的版本,按照这些资料进行下面的步骤:
1.进入源代码目录
#cd /usr/src/linux-2.4.20-8
因为不是升级内核,就没有下载代码和解压缩,直接用系统里面的源代码
2.删除残留的.o及其他多余的文件
#make mrproper
没显示什么错误
3.配置内核
#make menuconfig
选File system--> System V
没有改变其他任何设置,然后保存没显示有错误
4.建立从属文件
#make dep
5.清除目标文件
#make clean
5.编译内核
#make bzImage
花了好长时间,屏幕上闪过很多东西,好象不是错误提示
6.编译模块
#make modules
#make modules_install
7.将编译好的内核复制到/boot目录下
#cp /use/src/linux-2.4.20-8/arch/i386/boot/bzImage /boot/vmlinuz-2.4.20-8.new
原来的名字是/boot/vmlinuz-2.4.20-8
#cp /usr/src/linux-2.4.20-8/System.map /boot/System.map-2.4.20-8.new
原来的名字是/boot/System.map-2.4.20-8
8.建立新的连接文件
#cd /boot
#rm System.map
#ln -s System.map-2.4.20-8.new System.map
9.配置/etc/lilo.conf 文件
原来是:
prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear
image=/boot/vmlinuz-2.4.20-8
label=linux
initrd=/boot/initrd-2.4.20-8.img
read-only
append="root=LABEL=/"
改为:
prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear
image=/boot/vmlinuz-2.4.20-8.new
label=linux
initrd=/boot/initrd-2.4.20-8.img
read-only
append="root=LABEL=/"
10.使配置生效
#/sbin/lilo
#/sbin/reboot
这样重新启动以后,机子不能启动,请各位帮我看看哪步有问题
因为要核心支持一种文件系统,不得不编译内核
搜索到一些资料,不过这些资料介绍的都是较早的版本,按照这些资料进行下面的步骤:
1.进入源代码目录
#cd /usr/src/linux-2.4.20-8
因为不是升级内核,就没有下载代码和解压缩,直接用系统里面的源代码
2.删除残留的.o及其他多余的文件
#make mrproper
没显示什么错误
3.配置内核
#make menuconfig
选File system--> System V
没有改变其他任何设置,然后保存没显示有错误
4.建立从属文件
#make dep
5.清除目标文件
#make clean
5.编译内核
#make bzImage
花了好长时间,屏幕上闪过很多东西,好象不是错误提示
6.编译模块
#make modules
#make modules_install
7.将编译好的内核复制到/boot目录下
#cp /use/src/linux-2.4.20-8/arch/i386/boot/bzImage /boot/vmlinuz-2.4.20-8.new
原来的名字是/boot/vmlinuz-2.4.20-8
#cp /usr/src/linux-2.4.20-8/System.map /boot/System.map-2.4.20-8.new
原来的名字是/boot/System.map-2.4.20-8
8.建立新的连接文件
#cd /boot
#rm System.map
#ln -s System.map-2.4.20-8.new System.map
9.配置/etc/lilo.conf 文件
原来是:
prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear
image=/boot/vmlinuz-2.4.20-8
label=linux
initrd=/boot/initrd-2.4.20-8.img
read-only
append="root=LABEL=/"
改为:
prompt
timeout=50
default=linux
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear
image=/boot/vmlinuz-2.4.20-8.new
label=linux
initrd=/boot/initrd-2.4.20-8.img
read-only
append="root=LABEL=/"
10.使配置生效
#/sbin/lilo
#/sbin/reboot
这样重新启动以后,机子不能启动,请各位帮我看看哪步有问题
|
补充:我的做法:
第7步为:
make install
它自动添加到grub.
8,9,10省略.
第7步为:
make install
它自动添加到grub.
8,9,10省略.
|
估计你的系统已经废了.重装吧.
编译内核后最好不要把你以前系统的内容删掉了.编译的内核不一定就能成功.
你可以修改lilo.conf的值,加进去你的选项,这样开机时可以选择用那个内核进
系统,这是我的Grub.conf,我有两个内核可以进系统.
#boot=/dev/hda
default=2
timeout=20
splashimage=(hd0,5)/grub/july.xpm.gz
title Red Hat Linux (2.6.0)
root (hd0,5)
kernel /vmlinuz-2.6.0 ro root=/dev/hda7
initrd /initrd-2.6.0.img
title Red Hat Linux (2.4.20-8)
root (hd0,5)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
lilo的我很久没用,上网找找吧,差不多的.
编译内核后最好不要把你以前系统的内容删掉了.编译的内核不一定就能成功.
你可以修改lilo.conf的值,加进去你的选项,这样开机时可以选择用那个内核进
系统,这是我的Grub.conf,我有两个内核可以进系统.
#boot=/dev/hda
default=2
timeout=20
splashimage=(hd0,5)/grub/july.xpm.gz
title Red Hat Linux (2.6.0)
root (hd0,5)
kernel /vmlinuz-2.6.0 ro root=/dev/hda7
initrd /initrd-2.6.0.img
title Red Hat Linux (2.4.20-8)
root (hd0,5)
kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
initrd /initrd-2.4.20-8.img
lilo的我很久没用,上网找找吧,差不多的.
|
是的,不要把原装删掉,很危险.
我是用光盘上源代码kernel-2.4.20进行编译,它生成新内核2.4.20,这样有了
两个内核.
我是用光盘上源代码kernel-2.4.20进行编译,它生成新内核2.4.20,这样有了
两个内核.