`
yangwei0915
  • 浏览: 465371 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

移植goahead到android或其他嵌入式linux系统上

 
阅读更多
  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系统移植.pdf

    嵌入式Linux系统移植是指将Linux操作系统移植到嵌入式设备中,以满足各种应用需求。嵌入式Linux系统移植的重要性在于其广泛的应用场景,例如手机、洗衣机、汽车等设备都需要嵌入式Linux系统的支持。 嵌入式Linux...

    深度实践嵌入式Linux系统移植源代码

    深度实践嵌入式Linux系统移植深度实践嵌入式Linux系统移植深度实践嵌入式Linux系统移植深度实践嵌入式Linux系统移植深度实践嵌入式Linux系统移植

    嵌入式Linux系统的移植研究.pdf

    嵌入式Linux系统的移植研究是指在嵌入式系统中实现Linux操作系统的移植,涉及到嵌入式系统的设计、开发、测试和移植等方面。该研究领域涵盖了嵌入式系统的软硬件设计、Linux操作系统的移植、嵌入式GUI的设计和实现、...

    GoAhead 2.5嵌入式Web服务器移植到ARM9 Linux

    GoAhead 嵌入式Web服务器 移植到ARM, goAhead Web服务器,小巧、精致,提供了值得称道的性能,特别适合于嵌入式系统,因此,在很多嵌入式产品如路由器中都用到了goAhead作为嵌入式web服务器

    嵌入式Linux系统移植研究与实现.pdf

    嵌入式 Linux 系统移植是指将 Linux 操作系统移植到嵌入式设备上,以满足特定的应用需求。本文主要研究了 ARM 平台和 Linux 嵌入式系统中 BotLoader、Linux 内核及文件系统的移植方法,并在虚拟机平台软件下安装 ...

    嵌入式Linux操作系统

    6. **嵌入式Linux的关键技术**:构建嵌入式Linux系统涉及对Linux进行裁剪以实现小型化,移植内核到不同的嵌入式微处理器,以及开发针对特定应用的控制软件。 7. **实时性问题**:嵌入式Linux的实时性是衡量其性能的...

    ARM嵌入式Linux系统开发详解.zip

    《ARM嵌入式Linux系统开发详解》是一本深入探讨如何在ARM处理器上构建和开发Linux系统的资源集合。ARM架构因其低功耗、高性能的特点,在嵌入式领域广泛应用,而Linux作为开源的操作系统,为开发者提供了丰富的工具和...

    ARM9上的嵌入式Linux系统移植.pdf

    - **遵循POSIX标准**:Linux遵循IEEE POSIX.1标准,这意味着在Linux上编写的应用程序具有良好的可移植性,可以在不同的平台上运行。 #### 3. SBC2410硬件平台介绍 SBC2410是基于三星公司的ARM9处理器S3C2410A设计...

    深度实践嵌入式Linux系统移植 (范展源著) 完整pdf扫描版

    在应用程序移植部分,书籍会介绍如何将标准的Linux应用程序迁移到嵌入式环境中,这通常涉及到交叉编译工具链的使用、库文件的适配以及设备驱动的编写。此外,可能还会讨论文件系统制作,如JFFS2、YAFFS等嵌入式文件...

    基于嵌入式Linux系统下的Qt开发.pdf

    Qt/E mbedded图形系统的移植是指在嵌入式Linux系统下将Qt/E mbedded图形系统移植到目标板上。这个过程需要在嵌入式Linux系统下建立开发环境,包括安装Cross编译工具链、 Qt/E mbedded库、嵌入式Linux内核和文件系统...

    基于ARM9平台的嵌入式Linux系统移植实验设计.pdf

    嵌入式Linux系统的移植是指将Linux操作系统移植到嵌入式硬件平台上,使其能够在嵌入式系统中运行。本资源中,作者使用了ARM9平台的S3C2440A微处理器作为核心,设计了一种创新性的实验设计,通过在ARM9硬件平台上进行...

    GoAHead嵌入式移植

    这个教程将详细讲解如何在Linux-2.6.20环境下,将GoAHead Web服务器移植到基于ARM架构的设备上,使用的编译工具是arm-linux-gcc-3.4.1。 首先,我们需要了解GoAHead的基本结构和功能。GoAHead的核心是一个小型但...

    精通ARM嵌入式Linux系统开发1

    全书共25章,从嵌入式处理器ARM开始,讲解了ARM处理器的资源、ARM的指令集、ADS开发工具、嵌入式系统硬件环境的构建、Bootloader、Linux内核移植、嵌入式文件系统、嵌入式Linux多任务程序开发、嵌入式Linux设备驱动...

    深度实践嵌入式Linux系统移植

    在嵌入式领域,Linux系统移植是一项至关重要的工作,它涉及到将Linux操作系统适应特定硬件平台的过程。本主题“深度实践嵌入式Linux系统移植”主要关注于如何在s3c2440和s3c6410这两款三星微处理器的开发板上进行...

    goahead-server-for-Linux.rar_GOAHEAD WEB_goahead_goahead移植_linux

    《GoAhead服务器在Linux上的移植与应用》 GoAhead服务器是一款轻量级、嵌入式的Web服务器,广泛应用于物联网(IoT)设备和小型网络设备上。它以其小巧的体积、高效性能和易于配置的特点,成为了许多开发者的首选。...

    GoAhead3.4移植到arm平台

    在本场景中,我们将探讨如何将GoAhead 3.4.10版本移植到基于ARM架构的开发板上,该开发板运行的是Linux 3.x内核。 首先,我们需要了解GoAhead的特性。GoAhead支持多种操作系统,包括Linux,这使得它成为跨平台应用...

    如何将lvgl移植到嵌入式linux.docx

    下面将详细介绍如何将LVGL移植到嵌入式Linux开发板上。 首先,你需要下载LVGL的源代码。在本例中,你可以从Gitee获取ironspider/cmake_lvgl8.1的打包文件。确保选择适合你目标平台的版本。下载后,解压缩文件,并...

    嵌入式Linux系统的移植及其根文件系统的实现.pdf

    在嵌入式Linux开发过程中,可以通过NFS文件系统将宿主机上的文件系统挂载到目标机上,这样就可以在宿主机上开发和测试应用程序,极大地提高了开发效率。 #### 结论 本文通过对AT91RM9200微处理器的详细介绍,展示...

    基于AT91RM9200的嵌入式Linux系统的移植与实现.pdf

    《基于AT91RM9200的嵌入式Linux系统的移植与实现》这篇文献主要探讨了如何在AT91RM9200微控制器上移植和实现嵌入式Linux系统,涵盖了从硬件平台到软件系统的各个关键环节。AT91RM9200是一款基于ARM920T核心的32位...

Global site tag (gtag.js) - Google Analytics