北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx
- 文档编号:17390260
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:11
- 大小:1.87MB
北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx
《北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《北京邮电大学嵌入式操作系统实验报告Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
姓名:
XX
指导老师:
日期:
2017年12月14日
目录
嵌入式操作系统实验报告1
一、实验步骤3
1.建立Android开发环境3
2.建立交叉编译环境6
3.内核源码编译6
4.内核运行9
5.内核裁剪9
二、实验中遇到的问题及解决方案11
三、实验总结11
一、实验步骤
1.建立Android开发环境:
新建文件夹,命名为学号后四位:
0305,在0305文件夹中再新建文件夹命名为“嵌入式软件实验”,最后在“嵌入式软件实验”文件夹下拷贝三个压缩包JDK、AndroidSDK和交叉编译器。
在终端切换至嵌入式实验文件目录下查询,查看到所有文件已存在。
解压JDK:
tarzxvfjdk-7u15-linux-x64.tar.gz后,执行ls命令,看到实验文件夹下面生成文件夹jdk1.7.0_15:
设置环境变量,编辑文件/etc/profile,执行vi/etc/profile打开profile:
打开profile文件后,在最下面补充:
exportJAVA_HOME=/home/lq/0305/嵌入式软件实验/jdk1.7.0_15
exportJRE_HOME=$JAVA_HOME/jre
exportCLASSPATH=$CLASSPATH:
.:
$JAVA_HOME/lib:
$JAVA_HOME/jre/lib
exportPATH=$PATH:
$JAVA_HOME/bin:
$JAVA_HOME/jre/bin
执行source/etc/profile使对/etc/profile的修改立即生效
执行java-version命令,出现java版本信息为1.7.0_15,此时Java开发环境建立好了。
解压AndroidSDK,看见目录下产生一个文件夹android-sdk-linux
编辑文件/etc/profile,在环境变量PATH后面增加android的环境变量
执行android命令弹出androidSDKmanager窗口
为了获取更新列表,设置AndroidSDKManager-Settings,修改配置:
安装一个Android2.1版本的SDKPlatform,再安装AndroidSDKTools、AndroidSDKPlatform-tools和AndroidSDKBuild-tools:
新建一个虚拟机,创建的虚拟机名称为2.1:
启动新建的虚拟机:
2.建立交叉编译环境:
执行tarjxvfarm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
在嵌入式软件实验目录下生成一个arm-2014.05文件夹
再次执行vi/etc/profile,在PATH中添加/home/lq/0305/嵌入式软件实验/arm-
2014.05/bin/(注意用冒号隔开),保存退出后执行source/etc/profile。
3.内核源码编译:
在实验目录下新建Kernel文件夹,将goldfish-android-goldfish-2.6.29.tar.gz拷贝到Kernel中:
切换至Kernel文件夹,然后执行tarzxvfgoldfish-android-goldfish-2.6.29.tar.gz解压源码压缩包:
执行viMakefile,找到ARCH和CROSS_COMPILE的定义:
修改为:
再修改kernel目录下的timeconst.pl文件:
将文件末尾的defined()去掉:
************************************更新!
************************************
*********因为实验文件的目录中含有中文命名,为了保证不影响内核编译,***********
****************此处将“嵌入式软件实验”更改为“Research”********************
******************************************************************************
编译内核,执行如下命令:
出现上图所示的问题,上网查阅后发现该问题的原因是64位系统运行32位的程序需要32位运行库,于是安装上对应的运行库:
再次编译内核,发现内核编译成功,问题解决:
在0305/Research/Kernel/arch/arm/boot文件夹下生成一个zImage镜像文件:
在文件属性中查看镜像大小为1624048字节:
4.内核运行:
在终端执行emulator64-arm-avd2.1-kernel./arch/arm/boot/zImage指定虚拟机从编译的内核启动:
启动后在Settings的AboutPhone中可以看到内核版本Kernelversion为2.6.29,在虚拟机编译内核时的用户名为root@lq-virtual-machine。
5.内核裁剪:
(选择了内核中Networkingoptions部分一些关于Ipv6的部分进行注释裁剪。
)
再次makegoldfish_defconfig
Make编译内核:
新生成的zImage文件覆盖了原先的文件,由于裁剪的内容不多,所以编译后内核
大小变化不大,但还是有所减小。
(1624048字节==>
1615788字节)
再次在终端执行emulator64-arm-avd2.1-kernel./arch/arm/boot/zImage指定虚拟机从编译的内核启动:
裁剪后的内核可以在虚拟机中启动。
二、实验中遇到的问题及解决方案
a.问题一:
在获取安卓更新资源时,发现无论怎么修改Options始终无法更新资源。
解决措施:
通过从网上搜索原因并且在虚拟机中询查错误时,偶然发现虚拟机并不能联网,于是更改了虚拟机的网络适配器的设置,将其改为NAT模式,问题得到解决。
b.问题二:
在编译内核时始终不能成功,执行make指令时总是会出错。
由于此问题在嵌入式的微信讨论群中已经有人提及,所以按照已做的同学提供的教程,即:
64位系统运行32位的程序需要32位运行库,安装上对应的32位的运行库后问题得到解决。
三、实验总结
本次实验于我而言,虽然关于Android相关的开发并不是我特别喜欢的方向,以后也不打算在这方面深入研究。
但是在做整个大作业的时候,我发现Android的方面涉及的其实很浅,主要是让我们熟悉了Linux终端的基本操作指令。
虽然之前有一些Linux下开发的经验,懂得基本操作指令的使用,但是此次实验能够让我更加熟悉Linux环境下的操作,并且附带了解了Android的内核编译与裁剪,这些都是很宝贵的经验!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京邮电 大学 嵌入式 操作系统 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)