嵌入式Linux系统内核的配置、编译和烧写_第1页
嵌入式Linux系统内核的配置、编译和烧写_第2页
嵌入式Linux系统内核的配置、编译和烧写_第3页
嵌入式Linux系统内核的配置、编译和烧写_第4页
嵌入式Linux系统内核的配置、编译和烧写_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二嵌入式Linux系统内核的配置、编译和烧写实验目的掌握交叉编译的基本概念;掌握配置和编译嵌入式Linux操作系统内核的方法;掌握嵌入式系统的基本架构。实验环境装有Windows系统的计算机;计算机上装有Linux虚拟机软件;3)嵌入式系统实验箱及相关软硬件(各种线缆、交叉编译工具链等等)。预备知识嵌入式Linux内核的配置和裁剪方法;交叉编译的基本概念及编译嵌入式Linux内核的方法;嵌入式系统的基本架构。实验内容和步骤4.1内核的配置和编译配置内核的MMC支持由于建立交叉编译器的过程很复杂,且涉及汇编等复杂的指令,在这里我们提供一个制作好的编译器。建立好交叉编译器之后,我们需要完成内核

2、的编译,首先我们要有一个完整的Linux内核源文件包,目前流行的源代码版本有Linux2.4和Linux2.6内核,我们使用的是Linux2.6内核;实验步骤:以root用户登录Linux虚拟机,建立一个自己的工作路径(如用命令“mkdir-p/home/user/build”建立工作路径,以下均采用工作路径/home/user/build),然后将“cross-3.32tar.bz2、dma-linux-2.6.9.tar.gz、dma-rootfs.tar.gz”拷贝到工作路径中(利用Windows与虚拟机Linux之间的共享目录作为中转),并进入工作目录;解压cross-3.3.2.ta

