arm linux上的第一个应用程序 BOA移植
1. 首先, linux在开发板上能跑起来了.
包括网络驱动也有了, ifconfig之后, 能看到在rcS里面设置的IP, 也能ping通windows主机了, 当然, 也要window关掉防火墙才行.
2. 在windows上起一个tftp, 后来发现这样是不行的, 因为每个包都要反复打包, 有点累, 还是用虚拟机开nfs比较靠谱, 但是我虚拟机不靠谱, 老是不走有线网卡, 主动跑去无线去了.
3. busybo的tftp命令有点屌, 格式是:
tftp -g -l localFileName -r remoteFileName x.x.x.x
4. 然后下载boa, 修改boa.c文件
注释掉下面这段代码:
if (passwdbuf == NULL) {
DIE(”getpwuid”);
}
if(initgroups(passwdbuf->pw_name, passwdbuf->pw_gid) == -1) {
DIE(”initgroups”);
} //注释掉, 用#if 0 #endif
5. 在example的文件夹找到boa.conf配置文件, 略加修改
a. 将ServerName字段注释掉, 避免一个servername get不到的错误.
b. 将User/UserGroup 都改成0
c. 找到文档的根目录, 比如/var/www, 日志目录, 记下来
6. 在开发板上建立/var/log/boa 目录用来放错误日志之类, 然后建立/var/www来存放网站根目录
7. 回到ubuntu, 对boa的编译环境做个修改, 让他用交叉编译
src/Makefile
CC = arm-linux-gcc
CPP = arm-linux-gcc -E
先用.configure, 然后make
辨已完成之后, 直接把src文件夹打包
tar cvf src.tar src/
不要压缩, 压缩的话, 在开发板上的busybox打不开, 或者是我没找到到方法把..总之直接打包.
8. 最后用tftp把这个tar放到/var/boa/下面, 再把boa.conf文件也拷贝到/var/boa/下面, 然后直接运行src/boa就可以去错误日志的地方看看哪里有没有什么问题了. 没问题的日志是:
[01/Jan/1970:01:29:20 +0000] caught SIGTERM, starting shutdown
[01/Jan/1970:01:29:20 +0000] exiting Boa normally (uptime 99 seconds)
[01/Jan/1970:00:02:03 +0000] boa: server version Boa/0.94.14rc21
[01/Jan/1970:00:02:03 +0000] boa: server built Jan 9 2017 at 18:01:02.
[01/Jan/1970:00:02:03 +0000] boa: starting server pid=780, port 80
这样的.
没问题的话, 试试建一个index.html的文件在www根目录下面, windows能访问, 表示boa成功移植了.
PS, 增加一个mime.types文件, 直接把这个文件从ubuntu上面tftp到开发板就行了. 在etc下面.
参考文档:
http://blog.csdn.net/xdw1985829/article/details/6672742
arm linux上的第一个应用程序 BOA移植的更多相关文章
- Linux上设置开机启动Java程序
在Linux上设置开机启动Java程序,例如:test.jar 在Linux上启动Java程序的命令: nohup java -jar test.jar >/dev/>& & ...
- 在 Linux 上找出并解决程序错误的主要方法【转】
转自:https://www.ibm.com/developerworks/cn/linux/sdk/l-debug/index.html 本文讨论了四种调试 Linux 程序的情况.在第 1 种情况 ...
- 提高 Linux 上 socket 性能 加速网络应用程序的 4 种方法
使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信.与其他 API 一样,您可以通过一些方法使用 Soc ...
- Boa服务器在ARM+Linux上的移植
下面给大家介绍一下Boa服务器移植的具体操作步骤,希望能够有帮助. 环境 主机:ubuntu8.10 交叉工具链:gcc-3.4.5-glibc-2.3.6 ...
- 在SAP云平台ABAP编程环境上编写第一段ABAP程序
距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP's Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今 ...
- 在64位的linux上运行32位的程序
1.症状 (1)执行bin文件时提示:No such file or directory (2)ldd bin文件 的输出为: not a dynamic executable (3)file bi ...
- linux上chrome、vlc等程序root不能运行的解决办法
which vlc 或者 whereis vlc 输入/geteuid,输入i进入输入模式,将geteuid改成getppid,然后ESC,输入wq,保存退出,这样程序root用户就可以运行了. ch ...
- 直播 linux上的第一个c++程序
这里用crt来直播吧: 登录到服务器上之后: 1.mkdir -p 建一个文件夹 2.ll 查看一下这个文件夹 3.cd 进入这个文件夹 4.vim 进行文本编辑 写完之后,按下esc中止输入模式,用 ...
- 009-2010网络最热的 嵌入式学习|ARM|Linux|wince|ucos|经典资料与实例分析
前段时间做了一个关于ARM9 2440资料的汇总帖,很高兴看到21ic和CSDN等论坛朋友们的支持和鼓励.当年学单片机的时候datasheet和学习资料基本都是在论坛上找到的,也遇到很多好心的高手朋友 ...
随机推荐
- HDOJ(HDU) 2090 算菜价(简单水题、)
Problem Description 妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐.现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵. Input ...
- STL_iterator迭代器(3)——函数和函数对象
STL中,函数被称为算法,也就是说它们和标准C库函数相比,它们更为通用.STL算法通过重载operator()函数实现为模板类或模板函数.这些类用于创建函数对象,对容器中的数据进行各种各样的操作.下面 ...
- HDU_1401——分步双向BFS,八进制位运算压缩,map存放hash
Problem Description Solitaire is a game played on a chessboard 8x8. The rows and columns of the ches ...
- Java学习日记-5 关键字static和final 以及接口
乱入:表达式中的自动类型转换 char,short,byte都升级为int类型进行运算,结果为int,但其原变量类型并不改变. 所以,byte b = 10; b = b*b; 编译时会报错.但是写 ...
- HDU 3016 Man Down (线段树+dp)
HDU 3016 Man Down (线段树+dp) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- python小技巧
有的时候用一个全新的模块,对其属性和方法,用法并不太了解 这时你可以这样做: 1.dir([name]),如dir(int),会显示int的所有属性和方法
- Asp.Net Webapi路由基本设置
1.直接在Global.asax中添加配置 如: using MvcApplication4.App_Start; using System; using System.Collections.Gen ...
- jQuery(二)
jQuery学完了!好用! 1.用定时器做的jquery里面的animate效果 <!DOCTYPE html> <html lang="en"> < ...
- iOS 跑马灯 之 TXScrollLabelView
前言 前段时间在开发一个广播的功能,网上也自己找了一些库,没有发现非常好用的,于是自己抽时间写了一个,在 Github 上发布一天收获六十多个 star,这里首先感谢大家在微博上的转发,使得 TXSc ...
- SKCropNode类
继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode) NSCopying(SKNode) NSObject(NSObject) 框架 /System/ ...