嵌入式linux系统构建教学提纲.doc

上传人:1595****071 文档编号:52393214 上传时间:2022-10-22 格式:DOC 页数:20 大小:596.50KB
返回 下载 相关 举报
嵌入式linux系统构建教学提纲.doc_第1页
第1页 / 共20页
嵌入式linux系统构建教学提纲.doc_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《嵌入式linux系统构建教学提纲.doc》由会员分享,可在线阅读,更多相关《嵌入式linux系统构建教学提纲.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。嵌入式linux系统构建-中国地质大学(北京)实验报告课程名称:嵌入式系统实验名称:嵌入式linux系统构建姓名:xxxx学号:1010092229班级:10100922指导教师:xxxxxxxxxx评分:实验时间:实验题目:嵌入式linux系统构建一、 实验目的1、了解ARM9嵌入式开发板的基本结构;2、掌握linux交叉编译环境的建立;3、掌握编译和移植linux系统的基本方法;二、 实验器材1.安装有windows7或者xp系统的且能联网的pc一台(如直接装linux,则可以省略步骤一);2.采用

2、Atmel公司基于ARM9架构的处理器at91rm9200的开发板一块;三、 3.网线一条,USB转串口线PL2303一条,电源一只。实验步骤安装Ubuntu11.10鉴于对linux操作系统不是很熟悉,所以本次试验采用虚拟机的安装方式,也即在Windows7环境下运行Ubuntu。1.安装VMware首先下载得到VMware8.0的安装文件,安装成功并破解后运行VMware,如下图所示:2.新建linux虚拟机点击主界面“CreateaNewVirtualMachine”或直接使用菜单file新建,如没有特殊需要则选择“typical”然后选择Ubuntu11.10的系统镜像所在的路径,然后

3、填写虚拟机名以及Ubuntu用户名及密码,最后选择虚拟机安装的路径(默认C盘,建议不安装在C盘),确认之后打开虚拟机,之后则由VMware自动安装Ubuntu,安装完成后如下图:输入刚才设置的用户名及密码即可进入并使用系统了,但此时为普通用户,权限有限。3.进入超级用户在普通用户界面下按快捷键Ctrl+Alt+T进入终端,输入命令sudopasswdroot,系统提示输入密码,此时设置自己的密码(注意,终端不会显示输入),确认之后则超级用户root密码设置成功。在终端下输入命令su,再输入密码则可进入超级用户,此时符号由“$”变成“#”或者直接点击右上角“SwitchUserAccount”输

4、入用户名“root”和密码即可进入超级用户,进入后如下图:安装交叉编译器搭建交叉编译环境是嵌入式开发的第一步,也是必备的一步。搭建交叉编译环境的方法很多,不同的体系结构、不同的操作内容甚至是不同版本的内核,都会用到不同的交叉编译器,而且,有些交叉编译器经常会有部分的bug,这都会导致最后的代码无法正常地运行。因此,选择合适的交叉编译器对于嵌入式开发是非常重要的。鉴于此,我们慎重选择了arm-linux-gcc-2.95.3;arm-softfloat-linux-gnu-gcc;arm-linux-gcc-4.4.3三种编译器,经测试,这三种编译器能够编译成功。1.下载交叉编译工具如上所述,本

5、实验需要三种交叉编译工具,分别是arm-linux-gcc-2.95.3;arm-softfloat-linux-gnu-gcc;arm-linux-gcc-4.4.3。arm-linux-gcc-2.95.3用于编译boot.bin;arm-softfloat-linux-gnu-gcc用于编译u-boot.bin;arm-linux-gcc-4.4.3用于编译linux-2.6.38kernel和busybox-1.19.2;2.安装细则进入终端,在/usr/local下新建一个文件夹arm,命令为mkdir/usr/local/arm安装路径arm-linux-gcc-2.95.3解压至

6、/usr/local/arm/(先拷贝到/usr/local/arm/目录下再解压)arm-softfloat-linux-gnu-gcc解压至/usr/local/arm/(先拷贝到/usr/local/arm/目录下再解压)arm-linux-gcc-4.4.3解压至/(先拷贝到/目录下再解压)解压命令为:tar-jxvfarm-softfloat-linux-gnu.tar.gz安装后将arm-linux-gcc-2.95.3和arm-softfloat-linux-gnu-gcc和arm-linux-gcc-4.4.3工具目录下的bin加到$PATH即可在终端下输入gedit/etc/

7、profile在profile文件末尾加上:exportPATH=/usr/local/arm/2.95.3/bin:$PATHexportPATH=/usr/local/arm/arm-softfloat-linux-gnu/bin:$PATHexportPATH=/opt/FriendlyARM/toolschain/4.4.3/bin/:$PATH设置好PATH后重启ubuntu或直接在命令行执行:source/etc/profile命令也可。交叉编译器安装完成后如下图所示:交叉编译1.编译boot(用arm-linux-gcc-2.95.3编译)下载并拷贝boot.tar.bz2到ar

