当前位置:网站首页>BOA服务器移植之嵌入式开发板(FS4412)
BOA服务器移植之嵌入式开发板(FS4412)
2022-08-03 05:26:00 【当然是菜包啦】
前言
续前面boa移植链接: boa服务器移植,在这基础之上,更改编译方式,使其boa服务器能够在开发板上运行,然后能够在电脑上访问服务器。
BOA服务器在开发板(fs4412)的移植过程
- 查看交叉编译器的类型,并查看选中的工具链,我这里用的是gcc-4.6.4版本
[email protected]:~$ cd /home/linux/fs4412/toolchain/gcc-4.6.4/bin
[email protected]:~/fs4412/toolchain/gcc-4.6.4/bin$ ls
2. 指定交叉编译工具链
[email protected]:~$ cd boa-0.94.13/src/
[email protected]:~/boa-0.94.13/src$ vi Makefile
将Makefile中的指定编译器改为
# CC = gcc
CC = arm-none-linux-gnueabi-gcc
- 删除原来编译的文件,重新编译
[email protected]:~/boa-0.94.13/src$ make clean
[email protected]:~/boa-0.94.13/src$ make
- 将编译生成的文件拷贝到之前的boa文件夹下,查看拷贝文件的属性是支持在ARM平台下运行的文件
[email protected]:~/boa-0.94.13/src$ cp boa /home/linux/boa/
[email protected]:~/boa-0.94.13/src$ cp boa_indexer /home/linux/boa/
[email protected]:~/boa-0.94.13/src$ file boa
boa: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.38, not stripped
[email protected]:~/boa-0.94.13/src$ file boa_indexer
boa_indexer: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.38, not stripped
- 将boa/cgi-bin/目录下test.c重新编译
[email protected]:~/boa/cgi-bin$ arm-none-linux-gnueabi-gcc -o test.cgi test.c
[email protected]:~/boa/cgi-bin$ file test.cgi
test.cgi: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.38, not stripped
[email protected]:~/boa/cgi-bin$
- 将整个/boa目录复制到,nfs共享跟目录下面
[email protected]:~$ sudo cp -rf boa/ /opt/4412/rootfs/
- 测试,在电脑(ubuntu)中浏览器进行访问
出现了这样的一个错误,/home/linux/boa这个目录在开发板上找不到,所以我们需要查看这个boa在开发板的目录,更改某个头文件路径和配置文件。
[email protected]:~/boa-0.94.13/src$ vi defines.h +30
将
#define SERVER_ROOT "/home/linux/boa"
改为:
#define SERVER_ROOT "/boa"
将配置文件boa.conf也修改
然后删除原来编译的文件重新编译,重新拷贝文件过去
[email protected]:~/boa-0.94.13/src$ make clean
[email protected]:~/boa-0.94.13/src$ make
[email protected]:~/boa-0.94.13/src$ sudo cp boa /opt/4412/rootfs/boa/
[email protected]:~/boa-0.94.13/src$ sudo cp boa_indexer /opt/4412/rootfs/boa/
重新执行
在电脑(ubuntu)上访问开发板的网址
在点跳转的时候出现了一个错误
查看log下的日志文件显示以下信息:
[01/Jan/1970:00:00:53 +0000] boa.c:211 - getpwuid: No such file or directory
解决办法:将boa.c中的drop_privs函数以下几行注释掉
#if 0
if (passwdbuf == NULL) {
DIE("getpwuid");
}
if (initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE("initgroups");
}
#endif
然后重新编译拷贝boa文件到nfs共享目录下
太难了,点个赞吧!
边栏推荐
猜你喜欢
随机推荐
什么是参数化设计,通过实操了解一下? | SOLIDWORKS 操作视频
使用ZBrush制作恶魔模型
什么是国密SSL协议?国密证书与传统SSL证书有什么区别?
go test执行多个文件夹下相同目录的用例
What is parametric design, let's understand it through practical operation?| SOLIDWORKS How-To Videos
电子元器件和电子元件的区别有那些?
PCB设计经验之模拟电路和数字电路区别为何那么大
ZEMAX | 如何使用ZOS-API创建自定义操作数
数组与字符串13-两数之和等于目标数
802.1AS 时钟同步原理理解
电子元器件之电子变压器可分为哪几类?
ZEMAX | 在设计抬头显示器(HUD)时需要使用哪些工具?
802.1AS的SystemIdentity理解
【3D建模制作技巧分享】ZBrush快捷键如何设置
001_旭日X3派初探:开箱测试
ue4入门学习笔记1(操作界面)
二分查找1-实现一个二分查找
守望先锋英雄角色模型分享,obj文件+材质贴图,3dmax游戏建模
数组与字符串9-翻转字符串里的单词
【记录】把json的所有key转换成小写