3、r.bz2到当前路径:“tar-jxvfcross-3.3.2.tar.bz2”;roQt(aiocalhostdma27DI#Isbakupdmalinux2.6.9.tar.gzcross-3.3.2.tar.bz2dma-rootfs-tar.gzdma-blob-xscale.tar.gzroqt10calhostdma2701#七日匕-jxvf7cross-3.3.2.tar.bz23解压完成后,把刚刚解压后在当前路径下生成的“3.3.2”文件夹移动至“/usr/local/arm/”路径下,如果在“/usr/local/”目录下没有“arm”文件夹,用户创建即可;解压“dma-li

4、nux-2.6.9.tar.gz”到当前路径下:tar-zxvfdma-linux-2.6.9.tar.gz解压完成后,在当前目录下生成“linux-2.6.9”文件夹。配置内核的MMC支持:进入内核源代码所在目录,即“linux-2.6.9”,输入“makemenuconfig”后回车,弹出如下窗口:SBsupportroriIingsupportcssupporiecuritvoptionsHelp*forSearch.Legend:*buiIt-i2CsupportIhacking一一一rvptographicoptoadanAlternateConfigurationFileJ“MMC

5、support”前出现“*”,以同样方式选择出现的几6加忝加完毕人口Makefile#行G.列徃找替换剪也VitiJ粘贴Iranll-FiLNIJX:/Jjcrme/27J/kcmrl/lithik-2.5J?-SIkII-KunsoleLinuxKerneIv2B6-9-270SL1Configuretion会站编辑査疳书签设矍郴助ArrowkeysnavigatethemenuBselectssubmenusBHighlightedlettersarehiPressingincludesPexcludestmodularizesfealures.PressLoexitHelp,forSea

6、rch.Legends*built-inexcluded60modulemoduIccapiabtiVERSION二2PATCHLEVEL二6SUBLEVEL=9EXTRAVERSION=-270SL1NAME二EDK亍按两次“Esc”键,提示你是否保存,选择“Yes”,至此内核MMCDv新程打幵朋存3打印typicaltargetsexecutemakehelplocatedin./READMEfilearetargetedonlytothedeveloper,donoDOCUMENTATIONToseealistofMoreinfocanbeCominentsinthisexpecttol

7、earnhowtobuildthekernelreadingthisfilek0如下两行:ntEnteringdirectory.MAARCH=arm+=-no-print-directoryCROSS_CMpiLE=/usr/lofial/arm/3b3J2/b(i1/arm_linuxneedtodoalittlethinktogettheorderingright.Mostimportantlysub-Makefilesshouldonlyevermodifyfilesi勺战消hh:debuggingAMblockdevicedrivernteIPX*255MilLinnediaGard

8、InterfacesupportnleIPX.27XMilLimediaCardJnlerfacesupportMake-/lvme/27(J/kcl/linus-2.6fiJe已誌迪丿-edil改文件“廡单即)编辑査看(y揑索工具文档帮助(H)7/lKj/27(/kcmcl/limix-2.6.fi/MakcfiIc(已悩改)-gcdil文件(E;编辑査看(里搜索(旦;r.Ji-T;文档(D)帮助(H;DvS勺炉臨冒內B:新建打开保存eMakefile7x打印战消W复制粘贴査找替换VERSION=2PATCHLEVEL=6SUBLEVEL二9EXTRAVERSION=-270SL1NAME二

9、EDKARCH=armCROSS_COMPILE=/usr/local/arm/3.3.2/bin/arm-linux-DOCUMENTATION*ToseealistoftypicaltargetsexecutemakehelpMoreinfocanbelo|catedin./READMECommentsinthisfilearetargetedonlytothedeveloper5don(存_译内核:输入后“/compleidmai270”后回车,丿女口7I:,7I:功时的现象是:-no-print-directoryLZJ.tmpvmlKSY-M.tmpkallsyms2.S:AS.li

10、mpkallsyms2.oLDvmlinuSYSMAPSystem.mapSYSMAP.tmpSystem.mapOBJCOPYarch/arm/boot/ImageKernel:arch/arm/boo.t/linageisreadyASarch/arm/boot/compressed/head.oGZIParch/arm/boot/compressed/piggy.gzASarch/arm/boot/compressed/piggy-0CCarch/arm/boot./compressed/misc.oASarch/arm/boot/compressed/head-scale.oLDarc

11、h/arm/boot/compressed/vralinuxOBJCOPYarch/arm/boot/zlmageKernel:arch/arm/boot/zlmageisreadyroot(3Localhost.linux-2.6.9#odoalittlethin!生成的内核映像文件“zlmage”保存在“./arch/arm/boot/”目录下,至此内核的配置和编译过程结束。4.2根文件系统的建立1)在嵌入式系统中,大多数文件系统是从存储器中直接被加载的,但有时受到ROM或FLASH大小的限制,文件系统要经过压缩放在存储器中,这时就需要在RAM中分配一块区域将文件系统解压后,再将文件系统挂

12、载到系统中,这种技术被称为“RAMDisk”,也称“RAM盘”技术;内核可以从存储器中导出RAM盘镜像,作为根文件系统来使用;在启动时,内核首先检查引导选项是否存在一个initrd,如果有,内核就从指定的存储介质中获得压缩或未压缩的文件系统镜像,并导入到RAM盘中,将其挂载作为根文件系统;2)下面主要介绍几种比较常用的文件系统:ROMfs文件系统是使用最多的文件系统,它是一种简单、紧凑和只读的文件系统;ROMfs顺序存储文件数据,并可以在uClinux支持的存储设备上直接运行文件系统,这样可以在系统运行时节省许多RAM空间。Cramfs文件系统是针对Linux内核2.4之后的版本所设计的一种新

13、型文件系统,也是压缩和只读格式的,其主要优点是将文件数据以压缩形式存储,在需要运行时进行解压缩;由于它存储的文件形式是压缩的格式,所以文件系统不能直接在Flash上运行;虽然这样可以节约很多Flash存储空间,但是文件系统运行需要将大量的数据拷贝到RAM中,消耗了RAM空间。JFFS2日志文件系统是专门针对闪存的文件系统,除了有日志功能,还有负载平衡、垃圾收集等,并且源码公开。YAFFS2(YetAnotherFlashFileSystem)文件系统是一种和JFFSx类似的闪存文件系统,和JFFS2相比它减少了一些功能,所以速度更快,而且对内存的占用比较小;YAFFS自带NAND芯片驱动,并且

14、为嵌入式系统提供了直接访问文件系统的API。除了上面介绍的文件系统之夕卜,还有RAMDISK(一种基于内存的文件系统)、TrueFFS等等;3)Linux内核在系统启动时的最后操作之一就是加载根文件系统,根文件系统中存放了嵌入式系统使用的所有应用程序、库及一些需要用到的服务;由于Linux受到UNIX系统发展的影响,Linux文件系统的组织和UNIX相同;根文件系统中每一个顶级目录都有特定的用途和目的,有些目录是为了多用户模式服务,在大多数没有用户和管理员的嵌入式Linux中,建立一个根文件系统可以不考虑大部分在多用户下需要注意的问题,下表列出了根文件系统顶层目录大致结构:目录内容bin基本命

15、令的可执行文件boot内核及启动需要用到的一些文件dev设备文件etc系统配置文件,包括启动文件home用户目录lib基本库,例如c库和内核模块mnt临时映射文件系统的映射点(映射目标)proc内核及进程信息的虚拟文件系统rootroot用户目录sbin用于系统管理的可执行程序tmp临时文件,在SDRAM中建立usr该目录的二级目录包含大部分对大多数用户很有用的应用程序和文档4)实验步骤:解压“dma-rootfs.tar.gz”到当前路径下:“tar-zxvfdma-rootfs.tar.gz”;制作根文件系统f1.jffs2:拷贝Windows目录mkfs下的文件mkfs.jffs2到虚拟

16、机相应目录之下(即与“dma-rootfs.tar.gz”在同一目录下),之后运行如下命令生成根文件系统:./mkfs.jffs2-r./rootfs-of1.jffs2-e0 x40000-pad=0 x01000000至此,制作根文件系统完成。4.3准备虚拟端口GivelO实验步骤:1)在Windows系统下,进入“GivelOlnstaller”目录中,双击“GivelOlnstaller.exe”启动“GiveIOInstaller”程序,显示如下界面:2)点击“InstallService”按钮,启动GiveIO服务,显示界面为:保留此窗口(即让此程序运行),GivelO虚拟端口准备

17、完毕。4.4烧写BLOB实验步骤:1)拷贝光盘上的“JFIash_27x”文件夹到计算机,如下图所示:丈件fE诉辑牴,亘音I也Rfei工旦I。帮貼但i退-J搜索文f半夹地址(珂IS)FjJFla曲口丄玄件和玄件夹任务盒型重命名这牛文件申移动这于文件复制遠亍立件将这亍文件发布到Web色以电子邮件电式发送此文件删除遠亍立件2)点击开始I程序附件令提示JFlash目录档然后输入“j名称憾201201201201201201201201201201201201201201201201201201大小类型斗KE;P5pi匚已SimuldtionR.4KE;P5pi匚巴SimulationR.4KE:RS

18、piceSimulationR.4KE;PSpiceSimulationR.4KE:P5pi匚已SimulationR.斗KE;P5piceSimuldtionR.斗KE;P5pi匚eSimuldtionR.4KE;P5pi匚巴SimuldtionR.,4KE;PSpiceSimulationR.2KE:安装信息1KE:配置设置3KB系统文件47KE:VinR.ARZIP,压缩80KE:应用程序3Flash_8810_2_rdatgFlash_8811丿空包datEjFlash_8812j_16.datFla5h_8812L2_2.datFlash_8813_J32;datSFlash_881

19、4_2_3?;datFlash_8815_l_16.datSFlash_8815_j2;datgFlash_8816_2_rdatJ;giveio.inf_qiveio.INI0GIVEIO.5Y5命令行终端,并进入JFIashmm.exeshMM.exepxa270blob”(注意:hh35KB.WlnRARZIP压缩!Acrobat7.0.卄吉丹址Source.zip35KBWinRA不要按“Enter”键;2blOb文件应首先从tftp-download目录逊eIy我的电脑、1JFlaSh_27x目录下,或者输入后先下拷贝至路径则无需拷贝):在命上给出blob文件所在的完整文件1111F

20、:cdJFlash_27xF:JFla5h_27xJFlasiim.exebulbcxblob3)把烧写数据线插入板子上的JTAG头,确保硬件连接正常后,拨动电源开关上电,输入“Enter”键,开始烧写:F:XJFlash_27xJFlashmn.exebulbcxblobJFLASHUersion5.01.007COPYRIGHT2000一2063IntelCovpovationPXA2?xMainstone1.00.002PLfiTFOnHSELECTION:Ppocessor=DevelopmentSysten=DataUeision=PXA27xrevision?Foundflasht

21、ype:28F128J3AErasingblockataddress0Startin(programming4)烧写UwzLn日DUFFEnprotficimningmode嚣完出烧功的提如口Erasingblockataddress0StartingprogrammingUsingBUFFERprograminingmode.Writingflashathexaddress11640,99.81ZdonePiogiamningdoneStartingUerifyUeriryincfflashatlicxti.ddress1174,90.09xdoneUerificationsuccessfu

22、l?至此,烧写blob完成。4.5烧写文件系统实验步骤:1)把前面编译好的内核和制作好的文件系统f1.jffs2、zlmage拷贝到Windows下的目录“tftp-download”之中;之前请记录PC机原来所使用的IP地址和子网掩码,本实验完成之后,要求按原样设置回去,实验结束时老师要检查!另外,VMware的两个网络实验结束时,也要求重新启用!),并用交叉网线将PC与开发板连接起来,IP地址:00,子网掩码:;3)进入“CiscoTFTPServer”目录,双击“TFTPServer.exe”,运行该服务器;4)置,其中最重要的是设置服务器的根目录,显然该目录应设置为“tftp-down