8、m下,进入arm文件夹(cd/usr/local/arm),解压boot.tar.bz2得到boot文件夹(tar-jxvfboot.tar.bz2)。进入boot(cdboot)。修改文件用gedit命令。编译后得到boot.bin。2. 编译u-boot(用arm-softfloat-linux-gnu-gcc编译)下载并拷贝u-boot-1.3.4.tar.bz2到/home/at9200下,进入/home/at9200(cd/home/at9200)解压得到u-boot-1.3.4文件夹(tar-jxvfu-boot-1.3.4.tar.bz2)。进入u-boot-1.3.4(cdu-

9、boot-1.3.4)。完成后产生u-boot.bin.gz文件。(压缩过程中一度出现乱码,压缩不成功,通过查阅gzip的help后,发现可能是参数-c的原因,用gzip-9u-boot.bin则能压缩成功)。3.编译kernel(用arm-linux-gcc-4.4.3编译)下载并拷贝linux-2.6.38.tar.bz2到/home/at9200下,进入/home/at9200,解压得到linux-2.6.38文件夹(tar-jxvflinux-2.6.38.tar.bz2),如需打补丁则需要用zcat命令。编译步骤:修改Makefile截图:第四部既是配置内核,是内核编译所有步骤中最重

10、要的,它决定了生成的内核的所有参数在做第四步的时候,出现如下错误:后经查阅,发现是编译比较老的版本的u-boot时需要一个组件没装上,用命令apt-getinstalllibncurses5-dev,安装上该组件即可,进入menuconfig界面如下:根据实际需要选择需要编译的部分,项目前面有“*”符号表示选中了。配置好后退出,然后执行make命令,编译器开始编译,等待一段时间如果不出错误的话会在arch/arm/boot/生成zImage和Image。然后用命令mkimage-e0x20008040-darch/arm/boot/zImageuImage2638生成内核镜像文件uImage2

11、638,但是执行此命令时仍然需要安装一个组件,用命令apt-getinstallu-boot-tools安装。查看生成的uImage2638,信息如下:4. 编译busybox(用arm-linux-gcc-4.4.3编译)下载并拷贝busybox-1.19.2.rar到/home/at9200下,并解压(此处解压rar文件仍然需要额外安装组件,否则会出错,命令为apt-getinstallrar),由于本人不知道解压rar文件的命令参数,故采用手动解压方法,用右键“extracthere”选项。解压后生成busybox-1.19.2文件夹,进入该文件夹。编译步骤:A. 修改Makefile(

12、geditMakefile)修改如下:ARCH=armCROSS_COMPILE=arm-linux-B.makemenuconfig根据需要选择需要编译的命令,选择方法和kernel一样,按空格键即可选择,如下图:(做到这里,真后悔当初没学好英语啊,这么多的选项全看蒙了,很多不知道什么意思)。C.保存退出之后,执行makeclean命令,然后执行make命令,等待一段时间编译成功,在_install文件夹下生成一系列文件以及文件夹;5.制作根文件系统A.安装makeinstallPREFIX=/home/at9200/busybox-1.19.2/cramfs其中,PREFIX用于指定安装目

13、录,如果不设置该选项,则默认在当前目录下创建_install目录。创建的安装目录的内容如下所示:rootubuntu:/home/at9200/busybox-1.19.2#lsbinlinuxrcsbinusr从此可知,使用busybox软件包所创建的文件系统还缺少很多东西。下面我们通过创建系统所需要的目录和文件来完善一下文件系统的内容。rootubuntu:/home/at9200/busybox-1.19.2#mkdirmntrootvartmpprocbootetclibrootubuntu:/home/at9200/busybox-1.19.2#mkdir/mnt/chenhongz

14、hchC.mkcramfsrootfsrootfs.cramfs将准备好的根文件系统打包生成rootfs.cramfs移植系统A.需要的软件:SecureCRT,tftpd32;B.需要烧写的文件:老师给的加上编译过程中生成的9200loader.bin-boot.bin-u-boot.bin-uImage2638-rootfs.cramfsC.连接实验板,此处用到了SecureCRT(与超级终端类似),具体步骤如下:1.安装串口转usb线PL2303的驱动;(装好之后在windows设备管理中找到端口号,我pc上是com3)2.打开SecureCRT新建一个连接,该连接参数设置如下:3.连接

15、,裸板连接上主机以后,在SecureCRT主界面上会连续出现CCC字样:D.烧写:*以上过程需要配置tftpserver才能实现,具体配置如下:1.U-boot运行起来之后,设置环境变量,setenvserverip219.225.55.98;-主机ip;setenvipaddr219.225.55.97;安装交叉编译器-编译-烧写。其中最主要也是最艰难的是编译过程,需要编译bootloader,kernel以及busybox,每个步骤都要修改Makefile,最主要的是修改编译器版本。编译kernel和busybox过程中一度出现很多错误,有时是编译器版本的问题,有时是需要安装额外的组件,有

16、时是Makefile没有修改正确,反正就是不通过。最终经过很多次尝试后总算都能编译成功,但是烧写进去后启动也出现失败,原因未知。关于编译kernel和busybox用到的命令makemenuconfig中的各种选项的意思不是很理解,不知道怎么配置;关于文件系统的制作还存在很多疑问,比如为什么老师给的文件系统是只读格式,而/mnt/jffs2文件夹却可以读写,怎么做到的没有弄清楚,老师也未给予讲解;实验过程中我意识到嵌入式linux系统的移植是个很复杂的过程,其中涉及到很多内容,要想从老师有限的讲解和演示时间中理解并掌握全部的移植技巧几乎不可能;最终结果只能是将老师编译生成的内核以及文件系统烧写进去先运行起来,进而进行下一步的驱动和串口以及网络编程的实验。-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