iTOP4412基于Linux最小系统搭建Web服务器,实现Web远程控制LED

首先我们要在板子上搭建web,需要用到boa小型服务器。

到官网 www.boa.org 下载 boa 到 Ubuntu 虚拟机上进行解压

解压boa

进入 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">&nbsp;</p>
    <p class="STYLE1">iTOP-4412 WEB SERVER </p></td>
  </tr>
 
  <tr>
    <td height="30">&nbsp;</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>&nbsp;</p>    </td>
  </tr>
</table>
<p>&nbsp;</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 虚拟机)

我对html文件做了简单修改,加入一个背景,默认背景是黄色

 

 

 

 

 

 

 

这时板子上的两个LED都灭了,测试成功!

 

至此iTOP4412基于Linux最小系统搭建Web服务器,实现Web远程控制LED 完成!

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值