OK6410的Boa服务器移植:
<一> Boa的编译
1. 从 www.boa.org 下载 Boa 服务器的最新版:boa-0.94.13.tar.gz。
2. 解压:tar xzf boa-0.94.13.tar.gz
3. 进入解压后的文件夹 boa-0.94.13内部的 src文件夹,对源文件进行如下修改
1 由于arm-linux-gcc 编译器版本过高,对语法的支持有一些改变,所以需要修改compat.h中的
2 #define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
3 为:
4
5 #define TIMEZONE_OFFSET(foo) foo->tm_gmtoff
6 不然在编译的时候会提示如下错误:
7 util.c: 100: 1: pasting “t” and “->” does not give a valid preprocessing token make: [util.o] Error1
1 将boa.c 文件225-227三行的文件注释掉
2 if (setuid(0) != -1) {
3 DIE(”icky Linux kernel bug!”);
4 }
5 为
6 /*
7 if (setuid(0) != -1) {
8 DIE(”icky Linux kernel bug!”);
9 }
10 */
11
12 ,否则,但以root权限启动boa服务器的时候,会出现以下错误:boa.c:226 - icky Linux kernel bug!:
4. 然后生成Makefile:./configure
5. 修改生成的Makefile:默认生成的Makefile针对x86平台,我们的目标是针对嵌入式平台,所以需要修改编译器.
1 更改Makefile的31行和32行:
2 CC = gcc
3 CPP = gcc -E
4 更改为
5 CC = arm-linux-gcc
6 CPP = arm-linux-gcc -E
6. 在当前目录下编译Boa源文件: make
7. 将生成好的boa可执行文件去掉冗余信息: arm-linux-strip boa. 如下图为strip 前后boa的大小对比。
<二> 将Boa移植到OK6410中
1. 修改boa.conf配置文件:
1 (1) 修改25行的port端口,用来设置服务器监听的端口:
2 # Port: The port Boa runs on. The default port for http servers is 80.
3 # If it is less than 1024, the server must be started as root.
4
5 Port 80
6 (2) 注释43行的监听IP地址:默认监听该主机上的所有IP地址
7 #Listen 192.68.0.5
8 (3) 修改53、54行的user和Group 启动的UID和GID,使其以root身份启动
9 # User: The name or UID the server should run as.
10 # Group: The group name or GID the server should run as.
11
12 User root
13 Group root
14 (4) 修改116行的DocumentRoot地址,即客户端要显示的HTML页面存放位置
15 # DocumentRoot: The root directory of the HTML documents.
16 # Comment out to disable server non user files.
17
18 DocumentRoot /usr/local/boa
19 (5) 修改输入网页输入主机IP时要显示的页面:这里设为index.html
20 # DirectoryIndex: Name of the file to use as a pre-written HTML
21 # directory index. Please MAKE AND USE THESE FILES. On the
22 # fly creation of directory indexes can be _slow_.
23 # Comment out to always use DirectoryMaker
24
25 DirectoryIndex index.html
26 (6) 修改CGI程序存放的位置:以http://IP/cgi-bin/cginame 的方式运行cgi 程序时将在/usr/local/boa/cgi-bin 目录下寻找该程序
27 # ScriptAlias: Maps a virtual path to a directory for serving scripts
28 # Example: ScriptAlias /htbin/ /www/htbin/
29
30 ScriptAlias /cgi-bin/ /usr/local/boa/cgi-bin/
2. 将配置文件boa.conf 移动到OK6410的 /etc/boa/ 目录下。
3. 创建/var/log/boa/ 目录,这样Boa服务器启动时会在该目录下创建日志文件。
4. 将Linux系统上/etc/mime.types 文件复制到OK6410的/etc 目录下,否则Boa服务器启动不起来。
5. 将生成的boa文件移植到嵌入式板中的/sbin目录下并更改脚本文件 /etc/init.d/rcS, 新增一行: /sbin/boa ,确保boa服务器随系统上电自启动。
这里一定要注意:有时候boa服务器并不能随系统启动,运行 /sbin/boa 命令会提示:
gethostbyname:: Success
这种情况下要修改boa.conf 文件
将
#ServerName www.your.org.here
改为
ServerName www.your.org.here
即去掉注释即可
<三> 测试Boa服务器:
1. 静态页面测试:
1
2
3
4
5
6
7
8
9
Welcome to Boa sever!
10
11
2. CGI 程序测试:
1 #include 2 int main() 3 { 4 printf('Content-type: text/htmlnn'); 5 printf('n'); 6 printf(' 7 printf(' 8 printf('n'); 9 10 printf(' 11 printf(' 12 printf(''); 13 printf('n'); 14 return 0; 15 } 至此,Boa服务器移植完成。 Hello, world.
');
上一篇:飞凌开发板:S3C6410 之裸机程序烧写
下一篇:ARM 中 LDR伪指令
推荐阅读最新更新时间:2024-11-08 11:54
设计资源 培训 开发板 精华推荐
- 【征集令】双色温高显色WIFI台灯 ESP8266
- LED手电锂电板-V1.0.0
- IS31IO7328-QFLS4-EB,基于IS31IO7328多功能I/O驱动器的评估板
- 12V DC 至 DC 单路输出电源
- 鸿蒙智能WiFi开关+4245586A
- 使用 Analog Devices 的 LTC4162IUFD-FADM 的参考设计
- 用于工业控制的 ±15V 仪表放大器
- ADP2147CB-170EVALZ,800 mA、3 MHz 降压稳压器评估板
- 使用 Analog Devices 的 LTC2946IDE-1 的参考设计
- 2021大学生电子设计竞赛D题省二作品(基于互联网的摄像测量系统)
- MM32F103开发板测评等你来
- 智能云锁哪家强?TI市场和技术大咖邀你1月16日10:00直播间畅聊
- 填问卷,解锁赢好礼!看泰克MDO4000C如何进行电源分析!
- 直播已结束【英飞凌全新Wi-Fi6单芯片SoC助力物联网产品的快速开发】(9:30入场)
- 有奖直播:人机互动介面和机器视觉应用上的最佳助手--瑞萨电子 RZ/G, RZ/A 和 RZ/V SoC系列
- 有奖直播|保护嵌入式设备与系统的完整性和可靠性——英飞凌 OPTIGA™ TPM 安全解决方案
- 【免费试用】DFRobot micro:bit编程小车-麦昆
- EEWORLD E金矿荣耀登场!为梦想加分!
- 带上速度与激情,晒出你的TI WEBENCH 得意之作!
- 泰克多媒体总线系列专题之三 《USB3.1接口测试》下载有礼