当前位置:网站首页>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共享目录下
太难了,点个赞吧!
边栏推荐
猜你喜欢
随机推荐
mib browser无法接收snmp trap消息解决
3. What is the difference between final, finally, and finalize?
贴片电阻的结构是怎样的?唯样商城
二分查找5 - 第一个错误的版本
VCC(电源)和 GND(地)之间电容的作用
数组与字符串10-实现 strStr()
window下VS2022封装动态库以及调用动态库
AI智能剪辑,仅需2秒一键提取精彩片段
二分查找6 - 寻找峰值
double型数据转字符串后通过MCU串口发送
【面筋1】一些没什么标准答案的问题
./autogen.sh: 4: ./autogen.sh: autoreconf: not found
Practice of MySql's Sql statement (try how many you can write)
数组与字符串9-翻转字符串里的单词
3D游戏建模师在国内的真实现状,想转行,先来看看!
ue4学习日记3(设置操控角色,地形)
Eight, the difference between the interface of the abstract class
BurpSuite 进阶玩法
ZEMAX | 如何围绕空间中的任何点旋转任何元素
window下VS2022封装静态库以及调用静态库