23、load”(注意是完整路径,可通过“浏览”按钮选择);5)板子重新上电,会看到如下所示界面,在BLOB启动过程,按“Enter”或者“Space”键,进入BLOB命令终端;ConsideryourselfBLOBed1welcometoredistributeiGNUGPLfordetails.done“blobinitethernet”启动BLOB的以太网支持,命令执行后,可看到网口的LED开始闪烁,表示网络初始化成功;8)“blobsetips00”配置TFTPServer的IP地址为00,和刚才配置的PC机的IP地址要相同;9)“blobsetipc01”配置TFTPClient的IP地

24、址为01,这就是配置板子的IP地址;blobmmtips192.1S8.10QSetIP七。19.2.168.IDOblobmetipc192.168.0.ID1SetIPto192.168,.101blob10)“blobtftpf1.jffs2”通过TFTP服务下载文件系统f1.jffs2到内存;blobtftpf1.jffs2TFTPingf1.jffs2*,:.OK.received3277blQcks(16777216bytes)t/ftp_cmd:fileTfl.jffs2Tloadedviatftpto讯d.且匚Ka100Q.blob11)“blobfwriteOxalOOOOO

25、O0 x2800000 x1000000”烧写文件系统到Flash;blobfwriteDxalO00000 x2800000 x1000000Erasing64blocksatOxD0280idoneFlashingDkOIDOODOObytesatDxO028000:diieblob至此文件系统f1.jffs2烧写完成。4.6烧写内核实验步骤(紧接着前面的实验,因此blob已经启动,且网络已经初始化):1)“blobtftpzlmage”通过TFTP服务下载zlmage文件到内存;blobblobtftpzlmageTFTPingzlmage*.QE.received2484blo.cks(1270828byt.es)tft.p_cmd:file7zlmage.7loadedviatftptoaddressOalO0002)“blobfwrite0 xa10000000 x800000 x200000”烧写zImage到Flash;blobfwriteDxalD00000080000 x200000Erasing8blocksat0 x00080000:doneFlashing

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论