Chinaunix首页 | 论坛 | 博客
  • 博客访问: 261065
  • 博文数量: 65
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-29 21:49
个人简介

Flowers_World

文章分类

全部博文(65)

文章存档

2017年(7)

2016年(38)

2015年(14)

2014年(6)

我的朋友

分类: 嵌入式

2014-11-30 20:51:30

一:开发环境

    主机开发环境:                                                                     VMWARE 下安装的 UBUNTU 10.04
     gcc编译器:                                                                            ubuntu自带的,version 4.4.3
    开发板:                                                                                  ATMEL AT91SAM10  
   交叉编译器                                                                              arm-linux-gcc version 4.4.3
二:移植步骤
参考资料:http://blog.chinaunix.net/uid-21143149-id-1830088.html
编译Apache总体上需要两个步骤:
1.编译本机代码(PC版本)
2.利用本机代码进行交叉编译(ARM版本)
这是因为在编译Apache时,交叉编译工具没法在本地运行,因此需要本地编译生成的工具

  上下载 apache1.3.39 源码
       PC 版本 GCC 编译 
1.      /opt/webserver/pc目录下解压: tar zxvf apache1.3.39.tar.gz,然后切换到root用户模式:sudo su,方便后续操作。

2.      进入到 /opt/webserver/pc /apache1.3.39/src目录下执行 ./Configure 命令(大写C),生成Makefile文件。

3.       返回到  /opt/webserver/pc /apache1.3.39目录下,执行 ./configure命令(小写c),生成Makefile文件。

4.       然后 make一下。在主机上不需要make install.因为交叉编译的时候,只需要用到主机编译的在 ../src/main 目录下生成的两个可执行文件。gen_test_char  gen_uri_delims.

在本机编译中经遇到一个问题,configure时会报出以下错误而暂停。

Configuring for Apache, Version 1.3.39
+ Warning: Your ‘echo’ command is slightly broken.
+ It interprets escape sequences per default. We already
+ tried ‘echo -E’ but had no real success. If errors occur
+ please set the SEO variable in ‘configure’ manually to
+ the required ‘echo’ options, i.e. those which force your
+ ‘echo’ to not interpret escape sequences per default.
+ using installation path layout: Apache (config.layout)
Creating Makefile
Creating Configuration.apaci in src
Syntax error — The configuration file is used only to
define the list of included modules or to set Makefile in src
options or Configure rules, and I don’t see that at all:
`$(SRCDIR)/apaci`
default
default
no
no
no
yes
no
default
no
default
default
这是由于某些shell脚本文件使用了错误的interpreter,使用下面的命令就可以解决。

# rm -f /bin/sh
# ln -s /bin/bash /bin/sh



ARM版本用交叉编译环境编译:


1.       需要重新建立一个目录,如在/opt/webserver/arm目录下。然后通过 cp 命令把软件包拷贝到该目录下,解压 tar zxvf apache1.3.39.tar.gz

2.       进入到 /opt/webserver/arm/apache1.3.39/src/目录下,执行:export CC=arm-linux-gcc,目的是更新环境变量(前提是以安装好交叉编译器,可以通过命令arm-linux-gcc -v查看是否安装好交叉编译环境),之后在该目录下执行  ./Configure 生成Makefile文件。

3.       把在主机上用gcc编译过的生成的(/opt/webserver/pc /apache1.3.39/src /main目录下)  两个可执行文件gen_test_char  gen_uri_delims. 覆盖arm-linux-gcc编译过的,在目录

/opt/webserver/arm /src/main下的两个文件。

  • 将/opt/webserver/arm/apache1.3.39/src/main/Makefile做如下修改:
    uri_delims.h: gen_uri_delims
    # ./gen_uri_delims >uri_delims.h
     /opt/webserver/pc/apache1.3.39/src/main/gen_uri_delims >uri_delims.h
    test_char.h: gen_test_char
    # ./gen_test_char >test_char.h
     /opt/webserver/pc/apache1.3.39/src/main/gen_test_char >test_char.h

4.       /opt/webserver /arm/apach1.3.39目录下,执行:export CC=arm-linux-gcc然后 ./configure 一下,生成Makefile文件

5.       之后就是用make 命令编译整个文件,之后就是用命令make install 安装此服务器了。最后提示你

  +--------------------------------------------------------+

| You now have successfully built and installed the      |

| Apache 1.3 HTTP server. To verify that Apache actually |

| works correctly you now should first check the         |

| (initially created or preserved) configuration files   |

|                                                        |

|   /usr/local/apache/conf/httpd.conf

|                                                        |

| and then you should be able to immediately fire up     |

| Apache the first time by running:                      |

|                                                        |

|   /usr/local/apache/bin/apachectl start

|                                                        |

| Thanks for using Apache.       The Apache Group        |

|                                |

+--------------------------------------------------------+

服务安装成功。可能在执行安装的时候,你的权限不够,得用根用户,在ubuntu下,用sudo命令获得根用户权限就行了。因为此服务程序安装在/usr/local目录下的。

6.       把在 /usr/local/下生成的目录 apache拷贝到你的开发板根文件系统的 …/usr/local/ 目录下。

7.   修改配置http.conf文件。在…/usr/local/apache/conf/ 目录下,用文本编辑器打开。

还有注意的是,apache拒绝使用root用户运行。所以你需要增加一个用户和用户组,我们可以使用 http.conf配置文件默认的用户名和用户组名,nobodynobody。具体来说就是在ARM Linux根文件系统上建立/etc/passwd/etc/group两个文件,它们的内容可以如下:

 

/etc/passwd

 

root::0:0:root:/:/bin/ash

nobody::65534:65533:nobody:/:/bin/ash

 

/etc/group

 

nobody::65533:

nogroup::65534:nobody

root::0:

users::100

如果rootfs中有这两个文件,那么就只需要检查一下是不是有nobody用户和nogroup组。

   关于http.conf的配置见其最后。

8.配置完之后, httpd 应用程序 拷贝到 /usr/sbin 文件夹下并 设置其为 开机自启动。 /etc/init.d/rc 文件 最后 添加 命令 httpd

      重新制作并烧写 文件系统。

制作文件系统命令:mkfs.jffs2 -l -s 0x800 -e 0x20000 -p 0x4000000 -d mtd/ -o fs-image-apache-glibc-at91.rootfs.jffs2

       重启开发板。

然后你就可以在你的浏览器下面输入你的开发板 IP地址,这样你就可以看见一个测试网页了。




阅读(1554) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Latex背景图片

给主人留下些什么吧!~~