ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:1.05MB ,
资源ID:3443449      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3443449.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Linux 内核编译上机实验.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Linux 内核编译上机实验.docx

1、Linux 内核编译上机实验成绩辽宁工程技术大学上机实验报告课程名称Linux程序设计实验题目实验六 内核编译实验院系软件学院专业嵌入式班级软件09-2姓名王翀学号0920010214实验日期2012.5.27实验目的1、 了解Linux 内核源代码的目录结构及个目录的相关内容 2、 了解Linux内核各配置选项内容和作用3、 掌握Linux内核配置文件config.in的作用4、 掌握Linux内核的编译过程5、 掌握讲新增内核代码加入到Linux内核结构中的方法 实验准备1、装有虚拟机(VMware Workstation)和嵌入式Linux系统(Red Hat 9)的PC 机一台;2、X

2、SBase270实验开发平台一套;实验进度本次共有 1 个练习,完成 1 个。实验内容实验原理:1.内核编译:内核是操作系统的核心组件,他负责为程序员编写应用程序分配所需要的计算机资源。内核在程序员编写的应用程序和硬件之间扮演一个协调者的角色。负责为同时运行的程序分配资源和管理程序所需要的内存空间。准确点说,是为运行进程和线程分配必要的资源。编译是使用一个编译器将源代码编译为一个二进制可执行文件过程。Linux的源代码主要是由C代码和一些汇编代码组成。2内核源代码目录、(1)arch arch子目录包括所有与体系结构相关的内核代码,它的每一个子目录都代表一个支持的体系结构。例如:arm下面就是

3、arm体系架构的处理器目录,包含我们使用的PXA处理器。(2)Includeinclude子目录包括编译内核所需要的大部分头文件。与ARM相关的头文件在include/asm-arm子目录下。(3)init这个目录包含内核的初始化代码但不是系统的引导代码,包含main.c和Version.c文件 。(4)mm 包含所有独立于CPU体系结构的内存管理代码 。(5)Kernel 包括主要的内核代码 (6)Drives 此目录用于放置系统所有的设备驱动程序,每种驱动程序个占一个子目录 /char:字符设备驱动程序。如串口、鼠标等。 /cdrom:包含Linux所有的CD-ROM代码。/pci:PCI

4、卡驱动程序代码,包含PCI子系统映射和初始化代码等。scsi:包含所有的SCSI代码已经Linux所支持的所有的SCSI设备驱动程序代码。 net:网络设备驱动程序。sound:声卡设备驱动程序。实验内容:(1)make mrproper:删除所有以前在构核过程所产生的所有文件; (2)make menuconfig:内核配置;(3)make dep:寻找依存关系;(4)make zImage:产生压缩的核心映像文件,内核编译完毕之后,生成zImage内核映像文件保存在源代码的arch/arm/boot/目录下。实验步骤:1. 计算机搭建好相关环境,如图1虚拟机安装好虚拟工具设置好相关共享,以

5、虚拟linux系统共享windows资源,并将目录设置为/mnt/hgfs/linux。并将开发光盘中Kernel下的linux-2.4.21-51Board_EDR.tar.gz放到共享文件夹中。如图1 图12.将linux-2.4.21-51Board_EDR.tar.gz解压,并将交叉编译工具安装在/opt/xscalev1/bin下,如图24 图24 3.内核配置项介绍,如图5 首先切换linux源代码所在的目录,并终端输入make menuconfig,系统弹出基于Mcurses内核配置图形界面,便可进行内核选项的配置 图54.配置选项的含义 在有- 标志的地方按回车键可到下面的菜单

6、。按两次或选择则到上面的菜单;按“h” 键或选择下面的 则可看到帮助;按 键则在控制(control)之间移动;Y表示包含在kernel中, N表示除外, M表示模块。设置状态在 或 中以 “ * “(选择), “ M “ (模块), 空格(除外)来表示(1) Code maturity level options*Promprt for development and/or incomplete Code/drivers-选择kernel代码的成熟度的部分,帮助选择开发版本层次的程序,此项体温是否将arpha版本包含kernel中。如图6 图6(2)Loadable module suppo

7、rt* Enable Loadable moduLe Support -利用模块可将不常用的设备驱动或功能作为模块放在内核外部,必要动态地调用。操作结束后从内存中删除,这样可以有效地使用内存,同时也可减小了内核的大小。 模块可以自行编译并具有独立的功能,即使需要改变模块的功能,也不用对整个内核进行修改。文件系统,设备驱动,二进制格式等很多功能都支持模块。一定要选择*。 Set version information on all Symbols for modules -利用这个功能能够让内核使用其它内核版本模块或没有包含在此 kernel 的特殊的模块。 一般选择N。 * Kernel mo

8、dule Loader -这个设置使 kernel 对模块处于常备状态。在不使用Insmod或rmmod命令情况下,kernel程序自动将需要执行的模块调用到内存中,一定时间内不使用该模块时自动将其从内存删除一般要选择* 。如图7 图7(3) System Type (PXA270/210-based) ARM system typ 系统格式中按照EELIOD的CPU格式选PXA270/210-based。如图8。 图8(4)、General setup 网络,总线协议,节电功能等影响整个系统的设置。 如图9 图9(5)、Memory Technology Devices (MTD) 在嵌入式

9、设备中为了组成固态文件系统 (solid state filesystem, 即不旋转的,没有磁盘的) 而需要的闪存, RAM, 和其它类似的芯片组等存储装置。 如图10 图10 RAM/ROM/Flash chip drivers如图11图11Mapping drivers for chip access-如图12 图12(6)Block devices针对硬盘, CDROM 等以 block 为单位进行操作的存储装置 (block device) 选项。 Loopback device support 使一个文件能够被认为一个文件系统。例如,软盘的 image 文件或拷贝 CD-ROM 的

