热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » Linux内核/嵌入技术 » 编译Linux内核

编译Linux内核

论坛链接
  • 编译Linux内核
  • 发布时间:2008-09-14 16:52:51    浏览数:6711    发布者:tznktg    设置字体【   
1.下载http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.bz2到/usr/src
2.
#cd /usr/src
#tar xjvf linux-2.6.24.tar.bz2
#cd linux-2.6.24
#make mrproper
#make menuconfig
#make clean
#make bzImage
#make modules
#make modules_install
#cp System.map System.map-2.6.24
#mkinitrd /boot/initrd-2.6.24.img 2.6.24
#vi /boot/grub/grub.conf

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/sda1
# initrd /boot/initrd-version.img
#boot=/dev/sda
default=0
timeout=5
selinux=0
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.18-1.2798.fc6)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=LABEL=/1
initrd /boot/initrd-2.6.18-1.2798.fc6.img
title Linux (2.6.24)
root (hd0,0)
kernel /boot/vmlinuz-2.6.24 ro root=LABEL=/1
initrd /boot/initrd-2.6.24.img

解释:
#make mrproper
如果是第一次编译可以不用执行这个命令,这个的目的是清除原先此目录下残留的.config和.o(object)文件,但是如果您已经编译过多次内核的话,这一步是一定要的,不然以后出现很多小问题

#make menuconfig
配置内核选项,编译内核的关键步骤。有四种方式
#make config(基于文本的最为传统的配置界面,不推荐使用)
#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
各选项的介绍可以参考这里http://www.mytiandi.com/html/53/n-11453.html,这是2.6.19的,与2.6.24有一些不同,只能作为参考。
在make menuconfig中,有的选择[],有的选择[M],有的选择[],*表示选中直接加载进kernel,而M则表示会在后面的make modules中编译成modules,以后随时可以通过insmod和modprobe调入内核。
很多文章说执行完make menuconfig后要执行make dep,但我在执行make dep时提示***Warning: make dep is unnecessary now.可能是新版内核不需要再执行make dep了

#make clean
清除一些不必要的文件,如果不执行有可能会导致在编译过程中出现错误

#make bzImage
根据选择的内核选项,生成内核文件。如果确定生成的内核文件在640K一下,也可以用make zImage,但还是推荐用make bzImage

#make modules
将在make menuconfig时所选择为M的选项,全部编译成模块并放在/usr/src/linux-2.4.24/

#make modules_install
将编译生成的模块安装到/lib/modules/2.6.24下

#cp System.map System.map-2.6.24
2.6.24标识内核的版本,关于System.map参考http://blog.csdn.net/ryman/archive/2004/10/27/154697.aspx

#mkinitrd /boot/initrd-2.6.24.img 2.6.24
如果用的是 SCSI硬盘并且采用的是ext3分区格式的话,一定要制作initrd.img(因为SCSI卡的驱动包括在这个里边),如果使用的是IDE硬盘,可以 跳过这一步。2.6.24是/lib/modules/下的2.6.24,是make modules_install生成的

#vi /boot/grub/grub.conf
编辑grub.conf,插入
title Linux (2.6.24)
root (hd0,0)
kernel /boot/vmlinuz-2.6.24 ro root=LABEL=/1
initrd /boot/initrd-2.6.24.img
/boot/vmlinuz-2.6.24是新内核的路径
/boot/initrd-2.6.24.img是mkinitrd /boot/initrd-2.6.24.img 2.6.24生成的

重启,在grub启动时选择 Linux (2.6.24)即可用新内核启动系统,如果要修改默认的启动内核,将/boot/grub/grub.conf中的default=0改为1,具体参考grub.conf的配置。
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理