




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设报告课程名称嵌入式系统课程设计实验项目web远程控制系统设计指导教师周金和、王勇信息与通信工程电子信息工程班级/学号电信1101/ 学生姓名 实验日期实验步骤、嗒建及移植web服务器搭建及移植boa服务器是本次课题的要点所在,为了能够顺利搭建服务器,前期做了大量工作 对其进行学习以及研究,在基本掌握boa服务器的搭建和移植的具体操作方法还有该服务器的工作方式、流程之后,才着手进行搭建和移植,即便如此,在搭建和移植的过程中还是遇到了不少问题, 下文也进行了分析和解决。下载及配置BOA服务器下载安装boa服务器首先在下载BOA服务器的源码:版本为。对其进行解压:$ tar xzf还要安装必要的工
2、具bison,flex。否则会出现:make: yacc :命令未找到make: * 错误 127。$ sudo ap t-get in stall bis on flexnat在输入上一条命令之前需要保证虚拟机联网,虚拟机联网方式如下 首先把主机联上网,虚拟机网络设置桥接改成$ sudo vim /etc/ network/i nterfacesstatic 改成 dhcp ,在 address, netmask, gateway 力口#注释 用:wq保存并退出重启网路配置$sudo /etc/ network ing restart修改相关配置文件 修改src/文件:打开找到这一条语句:#
3、define TIMEZONE OFFSET(foo) foo#->tm gmtoff将其修改为:#define TIMEZONE OFFSET(foo) (foo)->tm gmtoff这是由于本机所使用的交叉编译版本对语句用法的不同。修改src/文件。打开注释掉下列语句:/*if (du p2(error_log, STDERR_FILENO) = -1) DIE("u nable to du p2 the error log");*/否则会出现错误:73 unable to dup2 the error log:bad file descriptor 。
4、修改src/文件。打开src/注释掉下面两句话:#if 0if (p asswdbuf = NULL) DIE(” getpwuid ”);if (in itgro ups(p asswdbuf- >pw_n ame, p asswdbuf- >p w_gid) = -1) DIE(” initgroups ” );#en dif否则会出现错误::211 - getpwuid: No such file or directory 。#if 0if (setuid(0) != -1) DIE( ” icky Linux kernel bug!”);#en dif否则会出现问题::22
5、8 - icky Li nux kernel bug!: No such file or directory 。生成boa可执行文件 进入相关目录生成 makefile文件:$ cd$ ./con figure 修改makefile文件。$sudo vim Makefile修改 CC = gcc 为 CC = arm-linux-gnueabihf-gcc修改 CPP = gcc -E 为 CPP = arm-linux-gnueabihf-gcc-E接下来进行编译。$ make然后为刚刚生成的二进制文件boa瘦身删除其调试信息。$ arm-l inu x-g nu eabihf-stripb
6、oa修改配置找到配置文件并进行如下修改:$ sudo gedit boa-c onf以下步骤需要在计算机上完成:(1)对Group的修改将Group nogroup (这是修改程序所属的组)。修改为Group 0(2)对user的修改将User nobody (这里是修改程序所属的用户)。修改为User 0(3)对 ScriptAlias 的修改将ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/(这里是配置服务器读取cgi程序的目录,需要在 SD卡中同样的位置建立同样的目录)。修改为 ScriptAlias /cgi-bin/ /www/cgi-bin/(5)对
7、DoucmentRoot 的修改SD卡同样的位置建立将DoucmentRoot /var/www(这里是服务器初始网页放置的位置同样需要在同样的文件夹并将名为的网页放置在其中)。修改为 DoucmentRoot /www(6)对 ServerName 的修改将#ServerName (取消掉注释否则提示没有服务器名)。修改为 ServerName 否则会出现错误" gethostbyname:No such file or directory ”(7)对 AccessLog 修改将AccessLog /var/log/boa/access_log (在SD卡相应位置建立同名文件夹以存
8、放日志文件,否则提示 找不到文件夹)。修改为 #AccessLog /var/log/boa/access_log否则会出现错误提示:"unable to dup2 the error log: Bad file descriptor ” 修改完成后直接点击文件左上方的保存按钮进行保存。在目标板上需要做的配置:创建目录/etc/boa并且把boa和 拷贝到这个目录下:$ mkdir/etc/boa$ sudo cp /media/rootfs/etc/boa 创建HTML文档的主目录/www :$ mkdir /www创建CGI脚本所在的目录 /www/cgi-bin :$ mkdi
9、r /www/cgi-bin测试服务器动态网页功能到此为止服务器已经搭建完成了,接下来就要测试服务器是否能够成功运行动态网页了,为了 顺利完成测试,首先要做的是让目标板和主机能够通过交叉网线通信:在虚拟机菜单栏中安照:虚拟机-设置-网络适配器-网络连接中选择桥街模式,这样就可以直拟网络编辑器来重置网络配置。前面的设置完成后,先将接连接主机的物理网络。有时会出现无论怎样配置都无法联通的情况这时就需要使用虚拟机中的虚sudo vi /etc/n etwork/i nterfaces将主机的ip地址设置为这一网段:addressn etmask:gateway:重启主机的网络服务:1sudo /et
10、c/ network ing restart1再去配置目标板,同样将其置于同一网段:1sudo gedit /etc/n etwork/i nterfaces1将目标板的ip地址设置为冋一网段:addressn etmask:gateway:重启目标板的网络服务:1sudo /etc/ network ing restart1windows下的ipv4设置为:IP地址:,子网掩码:,默认网关:。然后设置Ubuntu下的ip地址:chipseechipsee-desktop:/etc/boa$ chipseechipsee-desktop:/etc/boa$ ifconfig etho .-配置
11、完后在目标板上输入ifconfig可以查看到如下内容Link encap:Ethernet HWaddr 0e:e0:bc:39;4e:01inet addr:161.16B.1.12 Beast:IBl.ISB.1.255 Mask: fnpTfi flfidr : feSO: :r6n;beff :f:4e01/64:I inkUP BROADCAST RUNNING wiLLTICAST MTU: 1488 Metric:! RX packets;254 errors:0 droppEchO overruns:0 frame:0 TX paclcets:43 e
12、rrors :0 droppedoverruns:0 carrier :0 coll isionszO txqLieuelen:100010RX bytes:14961 <14.Q KB) TX bytes:3464 (S.4 KE)Link ercap:Local Loopbackin er addr ;127. 0.0.1vask:255. 0. 0, 01net6 addr: : :1/12E Scope:HostUP LODPEACK RUNNING VITU :164 36 Metric:!RX packGts;64 errors :0 dropped:0 overruns:0
13、 frante:O TX packets:64 Grrors:0 dropped:0 overruns;0 carrier:0 collisionszO txqueuelen'ORX bytes:48eo (4.3 KB) TX bytes:4SeO (4.8 KB)Link ercap:Ethernet Hwaddr 0e:20:bc:39:4e;01UP BROADCAST MULTICAST MTU:1500 Metric:!RX packets:0 errors:0 droppec:0 overruns:0 frame:0TX packets:0 errors :0i drop
14、pec: 0 overruns :0 carri er : 0 col 1isTons:0 txqueuelen:lOOCRX byteszO <0. 0 BTX bytes:0 (0.0 B)chipseechipsee-desktop:/etc/bM$这时就可以测试主机与目标板之间的连通性了:分别在主机和目标板上使用ping命令去测试相互之间的连通性:宀 blttubistij-virtual-«nachlne: -Suda password for chtpsee; fhtpsE肚hlpsuLd帝ktop;Jbwa -bash; ,/boa; No such file o
15、r directory chlps<ech1.pse-e-de5ktop:ybln& ping IBl. 169.1. IC PINC 131.1.10 (191.1.10 56(64)ofFron ISl.I l&l. 168.1.10 p*(i9 stdtx5.tics 4 packe-ts transnttted 0 received, +3 errors, lOa% packet loss, tine 3065ns pipe 3chipseechlp&e-e-desktop:ybinS ping IBl. 16a. 1.10 PIhC(lai.13.1,1
16、6) 56(64) hytti6A 6A 6A 646464 64 64bytes bytes bytes byt卒 bytes byt” byts byte/sfron fron fron fron fron from fron fron181.16ft.1.10: 181.16ft.1.10: 0: lai.16S isi.i6a181.16S 181.16E 181.16aicnp_req=ltenp_req lcflp_roq=Si.ie:1.10: Icep_req=61.10; lcflpeq-71.10: tenp_req=HttL ttl ttl ttL t
17、tl ttL ttl ttL6464 常&4&4&46464oftine tine tine tine tine tine tinens0.366 ns1.25 ns 1.37 ns9.977 ns1.25 ns=0.275 msttneaQ.335 ms-10,168p1h10 ping statistics e packets twMElttee a received a* packe? loss, fine 7eziPi$ ftt Rlft/3Wa;RaJ</Rd*U - 0,275;M4J|/3,32&/9.927 nS chtp咅Eggthlps
18、e电-desktopi/bleS .图测试连通性出现上图所示信息就便表示着主机与目标板已经联通了,可以进行通信了。接下来要做的就是编译一个cgi程序,因为只是测试用所以就用最简单的hello world 来测试:首先建立一个文件:$sudo gedit编写hello world代码:#in clude<>int main (i nt argc, char* argv)prin tf("Co nte nt-ty pe:text/htmlnn");prin tf("<html>n");prin tf("<headxti
19、tle></titlex/head>n");prin tf("<body>n");prin tf("<h1>Hello World! <font color="blue">"CGI C"</fo nt></h1>n");prin tf("</body>n");prin tf("</html>n");return 0;保存。然后再对其进行编译,使之成为一个cgi文件:
20、arm-li nu x-g nu eabihf-gee-o在当前文件夹下便会生成,为这个文件添加权限,使其可执行:chmod +X将这个文件移动到 SD卡中之前所指定的服务器中的文件夹:sudo cp/media/rootfs/www/cgi-bi n/现在可以打开浏览器在地址栏中输入出现下图所示页面说明boa的目录,用cgi功能可以使用,可以进行下一 步工作了:(首先应在目标板中启动 Boa服务器,步骤如下:在目标板中找到文件cd命令进入,输入$sudo ./boa,然后用ps -ef查看进程中是否有 boa。或者用ps -ef|grep boa直接查找进程Boa更加简便。接下来才能访问服务
21、器。否则会出现连接不到服务器的错误)"VWnMiHt阪二iS*鳥丫带F牛二八图 boa的运行与进程查看计机I-車®亘匡片r立打下戟帔各IU r-oat'sU boor_銀淀t:.卬忙Wllo.c无I示g文睚Hello World! "CGI L图动态网页测试二、实现嵌入式 web远程控制功能目前为止,服务器的搭建以及数据的传输等基本功能已经实现了,为了能够实现嵌入式 程控制的功能,就需要让控制者进入到其主页来进行编辑提交,所以在这个页面中就要让控制者能 够对目标板进行各种控制和修改,而html只是单方向的,不能进行信息的交互,这时候就需要程序来完成交互的任
22、务。web远cgi静态网页的配置首先建立一个文件:sudo gedit编写代码:VDOCT YPE HTML P UBLIC "-ocation='"+.value+"'");if (restore) =0;</scri pt></head><body><p> </p><p> </p><form id="form1" n ame="form1" method="ge
23、t" actio n="/cgi-bi n/"> vinput type="submit" value="重启"></form><a href="" target="_bla nk">hello</a> <pre>vform acti on="/cgi-b in/" method="po st">vinput typ e="text" n ame="v
24、ar_ ip">vinput type="submit"value="更换"></form></p>其实每个标记都是一一对应的。每个网页文件都是以html开始和以/html结束。title与v/title之间的内容是网页的标题。会显示在浏览器的标题栏上。vbody与v/body之间放的是网页内容。<p>  ;</p>语句能够实现空行功能,以便使网页整体结构不会过于紧凑,<a href="" target=" blank"&g
25、t;hello</a><pre>|将拷贝到目标板 HTML文档的主目录/WWW里。sudo cp /media/rootfs/www|显示为hello用于测试服务器的 cgi功能。该语句表示了在网页中加入一个超链接,该链接指向 效果如图所示:在虚拟机浏览器中输入显示如下图所示图 HTML超链接点击heJJoW后服务器跳转,页面显示的内容:无标题文档 cgiCHellLo.c1S1.1 &8.1.112/cgi-bi n/iiielll?. 2.sHello World! "CGI C"动态网页的配置HTML表单图超链接<form act
26、ion="/cgi-b in/" method=" po st">/表单动作指向传送方式为Postvinput typ e="text" n ame="var_i p">/插入文本框,赋值名为var_i Pvinput typ e="submit" >/插入提交按钮</form>/表单结束上面的语句表示了以 post的方式将表单内容发送给,同时定义了一个按键和一个输入文本框, 按钮的属性为提交按钮,文本框内的值为var_iP的值。cgi功能的实现为了能够实现更改ip
27、的的功能就需要写一个shell脚本调用in terfaces并对其进行修改,然而修改这个文件需要root权限,可是单单给 shell脚本加上权限并不能达到目的,这时就需要借用一个程序来提升其权限.首先建立一个文件:sudo gedit编写代码:#in elude <>#in elude <>#i nclude <sys/>#in elude <>首先建立一个文件:int mai n() prin tf("Co nten t-ty pe: text/htmlnn ”);sudo gedit编写代码:#in clude <>#i
28、n clude <>#i nclude <sys/>#in clude <>int main (i nt argc,char *argv,void)prin tf("Co nte nt-t ype: text/htmlnn");int a;if (a=1)prin tf("The system is gog ing to rebootnn ”);system("sudo reboot");.但是没有真正的重启系统,是因为重启系统需要有root的权限,因此加入sudo之后便可以正常的实现功能elseretum(
29、O) ; 1测试远程控制功能配置ip地址功能首先将主机与开发板用网线串口线连好,打开SecureCRT连接进入开发板,如果是上电之前就连接好电脑的话,还可以看到一些启动信息。在开发板上启动boa服务器,之所以使用root权限进入是因为,如果用普通用户权限进入的话, 会有端口被占用的提示, 然而如果使用8080端口的话,对于本设计后面的进行会带来很多不必要的 麻烦。启动boa服务器后,会显示启动信息,服务器版本,服务器创建时间以及服务器所占用的端口 号,占用的端口号为 80。ip ()这样就进入了服务器的主页,主页在主机上打开浏览器,地址栏内输入开发板服务器的 的内容很直接,两个按钮,一个超链接
30、,一个文本框:重启功能在开发板上测试重启功能的具体过程如下:打开服务器初始的页面找到并点击重启按钮,重启这个功能看起来比改变ip要容易的多,但是如果使用c语言来编写cgi程序的时候往往会因为权限的问题带来很多的麻烦。因此要注意加sudo给到系统root权限。重启按钮 The sy虬l»m k guging tu rwbout.: hEpypfli.iefi JrVaUroot<fji W 亍 呼iBi.iaa.仁12“丄.I. .y浏览器中的显示,目标板自动重启chlpseechlpsee-desktopcd /etc/boa chtp&eegchipsee-deskt
31、op:/etc/boa$ sudo password for 匚hipsee; 01/3an/2OOG:0Q:02:57 +0000 01/Jdn/200O:0O:O2:57 +0000 Ol/JaD/2O00:00:02:57 +0000sudo ./boaboa: bod; bod:server version Boa/G*94*13server built May 13 ZO14 at 10:36:23. starting server ptd=1629j port SOchtpseechlpsee-desktop:/etc/boaS Broadcast message from rootgchtpsee-desktop (unknown) at 8:03The system is going down for reboot NOW! fi9.6261S9 tnlt!Checking for running89,666839 inlt:89"盯418 tntt;Failed to create pty unattendedupgrades: FailedFaileddisablinglog
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育心理学与科技趋势智能教学系统的心理影响
- 教育政策的未来走向与挑战
- 面向未来的智慧城市物联网基础设施融资策略探讨
- 实践中的智慧教育机器人技术助力教学
- 动态学习评估与教育心理学的结合
- 教学机器人在数学辅导中的卓越表现
- 销售技巧培训课件名称
- 教育大数据与教育公平的探索
- 药店pop海报培训课件
- 面向未来的智能型教学互动机器人研究
- 天门山污水处理厂二期扩建项目环境影响报告书
- 妇产科学 妊娠合并心脏病
- -卫生资格-副高-疾病控制-副高-章节练习-慢性非传染性疾病控制-试题(单选题)(共1125题)
- 骨质疏松病人的护理
- 高中英语全国高考考纲词汇3600汇总
- GB/T 35068-2018油气管道运行规范
- GB/T 13277.7-2021压缩空气第7部分:活性微生物含量测量方法
- 2023年娄底冷水江市广播电视台(融媒体中心)招聘笔试模拟试题及答案解析
- 特劳特战略定位总裁课程课件
- 陈宝光-TTT课程开发与设计(讲义)V2.1
- 六年级开学主题班会课件
评论
0/150
提交评论