10、文件,可被认为一个文件系统, 因而可以查看其内容。如图13 图13(7)Networking options * Packet Socket 与 tcpdump(检查包的头部, 按条件打印其内容)类似, 在没有媒介协议而直接与网络设备通信的应用上使用。 * Packet socket: mmapped IO ( 激活此选项可使包协议驱动(packet protocol driver)支持更快速的IO机制。 * Socket filtering * Unix domain Sockets * TCP/IP networking ( 此功能使Linux 系统成为TCP/IP 网络。TCP/IP 是

11、区域网络及互联网标准协议,不经过互联网的 Standalone 电脑也需要 TCP/IP,因为Term和 XWindow等程序也使用TCP/IP协议。 * IP: kerneL LeveL autoconfiguration : * IP: DHCP Support * IP: BOOTP Support * IP: RARP Support ( 客户系统(client system) 启动从DHCP或BOOTP服务器索取网络设置信息的功能。 用于启动没有磁盘的系统中, 通过NFS的根文件系统(root filesystem)项也要选择Y。如图14 图14(8)Network device s

12、upport * Network device support 如果用户的计算机连接到网络上,或者想使用SLIP或PPP的候选择。 Ethernet (10 or 100Mbit) * SMSC LAN91C111 support for EELiod Board 支持EELIOD Ethernet 卡中LAN91C111。如图15 图15(9)IrDA (infrared) support (9)Character device 9 支持终端, 视频适配器,鼠标,打印机等以文字为单位进行操作的设备。 * VirtuaL terminaL 一个物理终端上可执行多个虚拟终端。虚拟终端可支持多个X

13、 session,也可同时使用多个显示器。EELIOD 板可支持两个,Minicom和lcd。 * Support for console on virtuaL terminal 系统console接收所有kernel信息和警告信息,允许以单独用户(single user)模式登录。 * Standard/generic (dumb) SeriaLSupport 适用Modem和串行鼠标,串行设备的功能。 * Support for console on serial port 可将串口用作console。(系统console是接收并打印kernel信息和警告信息,允许以单独用户模式登录的设备

14、) 也可用串口打印机等纪录各个信息。即使在这里设置Y,但如果不调整 kernel 参数,则/dev/tty0仍然占用着系统 console。参考man bootparam 或 bootloader文件可查到bootloader(lilo或loadlin)启动的时候应选用哪些选项。 利用这个选项可运行没有VGA卡的linux系统,kernel自动将/dev/ttyS0 设为系统console。即使没有直接连接到linux box的显示器,视频卡,键盘等,也可以在用串行线连接的其他终端上控制系统。这个功能常用倒利用 linux 的路由器,共享机等网络设备。 * Unix98 PTY Support

15、 PTY 是由软件驱动的虚拟设备(pseudo terminal)。由 master 和 slave 两个部分组成,与物理终端的操作完全相同,slave 模拟终端机。Master 设备从slave读入数据或写入slave。典型的master side程序是telnet服务器或 xterm。如图16 图16(10)File systems 这是对 linux 可接近的各个文件系统的设置。所有的操作系统都具有固有的文件系统格式。一般为了对不同操作系统的文件系统进行读写操作需安装特殊的应用程序。但是在Linux 可以同Kernel模块完成这些操作。 * KerneL automounter Supp

16、ort automounter 是根据要求对远程文件系统自动进行 mount 的一种工具。BSD 的amd 完全是用户空间的 demon,但 Linux的automounter在文件系统已经被 mount 的情况下为了减少overhead而部分地依赖于kernel。如果使用这个功能则NFSfiLeSyStem Support也被激活。 * Kernel automounter version 4 support (also supports v3) 如果用户的系统没有连接到大的分散网络,或者不是需要动态再设置的 lap top 之一的话,可能不需要 automounter,在这里选择N即可。如

17、图17 图17(11)Console drivers Frame-buffer support - * Support for frame buffer devices (EXPERIMENTAL) * PXA LCD support 为了在 Console 中能够使用图像功能而支持的功能。设置不妥会造成显示器或视频卡的损伤。如果不确定就选择N。Frame buffer 为用户提供等同地接近 linux 支持的各种硬件种类 的环境,其应用程序的制作简单,移植性强。为了完整地使用 Frame buffer 的所有功能,需要一个fbset的utility程序。EELiod 支持PXA LCD。如图

18、18。图18(12)Sound(13)保存,如图19 图19(14)生成内核镜像文件zImage,如图20 图205总结通过本次linux上机实验,我成功的完成了嵌入式linux系统内核的编译实验,并将自己开发的内核代码添加到Linux,认识了Linux内核的配置选项,在实验中得到了不小的收获。1、实验体会和收获认识了linux内核的结构,并了解了linux内核内核配置界面的使用方法:(1)在菜单方式的配置界面上可用上下方向键来在各自菜单之间移动。(2)在标有 标志的地方按回车键进入下级菜单 (3)按两次或选择则返回到上级菜单 (4)按 h 键或选择下面的则可看到配置帮助信息(5)按 键则在各控制选项之间移动(6)按Y 表示包含该功能选项配置在内核中,M 表示以模块的方式编译到内核中,N 表示该功能选项不进行编译 (7)设置状态在 或 中以 * (选择), M (模块), 空格(除外)来表示。 这是第一次成功将自己开发的内核代码添加到Linux,反复熟练要领,在同组同学的配合下,完成了实验要求,也为日后对完成嵌入式linux文件系统的搭建实验,做下铺垫。教师评语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1