北京邮电大学嵌入式操作系统实验报告_第1页
北京邮电大学嵌入式操作系统实验报告_第2页
北京邮电大学嵌入式操作系统实验报告_第3页
北京邮电大学嵌入式操作系统实验报告_第4页
北京邮电大学嵌入式操作系统实验报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、北京邮电大学嵌入式操作系统实验报告学院:信息与通信工程学院xxxxxxx班级:学号:姓名:指导老师:xx日期:2017年12月14日目录嵌入式操作系统实验报告1一、实验步骤错误!未定义书签。1. 建立android 发环境32. 建立交叉编译环境63. 内核源码编译64. 内核运行95. 内核裁剪9二、实验中遇到的问题及解决方案 11三、实验总结11一、实验步骤1. 建立android开发环境:新建文件夹,命名为学号后四位:0305,在0305文件夹中再新建文件夹命名为“嵌 入式软件实验”,最后在“嵌入式软件实验”文件夹下拷贝三个压缩包jdk、android sdk和交叉编译器。0305 融入

2、式软件实mandroid-sdk_r21.l-linux.tgzarm-2014.0s-29- arm-none-linux- gnueabih6865)c- iinux-gnu.tar.bz2jdk-7u1s4lnux-x64.tar.gz在终端切换至嵌入式实验文件目录下查询,查看到所有文件已存在8rootlq-virtual-machine:/hore/lq/0365/嵌入式软件实验"is android-sdk_r211-ltnuxtgz arm-2014.05-29-arm-none-l.tnux-gnueabt-t686-pc-ltnux-gnu.tar.bz2 jdk-7

3、ul5-ltnux-x64.tar.qz解压 jdk: tar zxvf jdk-7ul5-linux-x64. tar. gz 后,执行 is 命令,看到实验文件 夹下面生成文件夹jdkl.7. 0_15:jdkl.7.0_15/ran/rani/jstat.1 jdkl.z.ols/ran/nani/tnaneserv.1 jdkl.7.o215/ran/ndnl/javaws.1 jdkl 7615/mn/ru)nl/jrunscrlpt.lbz2 jdkx.7.0.15jdkl.z.o.ls/aan/nanl/javac.1 jdkl.7.0als/ran/rdni/scherdgen

4、.1 jdkl.z.ols/ran/ranl/jhat.l jdkl.7.0 ls/rn/nanl/java1 jdkl.7.o215/«an/ndnl/jcnd.l jdkl.7.o15/ran/ranl/xjc.l jdkl.z.els/mn/nanl/jarstgner.l jdkl .z.o/n/ranl/appletvtewer 1 jdkl.7.0mls/ran/rdnl/javafxpackager.1 jdkl.7.o_15/aan/nanl/pack2oo.1 jdkl 7.0.1 s/mn/ranl/key tool 1 jdkl7«0_15/min/n

5、dnl/eatchcck.1 jdkl.z.els/nan/nanl/jrap.1 jdkl.7.o215/aan/rani/jstatd.l jdkl.7.ols/ran/ranl/javadoc.1 jdkl.7.e"15/thirdpartylicensereadhetxt jdkl.7.oil5/copyright rootlq-vtrtual-nachtne:/hone/lq/e30s/嵌入艺软件实is androtd-sdk r21.l-ltnux.tgi rr-2014.0s-2*-arn-none-lt.a- - - 一 一- 一亠宀设置环境变量,编辑文件/etc/p

6、rofile,执彳亍vi /etc/profile打开profile:r<>ot©lqvirtualiwhtne:/home/lq/3365/寡入或钦件买劇 vt /etv/poftle打开 profile 文件后,在最下面补充:export java_home=/home/1 q/0305/嵌入式软件实验/jdkl. 7. 0_15export jre_home=$java_home/jreexport classpath=$classpath:. :$java_home/1ib:$java_home/jre/1ibexport path=$path:$java hom

