首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:软路由 参考手册 开发工具
 → 当前位置:首页>系统管理>内核技术>正文

编译内核

OKLinux www.oklinux.cn 2007-01-09 来源:         会员收藏 游客收藏

也许2.6.0内核会给linux带来革命。从2.5.*内核开始linux有了向高端应用进军的资本。这次2.6.0内核也是主要是在高级应用上有较大变化。还有增加了对更多的设备的支持(nForce2主板就需要新内核支持)。这些也不是咱们讨论的范围。对了新的内核,给大家第一感受是,鼠标,键盘,好用了。新内核对这些外设做了优化。(以后还可能弄一个专门为了显示的内核,到那时linux就真的可以进军桌面了。)这些特点其实在2.5.*某些版本里已经有了。还有2.6.0的Makefile文件也变化很大,也许比大家想的要好用的多。

新内核可以在http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.0-test2.tar.gz下载。
   先把linux-2.6.0-test2.tar.gz 复制到/usr/src/ 的下面 tar -zxf linux-2.6.0-test2.tar.gz; cd linux-2.6.0-test2 因为是新内核没有编译过所以不用make mrproper 把原来编译产生的垃圾删除
   配置内核可以根据需要与爱好使用下面命令中的一个:

   #make config (基于文本的最为传统的配置界面)

   #make menuconfig (基于文本选单的配置界面)

   #make xconfig (基于图形窗口模式的配置界面)

   #make oldconfig (如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)


   进行配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。例如,如果需要内核支持DOS分区的文件系统,则要在文件系统部分选择FAT或DOS系统支持;系统如果配有网卡、PCMCIA卡等,需要在网络配置中选择相应卡的类型。

   选择相应的配置时,有三种选择,它们分别代表的含义如下:

   “Y”- 将该功能编译进内核

   “N”- 不将该功能编译进内核

   “M”- 将该功能编译成可以在需要时动态插入到内核中的模块。

   将与核心其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响。许多功能都可以这样处理,例如像上面提到的网卡的支持、对FAT等文件系统的支持。

   其实现在编译内核最关键的地方就是配置内核。我一般用make menuconfig配置内核。
配置2.6.0内核时如果你的主板是Intel芯片的话,你用默认配制也许就可以得到一个满意的内核哦。做法是make menuconfig后离开时选择保存。

   这里的难点是pci,如果你硬盘是IDE的那一定要选择好你主板上南桥芯片。SCSI的话就是要选择上你的SCSI卡型号。
   还有就是网卡,声卡芯片的型号了,他们的型号你都可以用lspci 查找到比如我的是。


sh-2.05a# /sbin/lspci
00:00.0 Host bridge: ServerWorks CNB20LE Host Bridge (rev 05)
00:00.1 Host bridge: ServerWorks CNB20LE Host Bridge (rev 05)
00:02.0 PCI bridge: Intel Corp. 80960RP [i960 RP Microprocessor/Bridge] (rev 01)
00:02.1 I2O: Intel Corp. 80960RP [i960RP Microprocessor] (rev 01)
00:04.0 Ethernet controller: 3Com Corporation 3c985 1000BaseSX (SX/TX) (rev 01)
00:08.0 PCI bridge: Digital Equipment Corporation DECchip 21152 (rev 03)
00:0e.0 VGA compatible controller: ATI Technologies Inc 3D Rage IIC (rev 7a)
00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 4f)
00:0f.1 IDE interface: ServerWorks OSB4 IDE Controller
02:04.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 05)
02:05.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 05)
03:02.0 PCI bridge: Intel Corp. 80960RM [i960RM Bridge] (rev 01)
03:08.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08)

   你只要把你pci上的东西全部选择对了。 剩下就用默认的就可以了

   配制内核完毕后make install 还要说一句make install也是最近的从2.5.69内核(按照内核发布时间算)开始才有的选项他可以帮你完成很多东西。方便大大的 。
   2.4.21你可以用make install

   现在这些步骤就是没有make install时要做的

#make dep (确保关键文件在正确的位置) 2.5.*-2.6.0都不需要了。其实2.4.*某些内核也不需要了。

   #make clean (确保所有有关文件都处于最新版本状态)

   #make zImage (编译压缩形式的内核)

   在需要内核支持较多的外设和功能时,内核可能变得很大,此时可以编译大内核:

   #make bzImage

   编译的时间与机器的硬件条件及内核的配置等因素有关,以笔者的64MB内存的赛扬300为例,编译内核一次大致需要20多分钟。所获得的内核的位置在/usr/src/linux/arch/i386/boot目录下,当然这里假设用户的CPU是x86型的。

   如果选择了可加载模块,编译完内核后,要对选择的模块进行编译:

   #make module (编译选择的模块)

   #make module-install (将编译后的模块转移到系统标准位置)

   模块在系统中的标准目录位于/lib/modules/x.y.z,后面的x.y.z是版本号,为安全起见,在运行#make modules-install之前最好对/lib/modules进行备份。模块通常是带有扩展名.o的文件,使用命令#lsmod可以对当前内核的模块进行列表。

   我一般是 make dep ;make bzImage;make module ;make module-install

cp /usr/src/linux2.6.0-test2/arch/i386/boot/bzImage /boot/vmlinuz-2.6.0-test2

cp /usr/src/linux-2.6.0-test2/System.map /boot/System.map-2.6.0-test2

   这些make install都可以办到的

   剩下就是修改 /etc/lilo.conf

vi /etc/lilo.conf

   添加新内核。有时make install连这个都给你修改好了。
   下面是我的lilo.conf
prompt
timeout=50
default=linux
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
message=/boot/message
linear

image=/boot/vmlinuz-2.4.18-3smp
label=linux
initrd=/boot/initrd-2.4.18-3smp.img
read-only
root=/dev/sda6

image=/boot/vmlinuz-2.6.0-test2
label=linux-2.6.0-test2
initrd=/boot/initrd-2.6.0-test2.img
read-only
root=/dev/sda6


   再运行
sh-2.05a# lilo
   重新生成lilo
   这样你的内核就升级完毕。
上一篇: Linux编译内核详解   下一篇: linux内核编译时,修改内核版本信息
收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
· linux内核编译时,修改内核版本信息
· Linux编译内核详解
· 内核编译常见错误排除
· LINUX 内核编译小技巧
· 深入理解LINUX内核中文版下载地址
· Linux内核下载
· Linux内核2.6简介
· linux 内核升级和系统引导过程分析
· 揭开Linux系统内核调试器的神秘面纱
· Linux内核编程实战经验谈
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·Kernel command using Lin
·用命令行加挂Linux的文件
·Linux and symmetric mult
·Linux内核可装载模块对设
·使用 SystemTap 调试内核
·Linux内核和核心OS组件的
·busybox 制作tiny linux
·揭示恶意的Linux内核模块
·主流嵌入式Linux系统下GUI
·Linux系统内核接收以太帧
最新文章
· Linux内核编程实战经验谈
· linux 内核升级和系统引
· 深入理解LINUX内核中文版
· 内核编译常见错误排除
· linux内核编译时,修改内
· Linux编译内核详解
· LINUX 内核编译小技巧
· Linux内核2.6简介
· Linux内核下载
· 揭开Linux系统内核调试器
· Linux操作系统内核编码风
· 更换Fedora Core 6的内核
· 介绍RedHat AS4内核配置
· 内核操作 Linux2.6内核驱
· Linux内核分析方法

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有
合作联系 QQ:18743986 Email:arlan8005#163.com