Linux内核版本与patch的使用方法
更新时间:2023-12-25 20:46:01 阅读量: 教育文库 文档下载
Linux内核版本与patch的使用方法
一、linux内核的分类与版本
linux内核起码有标准内核(来源http://www.kernel.org/ )及针对各种处理器或平台的linux内核。在做嵌入式开发时需要明确:什么平台/处理器?什么版本的linux内核?这关联到需要什么内核补丁,作怎样的交叉编译,需要什么交叉编译环境。
1、什么是标准内核?
按照资料上的习惯说法,标准内核(或称基础内核)就是指主要在http://www.kernel.org/维护和获取的内核,实际上它也有平台属性的!这些linux内核并不总是适用于所有linux支持的体系结构。这些内核版本很多时候并不是为一些流行的嵌入式linux系统开发的,也很少运行于这些嵌入式linux系统上,这个站点上的内核首先确保的是在Intel X86体系结构上可以正常运行,它是基于X86处理器的内核,如:
对 linux-2.4.18.tar.bz2的配置make menuconfig时就可以看到,Processor type and features --->中只有386、486、586/K5/5x86/6x86/6x86MX、Pentium-Classic、Pentium-MMX、Pentium-Pro/Celeron/Pentium-II、Pentium-III/Celeron(Coppermine)、Pentium-4、K6/K6-II/K6-III 、Athlon/Duron/K7 、Elan 、Crusoe、Winchip-C6 、Winchip-2 、Winchip-2A/Winchip-3 、CyrixIII/C3 选项,而没有类似samsun 2410等其他芯片的选择。
如果需要用在其他特定的处理器平台上就需要对内核进行打补丁,形成不同的嵌入式内核。实际上,不同处理器系统的内核下载站点中提供的也往往是补丁patch而已,故原x86平台上的内核变成了基础内核,也被称为标准内核了。
2、linxu操作系统的分类
第一层次分类:以主要功能差异和发行组织区分(基础linux系统/内核)
1)标准linux 2)uClinux
无MMU支持的linux系统,运行在无MMU的CPU上; 3)Linux-RT
是最早在linux上实现硬实时支持的linux发行版本; 4)Linux/RTAI
支持硬实时的linux,于RT-linux最大的不同之处在于RTAI定义了RTHAL,它将RTAI需要在linux中修改的部分定义成一组API接口,RTAI只使用API接口与linux交互;
5)Embedix
由Lineo公司开发,基于PowerPC和x86平台开发的。 6)Blue Cat Linux
7)Hard Hat Linux 8)其他
第二层分类:以应用的嵌入式平台区分(嵌入式linux系统/内核,使上面第一类中的各种linux系统扩展为对特定目标硬件的支持,成为一种具体的嵌入式linux系统)
由于嵌入式系统的发展与linux内核的发展是不同步的,所以为了要找一个能够运行于目标系统上的内核,需要对内核进行选择、配置和定制。因为每一种系统都是国际上不同的内核开发小组维护的,因此选择linux内核源码的站点也不尽相同。
第二层分类中的linux系统/内核相对于第一层分类的标准内核来说,也可以称为嵌入式linxu系统/内核。如应用在ARM平台上的嵌入式Linux系统通常有arm-linux(常运行在arm9平台上),uclinux(常用在arm7平台上),在标准linux基础上扩展对其他的平台的支持往往通过安装patch实现,如armlinux就是对linux安装rmk补丁(如patch-2.4.18-rmk7.bz2)形成的,只有安装了这些补丁,内核才能顺利地移植到ARM Linux上。也有些是已经安装好补丁的内核源码包,如linux-2.4.18-rmk7.tar.bz2。
不同处理器系统的内核/内核补丁下载站点: 处理器系统 x86 ARM PowerPC MIPS SuperH M68K non-MMU (ARM7TDMI/ColdFire) 适合的内核站点 http://www.kernel.org/ http://www.arm.linux.org.uk/developer/ http://penguinppc.org/ http://www.linux-mips.org/ http://linuxsh.sourceforge.net/ http://linux-m68k.org/ http://www.uclinux.org/ 这些站点不仅仅是linux内核站点,它们可能直接提供了针对你的目标硬件系统的linux内核版本。
3、标准linux与uclinux有什么关系和区别?armlinux与uclinux有什么分别?
标准内核可以直接自己配置编译,用到你的PC机去取代原先安装系统时的内核,它首先基于x86体系。uclinux是省略MMC的linux内核,是标准内核的一个简化版本。而armlinux是基于平台的一个嵌入式系统内核,也就是一个具体的嵌入式系统。uclinux的获取是一个类似于标准linux的内核目录,而armlinux的获取一般是通过对标准linux内核打补丁。
二、linux内核的选择
Linux核心源程序通常都安装在 /usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心。
Linux-2.4.10~Linux-2.4.15版本的内核应该避免使用,因为它们出现在对内核大量改动时期,不稳定。
选择内核版本是很困难的,应该与负责维护该内核的小组保持联系,方法是通过订阅一些合适的邮件列表(maillist)并查看邮件中相关的重要新闻,以及浏览一些主要站点,可以得到该内核的最新发展动态。如针对ARM的Linux内核,可以访问http://www.arm.linux.org.uk/ 并订阅该网站上提供的maillist就可以了。如果觉得查阅邮箱中的邮件列表耗费太多时间,那么至少每周访问所关心的内核网站,并阅读Kernel Traffic提供的过去一周中在内核邮件清单中发生的重要的摘要,网址为http://kt.zork.net/kernel-traffic 这样就可以得到相关Linux内核的最新信息。
并不是Linux的每个版本都适合ARM Linux的移植,可以加入其邮件列表(maillist)以获得内核版本所支持硬件的相关信息。
上表列出的资源可以帮助你找到哪些没有列出的功能可以被你的系统支持! ARM Linux的移植,建议使用2.4.x或2.6.x版本
Linux内核补丁可以到ARM Linux的ftp(ftp://ftp.arm.linux.org.uk )下载。
三、内核补丁与补丁的安装
内核补丁不是一定需要的,这要看你选择的是怎样的linux内核,比如下载下来标准的linux内核,想要编译linux系统在x86的PC机上运行,就根本不用什么板间支持的补丁了,因为标准linux内核本身基于x86平台测试。而如果使用Embedix内核,开发板是PPC体系的,内核可能本身已经支持PPC,也不需要安装补丁了。但嵌入式系统往往工作在不同的特定目标板上,如arm,这就需要使linux内核扩展对目标体系的支持了。
常见的如arm板,下载了标准linux内核是不够的,还要从arm linux的相关站点下载相应版本的补丁,标准内核安装了补丁后才能正确配置,对目标体系支持。如linux-2.4.18.tar.bz2内核,打补丁patch-2.4.18-rmk7.bz2就跟整合了的源码包linux-2.4.18-rmk7.tar.bz2一样了,是一个armlinux系统内核了。而如果需要扩展对m68k芯片的支持,就需要m68k的补丁了。
补丁的安装方法可以参考man patch的说明,我总结自己常用的方法如下: 1、 patch应用的方法是进入内核目录后#patch -p1 < patch文件的位置,如:
1)# bunzip2 patch-2.4.18-rmk7.bz2
把patch-2.4.18-rmk7.bz2解压成patch-2.4.18-rmk7(覆盖了原压缩文件) 2)# mv patch-2.4.18-rmk7 linux/
把patch-2.4.18-rmk7移动到内核解压目录linux中。 3)cd linux 进入linux目录
4)# patch -p1 < patch-2.4.18-rmk7 注意 < 前后都有一个空格 得到 ……
patching file net/irda/iriap.c
patching file net/irda/irlan/irlan_common.c patching file net/irda/irlap_event.c patching file net/irda/irlap_frame.c
patching file net/irda/irttp.c
patching file net/sched/Config.in 成功应用补丁。
2、把解压的补丁(不用解压)移动到解压的内核目录中,执行 # bzip2 -dc patch-2.4.18-rmk7.bz2 | patch -p1
参考资料
1、《源码开放的嵌入式系统软件分析与实践——基于skyeye和arm开发平台》陈渝 李明 杨晔 等编著 北京航空航天大学出版社
引用地址
http://blog.csdn.net/huangqiqun/archive/2007/03/03/1520010.aspx
正在阅读:
Linux内核版本与patch的使用方法12-25
500kVGIS技术协议-ABB11-19
七年级列方程解应用题培优训练题06-18
《国际贸易实务》周桂荣主编09-22
大学会计专业学年论文选题12-06
协会换届大会议程07-26
2018高中青年岗位能手事迹材料02-24
对比中外电子政务如何进行绩效评估04-15
罗廊巷顶管方案 - 图文06-25
中国四大古典名著中蕴含的管理智慧10-07
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 内核
- 使用方法
- 版本
- Linux
- patch
- 小学语文五年级上册《口语交际 习作二》WORD版教学设计
- 冲压件价格计算方法
- 杂题之抽屉原理练习题目12套
- (秋季新版)七年级语文上册 8《世说新语》两则(咏雪、陈太丘与友期)导学案(新人教版)
- 化学人教版高中选修4 化学反应原理高二化学(选修4) 第三章 第二节 水的电离和溶液的酸碱性(第一课时)
- 2009年自主招计算机试题复旦大学千分考
- 关于师徒结对交流活动的通知
- 标准毕业论文范文模板(附带标注)
- 旅游英语分层教学计划
- 商业银行单选
- 2015年青海省口腔执业医师:口腔黏膜消毒剂模拟试题
- 英美文学毕业论文
- 陕旅版第六册英语教案
- 中共义乌市第十三次代表大会工作报告
- 全国中小学和幼儿园教师资格面试指定回答问题
- 2012年朝阳目标物理参考答案
- 金工车间年终总结
- 徐渭《自为墓志铭》阅读答案及翻译
- 上海交通大学2016年博士招生统考《材料科学基础》真题回忆版2016
- 新生儿外周静脉与股静脉采血穿刺效果观察