iTOP4412基于Linux最小系统搭建Web服务器,实现Web远程控制LED
首先我们要在板子上搭建web,需要用到boa小型服务器。到官网 www.boa.org 下载 boa 到 Ubuntu 虚拟机上进行解压解压boa进入 src 目录执行configure接下来修改Makefile里面的两个参数,使用arm编译工具链改为保存退出接着修改compat.h改为保存退出编译再对生成的boa进行裁剪...
首先我们要在板子上搭建web,需要用到boa小型服务器。
到官网 www.boa.org 下载 boa 到 Ubuntu 虚拟机上进行解压
进入 src 目录执行configure
接下来修改Makefile里面的两个参数,使用arm编译工具链
改为
保存退出
接着修改 compat.h
改为
保存退出
编译
再对生成的boa进行裁剪
至此boa镜像完成
接下来对boa进行一些设置
返回上级目录,对boa.conf进行修改
改为
删除#
这个是CGI二进制可执行文件的目录 可以自行设置
这里我设置为 /www/cgi-bin/
接下来对板子进行文件的配置和创建
在开发板的终端进行下面操作
建立你刚刚设置的CGI二进制可执行文件的目录
根据我上面的设置:/www/cgi-bin/。
所以我要在根目录下先建立www文件夹,在www里面再建立cgi-bin文件夹
接下来 在 etc目录下建立boa文件夹
由于使用的是Linux最小系统,所以在/etc下创建一个 group 文件, 文件中写上
root:*:0:
保存退出。
接下来可以编写cgi程序和 网页html程序
我就直接贴迅为提供的代码了
这是网页的html代码 index.html 文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Led_Ctl</title>
<style type="text/css">
body {
background-color: #999900;
text-align: center;
}
.ziti {
font-size: 24px;
}
.juzhong {
text-align: center;
}
.hsz {
text-align: center;
}
.hsz td {
color: #00F;
font-size: 18px;
}
.hsz {
background-color: #FCC;
}
.juzhong table {
text-align: center;
}
.juzhong table tr {
}
#h1 {
background-color: #0FC;
}
#h2 {
background-color: #FF9;
}
.h3 {
background-color: #0CF;
}
.ys1 {
font-size: 24px;
}
.STYLE1 {font-size: 36px}
</style>
</head>
<body class="juzhong">
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><p class="STYLE1"> </p>
<p class="STYLE1">iTOP-4412 WEB SERVER </p></td>
</tr>
<tr>
<td height="30"> </td>
</tr>
<tr>
<td><form action="/cgi-bin/myled.cgi" method="get" enctype="application/x-www-form-urlencoded" name="form1" target="_blank" id="form1">
<table width="300" border="1" align="center" cellpadding="1" cellspacing="1">
<tr>
<td>Led1</td>
<td><input name="led1" type="checkbox" id="led1" value="1" />
<label for="led1"></label></td>
</tr>
<tr>
<td>Led2</td>
<td><input name="led2" type="checkbox" id="led2" value="2" />
<label for="led2"></label></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" id="submit" value="submit" /></td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td ><p> </p> </td>
</tr>
</table>
<p> </p>
</body>
</html>
这是 网页调用的CGI程序 myled.c 文件
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *data;
int leds[2] = {0, 0};
long m, n;
int exit=0,i,fd;
printf("Content-Type:text/html;charset=gb2312\n\n");
printf("<html>\n");
printf("<body>\n");
printf("<title>iTOP-4412</title> ");
printf("<h3>iTOP-4412</h3> ");
data = getenv("QUERY_STRING");
printf("<p>receive data:%s</p>",data);
while(*data != '\0')
{
if(*data=='=')
switch(*(data+1))
{
case '1':leds[0]=1;break;
case '2':leds[1]=1;break;
default:exit=1;break;
}
if(exit == 1)
break;
data++;
}
fd=open("/dev/leds",0);
for(i=0;i<2;i++)
{
if(leds[i]==1)
printf("<p>%d\t</p>",i+1);
ioctl(fd,leds[i],i);
}
printf("</body>\n");
printf("</html>\n");
return 0;
}
我们编译一下
生成 myled.cgi
接下来将虚拟机的文件传输到板子上就好了
编译生成的boa文件 传输到 板子的 /bin/ 下面
修改好的boa.conf传输到/etc/boa
Ubuntu虚拟机下/etc目录下的mime.types传输到/etc
编译好的myled.cgi 传输到 你的自定义的cgi目录下
index.html文件同理
我这里就是将
myled.cgi -》 /www/cgi-bin/
myled.cgi -》 /www/
到此全部配置完成
可以运行web服务器了
命令行直接输入boa 即可启动 web 服务器了
如果想要开机启动 可将 其命令 加入 etc/init.d/rcS 中
在Win10 下输入你的板子的ip地址就可以看到你的web 服务器了(测试前确保板子能 ping 通 Ubuntu 虚拟机)
这时板子上的两个LED都灭了,测试成功!
至此iTOP4412基于Linux最小系统搭建Web服务器,实现Web远程控制LED 完成!
更多推荐
所有评论(0)