搜索
bottom↓
回复: 7

GoAhead移植到OpenWRT

[复制链接]

出0入0汤圆

发表于 2016-12-15 19:10:42 | 显示全部楼层 |阅读模式
本帖最后由 qingwei_cui 于 2016-12-15 21:46 编辑

12年做智能家居网关时,将GoAhead移植到at91sam9x5。-> goAhead2.5嵌入式web服务器移植 今天往一块板子上折腾OpenWRT时,顺便将GoAhead移植到OpenWRT系统上,运作正常!突然发现好久没发帖了

1.make menuconfig

2.ipk

3.run

4.goahead运行效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-12-15 21:30:16 | 显示全部楼层
搜了下 真是好东西  最近也正为选择合适嵌入式的webserver发愁  
楼主git用的也很牛

出0入0汤圆

 楼主| 发表于 2016-12-15 21:43:35 | 显示全部楼层
本帖最后由 qingwei_cui 于 2016-12-15 22:38 编辑
4058665 发表于 2016-12-15 21:30
搜了下 真是好东西  最近也正为选择合适嵌入式的webserver发愁  
楼主git用的也很牛
...


1. 需求分析

需要在设备内部集成WEB管理功能,类似于家用路由器,通过网页浏览器登陆设备,实现对设备进行状态监视、参数设置、固件升级等功能。

硬件条件:设备内部主控制器的嵌入式CPU普遍低端,主频只有几百兆,内存有128M的,也有的只有几百K片上配置,WEB管理功能的集成不能影响设备网络主业务性能,可能无文件系统。

轻量级 WEB Server
首先要找一个合适的轻量级的WEB Server,最好是C/C++实现的,有OS和没有OS都能方便移植。WEB Server不需要太复杂,能支持1种动态语言,提供良好的CGI接口。
设备管理架构 Device Manager Framework
以轻量级的WEB Server为基础,提供一个设备管理框架,可通过代码直接定制目录结构,可直接修改模板增减状态和配置页面。

使用AJAX等技术实现不重新加载页面的情况下,刷新网页局部,实现设备状态“实时”监视功能。

2. 轻量级WEB Server 对比

开源的轻量级WEB Server很多,比如GoAhead、Shttpd、Thttpd、Lighttpd、BOA、mathopd、minihttpd、appweb,但适合于移植到嵌入式平台的并不多。

GoAhead
GoAhead基于C语言的嵌入式WEB Server,由Embedthis公司维护,实现了服务端的嵌入式Javascript、CGI、DHTML,支持文件上传,网上资料比较多,最新V3.6.3源码在这

GoAhead本身自带Windows、Linux、各种RTOS的移植子目录文件,其他服务器公共模块移植性做的很好,可不使用文件系统而将所有WEB资源文件ROM化,是学习进阶C语言的很好例子。若开发linux平台下的web监控,你可以利用windows下的vs先调试好JS+CSS前端,再去linux平台下解决数据交互层面的问题。

BOA
BOA 服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器。
源代码开放、性能高。由于它是一个单任务的Web服务器,只能一次完成用户的请求,而不会fork出新的进程来处理并发的链接请求。但是Boa支持Cgi,能够为Cgi程序fork出一个进程来执行相应的客户请求。

Lighttpd
Lighttpd是一个德国人领导的开源Web服务器软件,具有非常低的内存开销、cpu占用率低、性能好以及丰富的模块等特点,相比GoAhead更专业,支持php,当然更占点资源。Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI,CGI,Auth,输出压缩(output compress),URL重写,Alias等重要功能。

lighttpd针对web并发请求的特点,采用事件驱动模式架构以提高性能,可以看作是一个轻量级的Apache,消耗内存更少,Apahche的很多功能在lighttpd上都有相应的实现。lighttpd支持FastCGI,利用临时内存文件快速响应HTTP请求;支持COMET,服务器端的主动推送技术;并支持异步IO模式的响应。

uHttpd
uHTTPd是一个OpenWrt/LUCI 开发者从头编写的Web服务器,能满足嵌入式设备在linux平台下的轻量级任务需求,使用select模型进行多请求并发处理。

uHTTPd是OpenWRT上默认的Web服务器,支持CGI,以及静态文件的服务,很多路由器使用OpenWRT架构,顺便使用支持lua的uHTTPd开发管理界面。通过Luci处理CGI请求,实现基于Lua脚本的web开发。

busybox httpd
busybox是嵌入式Linux下的开发“瑞士军刀”,基本上Android手机上都有安装;httpd是busybox的附带工具之一,轻量级,支持CGI。用的人少:(

3. 设备管理架构

Luci
感兴趣的童鞋可以在虚拟机上先安装OpenWrt镜像,体验下Luci的管理界面。

引自->设备产品WEB管理界面实现

出40入42汤圆

发表于 2016-12-15 21:51:02 | 显示全部楼层
支持支持支持,没接触过,但是觉得很diao的样子。搜索了一下,算是物联网的小型利器了

出0入0汤圆

发表于 2016-12-15 22:09:18 | 显示全部楼层
板载资源是够的  目前主要考虑的开发效率  如果接近apache  或net开发方式最好了
看了楼主推荐的几个server   
应该会在GoAhead   或   Lighttpd  中选了
非常感谢楼主提供的思路  看了git   楼主大牛  做了很多优秀的设计  佩服!

出0入0汤圆

 楼主| 发表于 2016-12-15 22:44:40 | 显示全部楼层
4058665 发表于 2016-12-15 22:09
板载资源是够的  目前主要考虑的开发效率  如果接近apache  或net开发方式最好了
看了楼主推荐的几个serve ...

boa用得也比较多,过奖了!

出10入12汤圆

发表于 2017-7-11 09:50:18 来自手机 | 显示全部楼层
楼主给了一个比较明确的方向 留个爪印方便回看

出100入101汤圆

发表于 2017-9-23 16:13:50 | 显示全部楼层
LZ大牛,看命令行头晕
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 06:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表