开篇简介:
首先说明,我是个新手,如果有说错的地方,笔下留情。
写这个的原因是因为在做关于用网页控制LED灯的实验时,查了太多不相关的资料,写这个是为了留作笔记,供后来者了解更多的资料。
开发环境:
VMwareStation 9
ubuntu10.10
开发板S3C6410
配置TFTP服务、NFS服务、安装交叉编译器、文件系统。
具体情况:已裸机运行跑马灯,编写好驱动程序控制LED。
在老师的指导帮助下,发现文件系统已自带了httpd,这对用网页控制开发板的LED灯已足够,简而言之,就没必要安装boa或是thttpd服务器了。打开终端,输入 httpd -k,就会出现httpd的相关使用参数。其实这里也只需要httpd -h 这个命令。在文件系统的目录下,/etc/init.d/rcS文件中加入 httpd –h /srv/www,将网页的打开根目录设在/srv/www中。
在文件系统根目录下,新建目录srv,srv下新建目录www,www下新建目录cgi-bin 。$ mkdir -p /srv/www/cgi-bin。
在文件系统/srv/www目录下放置html文件,在/srv/www/cgi-bin目录下放置sh文件,cgi文件。试了在其他目录放置sh或cgi文件,网页调用显示错误。
led.html文件是控制LED的网页。1.sh就是cgi文件,在内部服务器执行操作,在led.html按下按钮,执行1.sh。2.html是为了返回led.html而写的。
这些做好了,运行开发板。加载驱动程序led_driver.ko,在网页上就可以控制led了。效果如下:
led.html效果:
点击按钮“确定”后:
开发板上:
led.html文件:
<html>
<title>LXD LED TEST</title>
<body>
<form action="cgi-bin/1.sh" method=GET >
<center>输入要点亮的LED灯
<input type=textname="led"></center>
<br />
<center>输入LED状态
<input type=textname="status"></center>
<br />
<center><inputtype="submit" value="确定"><inputtype="reset" value="重设"></center>
</form>
</body>
</html>
1. sh:
#!/bin/sh
echo "Content-Type:text/plain"
echo
LED1_ON=0
LED2_ON=0
LED3_ON=0
LED4_ON=0
SPEED=0
case $QUERY_STRING in
*status=1*)
SPEED=1
;;
esac
case $QUERY_STRING in
*led=1*)
LED1_ON=1
;;
esac
case $QUERY_STRING in
*led=2*)
LED1_ON=2
;;
esac
case $QUERY_STRING in
*led=3*)
LED1_ON=3
;;
esac
case $QUERY_STRING in
*led=4*)
LED1_ON=4
;;
esac
/temp/led_driver/test $SPEED $LED1_ON
httpd -h /srv/www
cat 2.html
2. html文件:
<html>
<head>
</head>
<body>
<p>LED设置已经提交</p>
<p><ahref="http://172.16.41.6/led.html">返回上一页</a></p>
</body>
</html>