`
yangwei0915
  • 浏览: 461635 次
  • 性别: 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 内核及文件系统的移植方法,并在虚拟机平台软件下安装 ...

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

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

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

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

    嵌入式Linux应用开发完全手册.pdf

    《嵌入式Linux应用开发完全手册》以S3C2410、S3C2440开发板为例,从分析硬件上电执行的第一条指令开始,到构造出一个类似PDA、基于Linux的桌面GUI系统,带领读者学习、掌握从最底层到最高层的软件编写方法。《嵌入式...

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

    如何将lvgl移植到嵌入式linux

    精通ARM嵌入式Linux系统开发代码

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

    嵌入式LINUX操作系统.pdf

    嵌入式 LINUX 操作系统的可移植性非常强,可以快速移植到新的微处理器体系结构中。在移植过程中,需要对内核代码进行修改,以适应新的目标板和外设。 嵌入式 LINUX 操作系统的内存使用包括: 1. 内核和应用程序...

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

    这篇论文详细介绍了ARM9上的嵌入式Linux系统移植,很有参考价值。

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

    嵌入式Linux系统开发流程包括硬件电路设计、操作系统移植、应用程序开发等几个方面。硬件电路设计包括控制模块内部电路及译码电路的设计;操作系统移植包括基于Proteus的操作系统移植和驱动程序设计;应用程序开发...

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

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

    基于S3C2440的嵌入式Linux系统移植 (1).pdf

    基于S3C2440的嵌入式Linux系统移植是指在S3C2440处理器平台上构建Linux系统的过程和方法。 该过程可以分为四个步骤:交叉编译环境的搭建、BootLoader引导程序及移植、Linux内核的配置编译及移植、根文件系统的制作...

    嵌入式linux系统移植试题---答案.doc

    嵌入式linux系统移植试题有答案

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

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

    嵌入式Linux系统移植开发-(1)基于Yocto构建嵌入式u-boot,内核,文件系统.pdf

    Yocto是什么?...使嵌入式Linux系统移植告别了以前通过源码一步步移植的刀耕火种年代。Yocto解决了嵌入式Linux行业内各自为政的乱象,它为芯片厂家,操作系统,和设备厂商之间的协作提供广泛一致的行业支持。

    深度实践嵌入式linux系统移植资源文件

    范展源出版的深度实践嵌入式linux系统移植一书中涉及到的所有资源文件。

    嵌入式LINUX系统中触摸屏控制研究与实现.pdf

    在嵌入式系统的开发中,嵌入式软件是实现备种系统功能的关键,而嵌入式操作系统则是嵌入式系统的灵魂,它的大大提高了嵌入式系统开发的效率,并且有利于软件的可移植性。 Linux操作系统是一个开源的操作系统,它的...

Global site tag (gtag.js) - Google Analytics