GoAhead是一款强大的嵌入式的web服务器,广泛应用在各种潜入式的系统中。支持各种多种操作系统。可以使用静态html,cgi或ASP以及嵌入式的JavaScript。而现在android又在嵌入式系统中应用越来越广泛,以下为在android上移植goahead的详细步骤,其他嵌入式linux与此相同:
1.下载goahead的源码
https://github.com/embedthis/goahead/downloads
2.下载和解压arm-linux-gcc
比如解压到/usr/local/arm-gcc目录
3.修改goahead的mkfile文件
打开goahead/LINUX/Makefile文件,修改gcc和ar变量,如下两行:
CC=/usr/local/arm-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-gcc
AR=/usr/local/arm-gcc/opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-ar
为了省去链接的麻烦,修改CFLAGS变量,添加static参数,直接修改为静态链接(否则在
执行编译后的目标码时一直报webs not found错误):
CFLAGS =
-static -DWEBS -DOS="LINUX" - DLINUX $(UMSW) $(DASW) $(SSLSW) $(IFMODSW)
4.将goahead/LINUX/main.c的initWebs函数中的如下代码注释:
if (gethostname(host, sizeof(host)) < 0) {
error(E_L, E_LOG, T("Can't get hostname"));
return -1;
}
if ((hp = gethostbyname(host)) == NULL) {
error(E_L, E_LOG, T("Can't get host address"));
return -1;
}
memcpy((char *) &intaddr, (char *) hp->h_addr_list[0],
(size_t) hp->h_length);
修改端口号为8080:
static int port = 8080;
5.修改web服务器的根路径,在goahead/LINUX/initWebs函数中修改
修改如下两行:
static char_t *rootWeb = T(/data/local/webroot);
/* Root web directory */
static char_t *demoWeb = T(/data/local/webrootdemo);
/* Root web directory */
修改如下代码:
sprintf(webdir, %s/%s, dir, demoWeb);为:
sprintf(webdir, %s, demoWeb);
修改如下代码:
sprintf(webdir, %s/%s, dir, demoWeb);为:
sprintf(webdir, %s, rootWeb);
6.添加监听端口的提示:
在在goahead/webs.c的websOpenListen函数的倒数第二行增加如下代码:
fprintf(stderr,"goahead has started!\nlistener port:%d\n",port);
使goahead运行起来我们可以看到它的监听端口。
7.编译:
在goahead/LINUX下执行make命令进行编译,在此目录下生产webs可执行文件
8.创建相关目录
创建/data/local目录;
然后在此目录下创建webroot文件夹和webrootdemo文件夹;
在webroot目录下创建cgi-bin目录
在cgi-bin目录下创建tmp目录
8.运行
拷贝webs到android的/data/local目录下,并且修改为可执行权限,然
后在/data/local目录下,执行如下命令./webs &
9.测试
在/data/local/webroot文件夹下放入测试的静态网页hello.html
在android的浏览器上输入
http://ip:8080/hello.html
就可以看到hello.html网页的内容了;
在/data/local/webroot放入goahead/wwwdemo/asptest.asp
然后在android的浏览器上输入
http://ip:8080/asptest.asp,就可以看到asptest.asp的执行结果了。
在/data/local/webroot/cgi-bin目录下放入
goahead/wwwdemo/cgi- bin/cgitest
然后在android的浏览器上输入
http://ip:8080/cgi-bin/cgitest,就可以看到cgi的执行结果了。
也可以使用pc测试(前提是pc的ip应该和运行goahead程序的android或linux在同
一网段),结果一样。
分享到:
相关推荐
嵌入式Linux系统移植是指将Linux操作系统移植到嵌入式设备中,以满足各种应用需求。嵌入式Linux系统移植的重要性在于其广泛的应用场景,例如手机、洗衣机、汽车等设备都需要嵌入式Linux系统的支持。 嵌入式Linux...
深度实践嵌入式Linux系统移植深度实践嵌入式Linux系统移植深度实践嵌入式Linux系统移植深度实践嵌入式Linux系统移植深度实践嵌入式Linux系统移植
嵌入式Linux系统的移植研究是指在嵌入式系统中实现Linux操作系统的移植,涉及到嵌入式系统的设计、开发、测试和移植等方面。该研究领域涵盖了嵌入式系统的软硬件设计、Linux操作系统的移植、嵌入式GUI的设计和实现、...
GoAhead 嵌入式Web服务器 移植到ARM, goAhead Web服务器,小巧、精致,提供了值得称道的性能,特别适合于嵌入式系统,因此,在很多嵌入式产品如路由器中都用到了goAhead作为嵌入式web服务器
嵌入式 Linux 系统移植是指将 Linux 操作系统移植到嵌入式设备上,以满足特定的应用需求。本文主要研究了 ARM 平台和 Linux 嵌入式系统中 BotLoader、Linux 内核及文件系统的移植方法,并在虚拟机平台软件下安装 ...
6. **嵌入式Linux的关键技术**:构建嵌入式Linux系统涉及对Linux进行裁剪以实现小型化,移植内核到不同的嵌入式微处理器,以及开发针对特定应用的控制软件。 7. **实时性问题**:嵌入式Linux的实时性是衡量其性能的...
《ARM嵌入式Linux系统开发详解》是一本深入探讨如何在ARM处理器上构建和开发Linux系统的资源集合。ARM架构因其低功耗、高性能的特点,在嵌入式领域广泛应用,而Linux作为开源的操作系统,为开发者提供了丰富的工具和...
- **遵循POSIX标准**:Linux遵循IEEE POSIX.1标准,这意味着在Linux上编写的应用程序具有良好的可移植性,可以在不同的平台上运行。 #### 3. SBC2410硬件平台介绍 SBC2410是基于三星公司的ARM9处理器S3C2410A设计...
在应用程序移植部分,书籍会介绍如何将标准的Linux应用程序迁移到嵌入式环境中,这通常涉及到交叉编译工具链的使用、库文件的适配以及设备驱动的编写。此外,可能还会讨论文件系统制作,如JFFS2、YAFFS等嵌入式文件...
Qt/E mbedded图形系统的移植是指在嵌入式Linux系统下将Qt/E mbedded图形系统移植到目标板上。这个过程需要在嵌入式Linux系统下建立开发环境,包括安装Cross编译工具链、 Qt/E mbedded库、嵌入式Linux内核和文件系统...
嵌入式Linux系统的移植是指将Linux操作系统移植到嵌入式硬件平台上,使其能够在嵌入式系统中运行。本资源中,作者使用了ARM9平台的S3C2440A微处理器作为核心,设计了一种创新性的实验设计,通过在ARM9硬件平台上进行...
这个教程将详细讲解如何在Linux-2.6.20环境下,将GoAHead Web服务器移植到基于ARM架构的设备上,使用的编译工具是arm-linux-gcc-3.4.1。 首先,我们需要了解GoAHead的基本结构和功能。GoAHead的核心是一个小型但...
全书共25章,从嵌入式处理器ARM开始,讲解了ARM处理器的资源、ARM的指令集、ADS开发工具、嵌入式系统硬件环境的构建、Bootloader、Linux内核移植、嵌入式文件系统、嵌入式Linux多任务程序开发、嵌入式Linux设备驱动...
在嵌入式领域,Linux系统移植是一项至关重要的工作,它涉及到将Linux操作系统适应特定硬件平台的过程。本主题“深度实践嵌入式Linux系统移植”主要关注于如何在s3c2440和s3c6410这两款三星微处理器的开发板上进行...
《GoAhead服务器在Linux上的移植与应用》 GoAhead服务器是一款轻量级、嵌入式的Web服务器,广泛应用于物联网(IoT)设备和小型网络设备上。它以其小巧的体积、高效性能和易于配置的特点,成为了许多开发者的首选。...
在本场景中,我们将探讨如何将GoAhead 3.4.10版本移植到基于ARM架构的开发板上,该开发板运行的是Linux 3.x内核。 首先,我们需要了解GoAhead的特性。GoAhead支持多种操作系统,包括Linux,这使得它成为跨平台应用...
下面将详细介绍如何将LVGL移植到嵌入式Linux开发板上。 首先,你需要下载LVGL的源代码。在本例中,你可以从Gitee获取ironspider/cmake_lvgl8.1的打包文件。确保选择适合你目标平台的版本。下载后,解压缩文件,并...
在嵌入式Linux开发过程中,可以通过NFS文件系统将宿主机上的文件系统挂载到目标机上,这样就可以在宿主机上开发和测试应用程序,极大地提高了开发效率。 #### 结论 本文通过对AT91RM9200微处理器的详细介绍,展示...
《基于AT91RM9200的嵌入式Linux系统的移植与实现》这篇文献主要探讨了如何在AT91RM9200微控制器上移植和实现嵌入式Linux系统,涵盖了从硬件平台到软件系统的各个关键环节。AT91RM9200是一款基于ARM920T核心的32位...