嵌入式linux系统构建.doc_第1页
嵌入式linux系统构建.doc_第2页
嵌入式linux系统构建.doc_第3页
嵌入式linux系统构建.doc_第4页
嵌入式linux系统构建.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

中国地质大学(北京)实 验 报 告 课程名称: 嵌入式系统 实验名称: 嵌入式linux系统构建 姓 名: xxxx 学 号: 1010092229 班 级: 10100922 指导教师: xxxxxxxxxx 评 分: 实验时间: 实验题目:嵌入式linux系统构建一、 实验目的1、了解ARM9嵌入式开发板的基本结构;2、掌握linux交叉编译环境的建立;3、掌握编译和移植linux系统的基本方法;二、 实验器材 1. 安装有windows 7或者xp系统的且能联网的pc一台(如直接装linux,则可以省略步骤一);2. 采用Atmel公司基于ARM9架构的处理器at91rm9200的开发板一块;3. 网线一条,USB转串口线PL2303一条,电源一只。三、 实验步骤安装Ubuntu 11.10 鉴于对linux操作系统不是很熟悉,所以本次试验采用虚拟机的安装方式,也即在Windows7环境下运行Ubuntu。 1.安装VMware 首先下载得到VMware8.0的安装文件,安装成功并破解后运行VMware,如下图所示: 2.新建linux虚拟机 点击主界面“Create a New Virtual Machine”或直接使用菜单file新建,如没有特殊需要则选择“typical”然后选择Ubuntu 11.10的系统镜像所在的路径,然后填写虚拟机名以及Ubuntu用户名及密码,最后选择虚拟机安装的路径(默认C盘,建议不安装在C盘),确认之后打开虚拟机,之后则由VMware自动安装Ubuntu,安装完成后如下图: 输入刚才设置的用户名及密码即可进入并使用系统了,但此时为普通用户,权限有限。 3. 进入超级用户 在普通用户界面下按快捷键Ctrl+Alt+T进入终端,输入命令sudo passwd root,系统提示输入密码,此时设置自己的密码(注意,终端不会显示输入),确认之后则超级用户root密码设置成功。在终端下输入命令su,再输入密码则可进入超级用户,此时符号由“$”变成“#”或者直接点击右上角“Switch User Account”输入用户名“root”和密码即可进入超级用户,进入后如下图:安装交叉编译器 搭建交叉编译环境是嵌入式开发的第一步,也是必备的一步。搭建交叉编译环境的方法很多,不同的体系结构、不同的操作内容甚至是不同版本的内核,都会用到不同的交叉编译器,而且,有些交叉编译器经常会有部分的bug,这都会导致最后的代码无法正常地运行。因此,选择合适的交叉编译器对于嵌入式开发是非常重要的。鉴于此,我们慎重选择了arm-linux-gcc-2.95.3 ;arm-softfloat-linux-gnu-gcc;arm-linux-gcc-4.4.3三种编译器,经测试,这三种编译器能够编译成功。 1.下载交叉编译工具如上所述,本实验需要三种交叉编译工具,分别是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.38 kernel和busybox-1.19.2; 2.安装细则 进入终端, 在/usr/local下新建一个文件夹arm,命令为mkdir /usr/local/arm 安装路径 arm-linux-gcc-2.95.3 解压至/usr/local/arm/ (先拷贝到/usr/local/arm/目录下再解压) arm-softfloat-linux-gnu-gcc 解压至/usr/local/arm/ (先拷贝到/usr/local/arm/目录下再解压) arm-linux-gcc-4.4.3 解压至/ (先拷贝到/目录下再解压) 解压命令为: tar -jxvf arm-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/profile 在profile文件末尾加上: export PATH=/usr/local/arm/2.95.3/bin:$PATH export PATH=/usr/local/arm/arm-softfloat-linux-gnu/bin:$PATH export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin/:$PATH 设置好PATH后重启ubuntu或直接在命令行执行:source /etc/profile命令也可。 交叉编译器安装完成后如下图所示:交叉编译 1. 编译boot(用arm-linux-gcc-2.95.3编译)下载并拷贝boot.tar.bz2到arm下,进入arm文件夹(cd /usr/local/arm),解压boot.tar.bz2得到boot文件夹(tar -jxvf boot.tar.bz2)。进入boot(cd boot)。修改文件用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 -jxvf u-boot-1.3.4.tar.bz2)。进入u-boot-1.3.4(cd u-boot-1.3.4)。完成后产生u-boot.bin.gz文件。(压缩过程中一度出现乱码,压缩不成功,通过查阅gzip的help后,发现可能是参数 -c的原因,用gzip -9 u-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 -jxvf linux-2.6.38.tar.bz2),如需打补丁则需要用zcat命令。编译步骤: 修改Makefile截图:第四部既是配置内核,是内核编译所有步骤中最重要的,它决定了生成的内核的所有参数在做第四步的时候,出现如下错误: 后经查阅,发现是编译比较老的版本的u-boot时需要一个组件没装上,用命令apt-get install libncurses5-dev,安装上该组件即可,进入menuconfig界面如下:根据实际需要选择需要编译的部分,项目前面有“*”符号表示选中了。配置好后退出,然后执行make命令,编译器开始编译,等待一段时间如果不出错误的话会在arch/arm/boot/生成zImage和Image 。然后用命令mkimage -e 0x20008040 -d arch/arm/boot/zImage uImage2638生成内核镜像文件uImage2638,但是执行此命令时仍然需要安装一个组件,用命令apt-get install u-boot-tools安装。查看生成的uImage2638,信息如下:4. 编译busybox(用arm-linux-gcc-4.4.3编译)下载并拷贝busybox-1.19.2.rar到/home/at9200下,并解压(此处解压rar文件仍然需要额外安装组件,否则会出错,命令为apt-get install rar),由于本人不知道解压rar文件的命令参数,故采用手动解压方法,用右键“extract here”选项。解压后生成busybox-1.19.2文件夹,进入该文件夹。编译步骤:A. 修改Makefile(gedit Makefile) 修改如下: ARCH= arm CROSS_COMPILE= arm-linux-B.make menuconfig根据需要选择需要编译的命令,选择方法和kernel一样,按空格键即可选择,如下图:(做到这里,真后悔当初没学好英语啊,这么多的选项全看蒙了,很多不知道什么意思)。C.保存退出之后,执行make clean命令,然后执行make 命令,等待一段时间编译成功, 在_install文件夹下生成一系列文件以及文件夹;5.制作根文件系统A.安装make install PREFIX=/home/at9200/busybox-1.19.2/cramfs 其中,PREFIX用于指定安装目录,如果不设置该选项,则默认在当前目录下创建_install目录。创建的安装目录的内容如下所示:rootubuntu:/home/at9200/busybox-1.19.2# ls bin linuxrc sbin usr从此可知,使用busybox软件包所创建的文件系统还缺少很多东西。下面我们通过创建系统所需要的目录和文件来完善一下文件系统的内容。 rootubuntu:/home/at9200/busybox-1.19.2# mkdir mnt root var tmp proc boot etc lib rootubuntu:/home/at9200/busybox-1.19.2# mkdir /mnt/chenhongzhchC.mkcramfs rootfs rootfs.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.连接,裸板连接上主机以后,在SecureCRT主界面上会连续出现CCC字样: D.烧写: * 以上过程需要配置tftpserver才能实现,具体配置如下: 1.U-boot运行起来之后,设置环境变量,setenv serverip 8;-主机ip; setenv ipaddr 7;安装交叉编译器-编译-烧写。其中最主要也是最艰难的是编译过程,需要编译bootloader,kernel以及busybox,每个步骤都要修改Makefile,最主要的是修改编译器版本。编译kernel和busybox过程中一度出现很多错误,有时是编译器版本的问题,有时是需要安装额外的组件,有时是Makefile没有修改正确,反正就是不通过。最终经过很多次尝试后总算都能编译成功,但是烧写进去后启动也出现失败,原因未知。关于编译kernel和busybox用到的

温馨提示

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

评论

0/150

提交评论