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

时间: 2024-10-16 15:14:52

arm linux上的第一个应用程序 BOA移植的相关文章

直播 linux上的第一个c++程序

这里用crt来直播吧: 登录到服务器上之后: 1.mkdir -p 建一个文件夹 2.ll 查看一下这个文件夹 3.cd 进入这个文件夹 4.vim 进行文本编辑 写完之后,按下esc中止输入模式,用:wq强制保存并退出. 使用g++编译生成可运行的first文件,然后运行它,最终输出 hello word!

学习ARM+Linux的很好的资料(转)

前段时间做了一个关于ARM9 2440资料的汇总帖,很高兴看到***和CSDN等论坛朋友们的支持和鼓励.当年学单片机的时候datasheet和学习资料基本都是在论坛上找到的,也遇到很多好心的高手朋友,耐心的回答我提出的问题.感激.图报,很简单的想法.希望这次整理的资料帖能对更多的嵌入式爱好者朋友带来帮助! PS:    在此特别感谢 古道热肠 版主把我的帖子加精,给小弟极大鼓舞! 嵌入式入门篇: 什么是嵌入式系统                         http://www.helloa

Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台

转发请注明此文章作者与路径,请尊重原著,违者必究. 本篇文章操作系统信息 Linux:ubuntu 16.04.3 amd64 查看NetCore支持的Linux系统 NetCore不是支持Linux的所有系统,只支持部分,所以在Linux上安装NetCore之前要查看系统与版本是否支持NetCore. 查看NetCore2.0以上各个版本在Linux支持的系统及版本: https://github.com/dotnet/core/blob/master/release-notes/2.0/2.

linux中安装wine运行windows程序

http://blog.csdn.net/pipisorry/article/details/41653361 Wine的介绍 Wine是Wine Is Not an Emulator(Wine不是模拟器)的缩写,其实是一个转换层(或程序装入器),能够在Linux及与POSIX兼容的其他类似操作系统上运行Windows应用程序.Wine在Linux上无法模拟Windows应用程序,而是提供了另外的方法来实施DLL(典型的Windows应用程序可以调用这些DLL)和代替Windows NT内核的进

Linux上安装MySQL5.6

OS & MySQL的版本和配置: MySQL Version: 5.6.19 Linux Version: Linux boston.oracle.com 2.6.18-164.el5 #1 SMP Thu Sep 3 02:16:47 EDT 2009 i686 i686 i386 GNU/Linux 一,下载MySQL安装软件,请到www.oracle.com   去找DATABASE DOWNLOAD,下载MySQL需要注册一个账号.我下载的版本如下: 下载后解压就是以下的8个文件 :

arm linux 启动之一:汇编启动到start_kernel

描述arm linux启动的概要过程,以S5PV210(Cortex A8)为例,本文描述第一个阶段. 一.arm linux的引导 uboot在引导arm linux(uImage镜像)到SDRAM之后,通过bootm命令对uImage镜像的64个字节头进行解释,获取linux的entry入口地址,并赋值给theKernel函数指针(一般该值是0x30008000),并将uboot的环境变量参数(如平台的内存块区域信息.linux启动命令信息bootargs等)按linux要求的tags形式放

如何利用mono把.net windows service程序迁移到linux上

How to migrate a .NET Windows Service application to Linux using mono? 写在最前:之所以用要把windows程序迁移到Linux上,主要是由于一些成本问题,这个就不多解释了. 如何把之前用.net写的windows服务程序迁移到linux上运行.答案是有很多种的,今天我只提一下mono(我只实验了mono,呵呵). 如何在Linux部署mono,并成功的运行.net程序,还请大家多多查询吧,我在这方面也只是搭建成功了,遇到的问

linux程序设计——第一个线程程序(第十二章)

第12章    POSIX线程 在第11章中,介绍了如何在linux中处理进程.但有时人们认为,用fork调用来创建新进程的代价太高.在这种情况下,如果能让一个进程同时做两件事情或者至少看起来是这样会非常有用,而且,人们页希望能有两件或更多的事情以一种非常紧密的方式同时发生,这就需要线程发挥作用了. 12.1    什么是线程 在一个程序中多个执行路线就叫做线程(thread).更准确的定义是:线程是一个进程内部的一个控制序列.虽然linux和许多其他的操作系统一样,都擅长同时运行多个进程,但迄

[转]提高 Linux 上 socket 性能,加速网络应用程序的 4 种方法

原文链接:http://www.ibm.com/developerworks/cn/linux/l-hisock.html 使用 Sockets API,我们可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过 Internet 在全球范围内进行通信.与其他 API 一样,您可以通过一些方法使用 Sockets API,从而提高 Socket 的性能,或者限制 Socket 的性能.本文探索了 4 种使用 Sockets API 来获取应用程序的最大性能并对 GNU/Linu