7、e/bin:$java home/jre/binvirtual-machine:/home/lq/030s/kax5aft 5k» /etc/prof t le : systcn-wide profile? flic for the bourre shell ( sh( 1) v and bourne conpattble shells (bash(l)f ksh(l)t ash(l)f )if $psl ; thentf ($basha& -$bash- !> -/bin/sh" ; then9 the file bash.bashrc already se

8、ts the default psi.0 psl«-h:w$ if ( f /etc/bash.bashre ; then /etc/bash.bashreftelseif rd-eq 0 ; thenps1«*« elseps1«*$ ftnftif d /etc/proftle.d ; thenfor t tn /etc/proftle.d/*.sh; do"r $t ; thendone unset texport pythohpath«/hore/lq/caffe/pythonspythonpathexport javhohe

9、b/hore/lq/0305/w入式软ftjc/jdkl.7.0.15export jre.homebsjavahome/jreexport classpath«$classpath:.:sjavahome/ltbjsjava home/jre/ltbexport path«$path:$java_h0me/btn:$java0me/jre/bt2执行source /etc/profile使对/etc/profile的修改立即生效执行java -version命令,出现java版本信息为1. 7. 0 15,此吋java开发环境 建立好了。rootlq-virtual-ma

10、chinesource /etc/proftie ootlqvtxtualnxhtne:/h(me/lq76365/嵌入式软件实验,java -version java version "1.7.015"java(th) se runtime envtronnent (build 1.7.615-663)java hotspot(tn) 64bit server vn (buljlcj 23丄?mode)解压android sdk,看见目录下产生一个文件夹android-sdk-1 inuxikl.7.0.15ls-llr.ux-x64.tdr.gzandroid sdki

11、tnux/tools/support/typos nb txt android-sdkltnux/tools/support/typos-en.txt android- sdk unux/tooli/iupport/typos-ts txt android-sdk-itnux/tools/support/typos-pt.txt android-sdkllnux/toolf/iupport/typos-hu.txt android-sdkitnux/tools/nksdcard android-sdkiqnux/tool、/source properties ndrotd sdkitnux/t

12、ools/mdb_h3s.roved txt ndrotd-sdkllnux/tools/jobb android-sdkitnux/platforrs/ android-sdkitnux/sdk readrc.txt root|lq-vtrtual-rachtne:/hone/lq/e36s/嵌入式软件实验f is ndrold-sdk linux amrotd-sdk r21.1 -llnux.tax arm.编辑文件/etc/profile,在环境变量path后面增加android的环境变量export java_h0me=/hone/lq/0305/banxhjts/jdkl.t.o.

13、lsexport jre_home=$javahome/jreexport classpaths$classpath:.ssjavahome/ltbxsjavahome/jre/ltbexport path=$path:$javahome/btn:$javahome/jre/btn:/hore/xq/0305/k入式软件实/android-sdk-ltnux/tools执行 android 命令 弹出 android sdk manager 窗口rootlq virtual machine :/home/lq/6365/飯入式软件实验常 androidandroid sdk managerpa

14、ckages toolssok path:packages nameapirev.sutus uj toolsx android sok toolsextras21.1 insulted为了获取更新列表,设置android sdk manager -settings,修改配置:安装一个 android 2. 1 版本的 sdk platform,再安装 android sdk tools* android sdk platform-tools 和 android sdk build-tools:w1 nameapirev.status卜 o q tools» android sdk

15、tools24.0.2寻 installed才 android sdk platform-tools20申 installed才 android sdk build-tools19.1厉 installed 口 android 4.4.2 (ap119) c; android 2.1 (api 7) 哺 sok platform73看 installed新建一个虚拟机,创建的虚拟机名称为2. 1:宀 edit android virtual device (avd)avd neme:device:targetneaus one (3.f, 480 e00 bdpl)android 2.1 -a

16、pi level 1cpv/abt:keyboard:h hardware keyboard present启动新建的虚拟机:iootlqvttualmachtne:/home/lq/6365/嵌入式软件实验” enulato64arni avd 212. 建立交叉编译环境:执行tarjxvfarm-2014. 05-29-arm-none-linux-gnucabi-i686-pc-linux-gnu tar bz2rootlqvlrtualemhlne: /ho”e/lq/6365/#f入式软件其验 tar jxvf drr-2014.0s-29-drr-none-ltnux-gnueab

17、t« 1686-pc-ltnux-gnu. tar .bz2在嵌入式软件实验目录下生成一个arm-2014. 05文件夹ootlqvttualmavhtne:/home/lq/6365/嵌入式软件实验常 isindrotd-sdk-ltnux android-sdk_r21.1-ltnux.tgz arn-2014.05arr-2014.0s-29-arr-nonltnuxgnueablt686pcllnuxgnu1业1/ 7二2.丄5_ jdlc7ul5ltnuxx64.t.gz再次执行vi /etc/profile,在path中添加/home/lq/0305/嵌入式软件实验/盯旷

18、2014. 05/bin/ (注意用冒号隔开),保存退出后执行source /etc/prof i le0export export classpath«$classpath:.xsjavahome/ltbxsjava.home/jrc/ltbexport path«$path:$javamh0he/blft:$javaabh0me/jrt/mfi:/bem/lq/t)0s/ttalclk#ktt/>iidretd.ft4kaifivi/tmu:/hoa«/14/«30$/lfralclk#ktt/arr-20i4.0s/btn3. 内核源码编译:

19、在实验目录下新建 kernel 文件夹,将 goldfish-android-goldfish-2. 6. 29. tar. gz拷贝到kernel屮:rootlq-virtual-nachtne:/home/lq/e305/®a式软仟买/kernel« is qoldft.sh-androtd-qoldftsh-2.6.29. tar.gz a al <-tar zxvf切换至 kernel 文件夹,然后执行 go 1 df ish-android-go 1 dfish2. 6. 29. tar. gz 解压源码压缩包:lroottlq*vtrtu*bmclitne

20、:/hor«/lq/0m5/ffislrchcovtmccryptodriwrtfitinlwelxktfmlraimtaikrsfvmaorittcvrllyusrblxhcbcditsooc*r«at4tlorflrrwirtgot4f t«h-tar .<>inltkbvtldlibmkeftlemtt(romt!hg-bucsscript* iovmvtrtr<vhln©:/hofw/lq/6305/靈入裟宴仔买菽l 乂1 mkefll*执行 vi makefile,找到 arch 和 cross compile 的定义:arc

21、h一 ?= $(subarch)cross compile ?=修改为:arch?= arncross_cokpile ?=arm-none-ltnux-gnueabi-再修改kernel目录下的timeconst. pl文件:rootglq-virtual rachtne:/hone/lq/6365/roc a 式软件 决乾/kernel, vt kernel/ttneconst pl !.丨 co-lpulc vd:uc3 ( .1 . ) ;output ($h z ,:八1 ) ;ext ;将文件末尾的defined ()去掉:qvol « scanned values$hz

22、; if (ideftned(qvax) 0val s conpute_values($hz); output($hz# qval);exit e;iii w>* ii :p»*因为实验文件的h录中含冇中文命名,为了保证不影响内核编译,* * 此处将 “嵌入式软件实验” 更改为 “research” *xa* 7" xa* xx xtxxtx xtx xa> xtx xtxklx kl kl kl7" 7" xa> 7"vjx vlx 7" kj> txxtx xtx xtx xtz7" x;j>

23、; vjx xa> 7" xa> 7" xa* 7" >v xtx xax xtx xax xtx xa> xtx xa* xtx xa» xa> xtz xa> xtxxtx xtx xtx kizxtxt>t>txzt x|x zt>»zt编译内核,执行如下命令:rootlq-vtrtual-rachtne:/hore/lq/6305/research/kernel.« nake goldfishdefconftg arch/arr/configs/goldflshdefcon

24、fig:289:warning: override: fbearlysuspend changes choice state v» configuration written to .configrootlq-vtrtual-hachtne:/hone/lq/e305/research/kernel» nakemake: /hofe/lq/03e5/research/ara-none ltnux-gnueabl/btn/arr-none-ltnux-gnueabt-gcci 命令未找到 scrtpts/kconftg/conf -s arch/arn/kconftgmke:

25、 /hore/lq/03e5/research/arn-none-ltnux-gnueabt/btn/arr-none-unux-gnueabt-gcc:命令未找到chk tnclude/ltnux/versionhakel: tnclude/asn-arn/mach-types.h* is up to date.chktnclude/ltnux/utsrel.edse.hsyhlink tnclude/asn > tnclude/asn-arncckernel/boundss/btn/sh: 1: /hone/lq/e305/research/arn-none-linux-gnueab

26、t/btn/armnone-ltnux-gnueabt-gcc: not found /hore/lq/e30s/research/kernel/./kbutld:35: recipe for target kernel/bounds.s* fattedidkefl: kernel/bounds.s error 127hakeftle:975: recipe for target 'prepare©* failedake: prepared error 2出现上图所示的问题,上网查阅后发现该问题的原因是64位系统运行32位的程序 需要32位运行库,于是安装上对应的运行库:ro

27、otlqvtrtualmachlne:-t sudo aptgct install lsbcore正在決敢软件包列表完成 正在分析软件包的依糊关系树 正在读取状sfis.宪成 将会同时安装下列软件:alien at debugedtt gcc-6-base:t386 ltbc6:1386 itbccl:1386 ltbrpa3 ltbrprbutld3 ltbrprto3 ltbrpnst.$ rpr-co«ncn rpa2cpto s-natl zltblg:1386建汝安装:rpr-tl8n gltbc-doc:1386 locales:1386 isb elfuttls rpn

28、ltnt rpr2htrl下茹【新】歩件包将被安装:alien at debugedtt gcc-6-base:t386 ltbc6:1386 llbgccl:1386 ltbrpr3 ltbrpnbutld3 ltbrpnto3 ltbrpnst.c rpa rprconnon rph2cpto s-natl zltblg:t3b6升或了 0个软件包,新sk7 22个软件也,更卸取6个软件包.有243个毅件包未被升级。需憂下载3.839 kb的归档°解压缩后会気耗17.8 mb的额外空间。婪希星绝续执行吗? y/n y获取:】http:/cn.archtve.ubuntu.con/

29、ubuntu xental/rdtn drd64 ltbstgsegv2 >rd64 2.10-4 14.1 kb莹取:2 xental/matn 1386 g«6b”e 13m 6.0.1-oubuntui 14.3 kb 获取:3 http:/cn.archtve.ubuntu.con/ubuntu xental/rdtn 1386 itbgcd 1386 1:6.0.1-oubuntul 46.8 kb http:/cn.drchtve.ubuntu.cor/ubuntu xenial updates/mtn 1386 ltbc6 1386 2.23-0ubuntu9 2

30、.269 k获取:5 http:/cn.archlve.ubuntu.cor/ubuntu xenial-updates/ndtn 1386 zltblg 1386 l:1.2.8.dfsg-2ubuntu 垂取:6 http:/cn.archlve.ubuntu.con/ubuntu xental/untverse and64 itbrprto) drd64 4.12.0.l*dfsgl-3butl 获取:7 http:/cn.archtve.ubuntu.con/ubuntu xenial/universe and64 ltbrpr3 «rd64 4.12.0.l*dfsgl-3

31、butld3再次编译内核,发现内核编译成功,问题解决:rootlq-vtrtual-rachtne:/hore/iq/6365/research/kernei» rake goidftshdefconfig arch/arr/conftgs/goldftshdefconftg:289:warning: override: fbearlysuspend changes choice state u9 configuration written to .configur oot© lqvtrtualkachtne:/hofne/lq/6365/rese3vh/kenel&quo

32、t; kbicqobjcopy arch/arn/boot/zimage kernel: arch/arn/boot/zlmage is ready在 0305/research/kernel/arch/einn/boot 文件夹下生成一个 zimage 镜像文件:g 壬文存夫 0305 research kernel arch arm bo 乂在文件属性屮查看镜像大小为1624048字节:czimage 性墓本权眼8w(n):zimagem:程序(appticatlon/octeutream)大小:1.6 mb (1,624.048 字节)(ni:/home/lq/0305/re$earch

33、/kef n.访何:2017年 12月 14bbm四.20:00:02律改:2017年 12月 14bm四.2006:024. 内核运疔:在终端执行 emulator64-arm -avd 2. 1 -kernel . /arch/arm/boot/ztmage 指定虚拟 机从编译的内核启动:rootlq-vt,rtual-hachtne:/hone/lq/e305/research/kernel« enulator64-arn -avd 2.1 -kernel /arch/arn/boot/zlmag启动后在settings的about phone屮可以看到内核版本kernel v

34、ersion为2. 6. 29,在虚拟机编译内核时的用户名为rootlq-virtual-machineo沁irsbrb曲 bcccc cccccccccc cccc cccc cccc ccccreccar10ub/li ttngle.threded.o ub/klut.o ub/kobj«ct.o itb/kobject uevcnt.o llb/kref.o llb/prtoheip.o itb/prtotree.o llb/proportloat.o ub/r adla.lret.o ub/rtt«ltrlt.o llb/rbtree.o llb/rwser ub/

35、ihtl.odlv.u ock.oub/showre.o tng.o llb/viprtntf.o ub/ub.« vrltnuxosss42.112:20 pmabout phonemoopost vrltnux.oc(nchk upo cc ld 10ksyhas idk$vn asldsysmap syswap obxopvkernel:as gztras cc id oexoevversion tnclude/llnux/corlle上 include/unuii/corpue 上 tntt/vrrston.o tnlt/bullt-lft.ctrpvrltnuxltrp.k

36、alliyrsl.o trp.vrunuml .trp.keusyrs2.s.trpik«lliyrs2.o valtnuxsystem zp tmp.sybter wp arch/arr/boot/ «rch/«rr/boot/ln>9< u 、rt»i irch/irr/boot/corpressed/h* arch/«fr/boot/comr<cc«l/p arch/arr/boot/corpressed/p rch/irr/boot/corprttwd/r 4fch/«rr/boot/corpr&#

37、171;is«d/vik«rnet: «rch/«rr/boot/ilm9e is re. rootflq-virtual *mchtn:/hore/lq/030 truutor: error: could hot load open.' trulitor: marnimc: could not tnltlil roottlq*vtrtu4l-rmhlf>«:/hoae/lq/030 truutor: trroa: could <*ot load opew truutor: mahnihg: could not tnltta

38、l.legal informationsystem tutoriallearn how to use your phonemodel numbersdkfirmware versi on2j-update1baseband versionunknow nker nel versi on2.6.29 root(lq-vlrtual-machine)build numbersdk-eng 2.bupdate1 eclair 35983 test-keysrdi/afr/b p lh«rt«c0nfig-ipv6=yw. sj jv. #c0nfigip6nf ”c0nfig_i

39、p6_nf ”c0nfig_ip6_nf ”c0nfig_ip6_nf ”c0nfig_ip6_nf xc0nfig_ip6_nf #config7ip6nfn#启动后在settings的about phone中可以看到内核版本kernel version为2. 6. 29,在虚拟机编译内核时的用户名为rootlq-virtua 1 -machine05内核裁剪:iptables=y target_log=y filter=y target_reject二y target_reject_skerr二y mangle=y rawyconfig_ip_dccp is not set configzipzsctp is not set config_tipc is not set config atm is not set厂一 c vn (选择了内核中networking options部分一些关于lpv6的部分进行注释裁剪。)再次 make g

温馨提示

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

评论

0/150

提交评论