版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、研 究 生 课 程 论 文(2009 -2010 学年第一学期)基于2.6内核和RTAI的实时Linux操作系统的构建研究生:xx提交日期:2010年 03月 09日 研究生签名:xx学 号xxxxxxxxxx学 院自动化科学与工程学院课程编号S0811020课程名称嵌入式系统原理及应用学位类别硕士任课教师xxx教师评语: 成绩评定: 分 任课教师签名: 年 月 日基于2.6内核和RTAI的实时Linux操作系统的构建xx摘要:传统的桌面系统由于其面向用户的窗口系统,实时性在工业控制领域不能得到满足。RTAI是一套用户可以使用的实时任务调用接口,它的出现给人们带来了契机。本文首先简单介绍Lin
2、ux操作系统,然后给出了基于Linux-内核的RTAI-3.8实时包安装过程,包括详细的内核配置修改及实时系统测试。关键词:Linux;RTAI;实时操作系统1 引言1.1 Linux操作系统Linux操作系统在短短的几年之内得到了非常迅猛的发展,这与Linux具有的良好特性是分不开的。Linux包含了Unix的全部功能和特性。简单的说,Linux具有开放性、多用户、多任务、良好的用户界面、设备独立性、提供了丰富的网络功能、可靠的系统安全、良好的可移植性。Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下
3、免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。 Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习 Unix操作系统的人都可
4、以从Linux中获益。1.2 实时Linux操作系统 早期的Linux系统没有实时能力,就连基本的内核态任务抢占也没有。如果谈论Real-Time Linux系统,首先要谈论RTLinux,它是第一个实时Linux系统,并且现在比较流行。RTAI是Real-Time Appication Interface 的缩写。从名称中可以看出RTAI是一套用户可以使用的实时任务调用接口。RTAI实际上是RTLinux的变种,由于RTLinux在移植时比较困难,因此RTLinux的一部分开发人员建立了RTAI系统。RTAI也采用了架空Linux内核的机制。为了提供方便的移植结构,RTAI非常小心的在Lin
5、ux上定义了一组RTHAL(Real-Time Hardware Abstraction Layer)。RTHAL将RTAI需要在Linux中修改的部分定义成一组函数接口,RTAI只使用这组接口和Linux沟通。这样可以使以后的移植工作中对Linux内核的代码修改量达到最低。RTAI是完全开源的实时系统,它的源代码可以从RTAI官方网站免费获取。现在RTAI的使用范围比RTLinux广泛的多。2 实时Linux操作系统实现步骤2.1 内核的编译内核,是个操作系统的核心。他负责管理系统的进程、内存、设备驱动程式、文档和网络系统,决定着系统的性能和稳定性。用户想要使用这些新特性,或想根据自己的系统
6、度身定制一个更高效,更稳定的内核,就需要重新编译内核。更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。1) 安装Linux操作系统 首先在计算机上安装ubuntu9.10系统,由于编译内核很难一次成功,需要多次编译,而编译过程中需要占用较大的空间,故给了20G的硬盘空间,其中/boot给了256M,swap给了200M,其余全给/。2) 登陆下载最新的RTAI压缩包rtai-3.8-tar.bz2,可以双击打开压缩包以查看里面内容,在这里主要查看与RTAI补丁包相
7、匹配的内核包的型号,进入/rtai-3.8/base/arch/i386/patches/目录,查看当下文件,可以看到支持最新的内核的相关文件是hal-linux-。故需要下载linux-2.6.23版本内核。这里i386与x86之间的区别很小,因为之间用过x86中的相关内核2.6.32编译总出现错误,故在此选择i386中的。3) 登陆下载相关内核,现在我们就得到了RTAI压缩包和内核压缩包了。接下来将两个压缩包拷到 /usr/src文件夹里面,这里需要root根用户权限,为以后能更方便的以管理员身份操作文件,这里安装一个软件,它的功能是用右键点击文件夹会出现“以管理员身份打开”选项,否则直接
8、复制会出现“移动文件出错:Permission denied”提示。在终端输入sudo apt-get install nautilus-gksu 便可以安装。4) 现在 /usr/src文件夹中有两个压缩包,分别是:rtai-3.8.tar.bz2和linux-.2.tar.bz2。下面开始内核的编译工作:5) 切换到root权限,并准备基本的编译工具:wr-laptop:# sudo -irootwr-laptop:# apt-get install build-essential kernel-package ncurses-dev 6) 进入/usr/src目录,以后的操作都是在这个目
9、录中进行,解压缩rtai补丁包:rootwr-laptop:# cd /usr/src rootwr-laptop:/usr/src 7) 解压缩后会在 /usr/src目录下出现rtai-3.8文件夹。也可以在此查看rtai支持的Linux内核版本,如下图所示:图2.1 rtai-3.8支持的Linux内核版本8) 解压缩内核,并进入到linux-文件夹目录中:rootwr-laptop:/usr/src# tar jxvf linux-.tar.bz2 rootwr-laptop:/usr/src# cd linux-图2.2 解压缩后的文件夹 9) 给内核打上相应的RTAI补丁,注意补丁
10、与内核要匹配:rootwr-laptop:/usr/src/linux-10) 配置Linux内核,配置菜单有很多种,在ubuntu下推荐使用图形化的配置菜单,如果提示错误表示当前并没有安装ncurse库,可以通过命令apt-get install libncurses5-dev下载安装ncurese库(前面基本的编译工具中已安装)。重新建立一个核心需要将源代码树置于一种完整和一致的状态。因此,可以先执行命令make mrproper,它将清除目录下所有配置文件和先前生成核心时产生的中间文件。rootwr-laptop:/usr/src/linux-3# make mrproperrootwr
11、-laptop:/usr/src/linux-.2# make menuconfig图2.3 menuconfig内核配置界面11) 配置内核需要格外的细心和耐心,一步一步配置,因为这直接影响后面对内核的编译,关系到能否编译成功,需要说明的是,编译中出现的问题需要一些耐心解决,多查资料,多尝试,有时候需要反复编译才能成功。在此只列出一些较重要的选项进行说明:(1). General setup -Local version-a ppend to kernel release = -rtai-3.8 本地版本-附加内核发行版本,此处填-rtai-3.8-wr,表明我们已经给新内核配置了RTAI,
12、这样会在新内核的启动向导中出现2.6.23rtai-3.8-wr的选项,General setup -Create deprecated sysfs files (NEW) -no(3). Enable loadable module support - (允许可装载的模块支持)- Module versioning support (模块支持的版本)=no 不同的内核在使用同一模块时区别于塔原有的模块,此处不选。Enable loadable module support-Module unloading(模块卸载) 这个选项可以卸载不再使用的模块,如果不选将不能卸载任何模块。 (4).Pr
13、ocessor type and features -(处理器的类型和特性)- Symmetric multi-processing support(对称多处理器支持)=no 如果有多个CPU或者使用的是多核CPU就选上.此时Enhanced Real Time Clock Support选项必须开启,Advanced Power Management选项必须关闭Processor type and features - Interrupt pipeline =yesProcessor type and features - Subarchitecture Type(子构架类型) =PC-co
14、mpatible 标准的PC或兼容机。Processor type and features - Processor family(处理器系列)=core 2/newer xeon 根据实际CPU选择Processor type and features -Generic x86 support(通用x86支持)=no CPU能在上述”Processor family”中找到就可不选Processor type and features -Multi-core scheduler support(针对多核CPU进行调度策略优化) =yesProcessor type and features
15、-Preemption Model(内核抢占模式)-Preemptible Kernel (Low-Latency Desktop)(适合运行实时程序的主动内核抢占)-yes(5). Power management options (ACPI, APM) - Power Management support(电源管理选项) =no 电源管理有APM何ACPI两种标准且不能同时使用,即使关闭该选项,X86上运行的Linux也会在空闲时发出HLT指令将CPU进入睡眠状态。Power management options (ACPI, APM) - CPU Frequency scaling(CP
16、U变频控制)- CPUF requency scaling Power management options =no CPU变频控制允许在运行中改变CPU主频,达到省电和降温的目的,但是这个驱动不会自动改变CPU的时钟速度,选择no。其他的设置可以保持默认,保存设置,也可备份一份配置文件,文件为/usr/src/linux-/.config。若要更进一步精简内核,则需要对配置的各类信息和自己的计算机硬件有详细的了解。实际上也可以使用xconfig对内核进行配置,用起来会更加方便。先得装依赖包。如下:rootwr-laptop:/usr/src/linux-# aptitude install
17、libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mtrootwr-laptop:/usr/src/linux-# make xconfig图2.4 xconfig内核配置界面12) 编译和安装内核:rootwr-laptop:/usr/src/linux-# make-kpkg cleanrootwr-laptop:/usr/src/linux-# make-kpkg -initrd kernel_image kernel_headers图2.5 内核编译中图2.6 内核编译完成当编译结束后,会在/usr/src目录下生成两个
18、文件,分别是镜像文件和头文件,如下图所示,然后需要安装这两个文件。图2.7 编译后生成的镜像文件和头文件13) 安装相应的镜像文件和头文件:rootwr-laptop:/usr/src/linux-# cd /usr/srcrootwr-laptop:/usr/src# dpkg -i linux-headers-rtai-3.8-wr_2.6.23-rtai-3.8-wr-10.00.Custom_i386.deb rootwr-laptop:/usr/src# dpkg -i linux-image-图2.8 安装完镜像文件和头文件安装后将得到了三个非常重要的文件,分别是System.ma
19、p,config和vmlinuz,其具体的文件名字是这三个文件名后接上内核版本还有个性化定制的名字,这三个文件应该已经被拷贝到/boot/路径下,如下图所示:图2.9 安装成功后生成的三个文件14) 重启系统rootwr-laptop:/usr/src# reboot选择进入刚刚编译的新内核,相应的选项应该为:linux-rtai-3.8-wr。因为ubuntu是硬盘安装,故开机画面无截图。2.2 编译RTAI启动新内核后,打开终端,接下来编译RTAI,对新内核进行实时配置。1) 配置RTAIwr-laptop:# sudo -irootwr-laptop:# cd /usr/src/rtai
20、-3.8rootwr-laptop:/usr/src/rtai-3.8# make menuconfig图2.10 RTAI配置界面配置中只需改动以下选项:General Linux source tree = /usr/src/linux-此处是对新内核进行RTAI配置,故路径选择是新内核的绝对路径/usr/src/linux-Machine(x86) Number of CPUs (SMP-only) =2由于我的电脑是双核,故此处选择的是2。其他的配置是选择默认的。2) 编译RTAIrootwr-laptop:/usr/src/rtai-3.8# make3) 安装RTAIrootwr-
21、laptop:/usr/src/rtai-3.8# make install图2.11 安装RTAI中4) 测试Linux-RTAIrootwr-laptop:/usr/src/rtai-3.8# cd /usr/realtime/time/testsuite/kern/latencyrootwr-laptop:/usr/realtime/time/testsuite/kern/latency# ./run图2.12 测试中可按Ctrl-C停止运行。2.3 出现的问题与解决1) CPU核过多,出现以下提示(之前编译所出现的问题):GEN include/linux/bounds.hCC arc
22、h/x86/kernel/asm-offsets.sIn file included from include/linux/sched.h:62,from arch/x86/kernel/asm-offsets_32.c:8,from arch/x86/kernel/asm-offsets.c:2:include/linux/ipipe.h:76:2: error: #error CONFIG_NR_CPUS is too large, please lower it.make1: * arch/x86/kernel/asm-offsets.s 错误 1make: * prepare0 错误
23、2 解决方法:首先尝试在网上搜索,是需要将CPU的个数支持降低,但是按步骤修改后,仍然出现上述错误,最后的解决方案是:在配置内核时将Processor type and features - Symmetric multi-processing support关掉。2) 可能是寄存器错误,出现以下提示:图2.13 错误提示解决方法:其实对问题的根源不是很清楚,在网站上查到了解决方案,打开文件arch/i386/boot/boot.h所在行用=q替换=r即可,如下图所示:图2.14 修改boot.h文件3) 编译成功后进入新内核提示以下错误:udev: missing sysfs features; please update the kernel or disable the kernels CONFIG_SYSFS_DEPRECATED option;解决方法:在 .config文件中查到CONFIG_SYSFS_DEPRECATED一行,将之关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024双方同意离婚协议之法律咨询服务合同
- 2024年度能源设施安防监控工程项目合同
- 2024医疗器械销售代理合同
- 2024年大连智能锁产品测试与质量控制合同
- 2024年度学校教学楼照明改造合同
- 2024年卫星导航与位置服务系统合作协议
- 2024年多功能砂浆添加剂采购合同
- 2024年全球贸易合作伙伴协议
- 2024年口腔门诊部员工合同模板
- 痤疮护理课件教学课件
- 企业如何利用新媒体做好宣传工作课件
- 如何培养孩子的自信心课件
- 中医药膳学全套课件
- 颈脊髓损伤-汇总课件
- 齿轮故障诊断完美课课件
- 2023年中国盐业集团有限公司校园招聘笔试题库及答案解析
- 大班社会《特殊的车辆》课件
- 野生动物保护知识讲座课件
- 早教托育园招商加盟商业计划书
- 光色变奏-色彩基础知识与应用课件-高中美术人美版(2019)选修绘画
- 前列腺癌的放化疗护理
评论
0/150
提交评论