嵌入式 (自动保存的).docx
文本预览下载声明
《嵌入式系统设计》实习报告
班级序号: 111131
学生学号: 20131004222
学生姓名: 王汝鹏
任课教师: 杨之江
小组成员:王汝鹏、郭祥林、任飞
中国地质大学信息工程学院软件工程系
2016年1月
作业任务
智能路由器嵌入式编程,对开源系统—openwrt进行扩展,使其能够实现离线下载视频的功能。本次作业需要完成的主要有三部分:
对openwrt源码进行编译,配置openwrt的开发环境,然后对其功能进行扩展(安装对应的包)。
本地客户端的实现。这里我们做是基于安卓客户端。
基于Python3实现视频下载功能
以上任务分别由王汝鹏、任飞、郭祥林完成,没人负责一项,但是期间遇到了问题还是会一块解决。
作业内容
我个人做的主要是与路由器固件相关工作,下面对我的工作进行一下介绍。
最开始openwrt官网的目录结构一直搞不清楚,这种乱糟糟的,后来才慢慢弄明白。
一下是openwrt官网各种文件路径介绍:
以上是openwrt下载官网的目录结构树图,因为内容太多就挑选了比较重要的说明一下,第二级是openwrt的各种版本,ChaosCalmer是最新的版本,软件源也比较丰富;第三级是芯片类型的选择,我们用的路由器是ramips系列;第四级是芯片的选择我们用的包括小米路由器是mt7620;第五级则是mt7620芯片的资源,包括package:各种资源包(也是路由器固件更新用到的源下载地址);ImageBuilder:镜像生成器,用于定制自己指定功能的固件镜像,镜像生成器的使用后面有介绍;SDK:固件开发环境,先编写程序在,用来编译生成自己需要的程序(如果官方无法提供指定功能,可以自己开发,是和高级开发者);接下来后面就是各种官方给的各种类型的固件系统,包括小米路由器的固件系统,但是可能如果想要自己想要的功能的话(比如python开发环境)还得自己扩展(后面有详细说明)。
路由器固件编译
拿到路由器之后首先要做是去openwrt官网下载源码,根据老师给的教程-- HYPERLINK /link?url=thO2eY6lTJ0pRGhbDQI2IVVx9KtdkP5-x_tH05u3Rn0PZqjbSqO3y431uTOuT2xRexuG8fDTE-BMt2RxzAmnMySdY6Qaar-fMV7gotJ6ud7qq-pf-to=pcqq.group MTALL MT7620A编译OPENWRT教 ,这里面讲解步骤比较详细。但是还是会有一些问题。
编译前准备工作
编译环境:Ubuntu
连接工具:XShell(或putty)和XFtp(for windows)或者ubuntu shell下操作,方法下面说明。
开始编译
在make编译系统时候我的ubuntu14.10会出现一堆错误,网上找了好久的也没能解决,更换软件源也不行,最后就不得不重新安装了ubuntu,不过这一次的是ubuntu14.04。git上下载openwrt,make编译。
然后就是编译的时候系统需要下载一些其他的包,某些源网站可能被”墙”了,“软件404 not found”,免费vpn不稳定,不得不买了个vpn,然后经过一晚上的编译,终于看到,相应的固件出现了。
然后就是老师说的,用网线连接电脑和路由器LAN口,然后自动识别路由器的IP,上面生成的是小米路由器(同欧耶路由器硬件配置是差不多的都是ramip\MTALL7620)的固件。
通过ssh连接路由器,可以连接成功。
其实在编译的时候还是遇到类不少的问题所以前前后后用了差不多一个星期才编译成功,而且这只是第一步,后面还有跟多困难。
路由器开发环境搭建
这里是从编译生成HelloWorld开始的。详细的代码请看附件。
SDK的选择。可以使用在github上下载的openwrt源码自带的make menuconfig工具,自己编译SDK开发工具。选择对应的Target System与Target Profile,并选上Build the OpenWrt SDK。然后“make V=99”编译。然后在bin/mtal720l/ 路径中会有OpenWrt-SDK-*.tar.bz2的SDK开发包。另一种方法是在官方网站中对应某一型号的路由器固件路径中有官方的SDK可以直接下载下来用。 HYPERLINK /chaos_calmer/15.05/ramips/mt7620/OpenWrt-SDK-15.05-ramips-mt7620_gcc-4.8-linaro_uClibc-.Linux-x86_64.tar.bz2 /chaos_calmer/15.0
显示全部