Linux · 2010-11-09

UBUNTU编译出能运行在DD-WRT、Tomato下的软件

我的系统环境:vista

在虚拟机virtualbox中安装ubuntu

1.装好ubuntu,安装增强工具

2.在ubuntu的用户目录下建立以下几个文件夹cross、tools、source。

tools:放置交叉编译工具 source:存放源代码

3.到DD-WRT的官方网站下载交叉编译工具toolchains.x86.debian.sp1.tar.bz2

4.将toolchains.x86.debian.sp1.tar.bz2中的4.1.0-uclibc-0.9.28,解压缩到tools目录,并改名为dd

这个交叉编译工具编译出的程序可在tomato和dd-wrt下正常运行

5.安装一些所需要的工具

sudo apt-get install bison flex build-essential patch libncurses5-dev

6. 到这个时候准备工作就基本完成了

每次新打开终端,使用前请运行

export PATH=”$PATH:/home/jacky/tools/dd/bin” (请根据实际情况修改路径)

1.下载libpcap源码http://www.tcpdump.org/release/

(我用的是0.9.8,因为这个版本编译出来的libpcap.a比较小254KB)

2.将其解压缩到cross目录

3.进入libpcap目录,cd /home/jacky/cross/libpcap-0.9.8

4.运行命令 export PATH=”$PATH:/home/jacky/tools/dd/bin

5.运行命令 export ac_cv_linux_vers=2.6

6.运行命令 ./configure –host=mipsel-linux-uclibc –prefix=/home/jacky/tools/dd –with-pcap=linux

(–host=HOST 指定软件运行的系统平台,configure –host=mipsel-linux-uclibc这个就是mipsel的交叉编译选项。

prefix是你要安装的位置,这里我把libpcap安装到交叉编译工具所在目录)

7.运行命令 make

8.运行命令 make install

………………………….

红色字体部分,请按实际情况修改路径

通常交叉编译开源软件一般只需以下几步即可编译

1 export PATH=”$PATH:/home/jacky/tools/dd/bin

2 ./configure –host=mipsel-linux

3 make

…………………………………………………………………

针对tomato对xclient进行的小修改

xclient源码中,使用了pkill、dhclient命令,但是tomato中并没有这两个命令,

所以用killall替代pkill,用dhcpc-renew替代dhclient。

通常在tomato中客户端是设置成开机自动运行的,我们难以知道客户端运行情况。

所以我想了一个折中的方法,把拨号时的提示信息输出到日志文件中。

tomato中有个logger命令,可以用他把信息输入到日志文件中,

如运行logger hello,可在tomato日志中发现信息user.notice root: hello

具体修改如图所示

………………………………………………………………….

相关文章:

http://felix021.com/blog/read.php?1467

http://www.right.com.cn/forum/viewthread.php?tid=22853&extra=page%3D1&page=1

http://groups.google.com/group/njit8021xclient

http://gforge.osdn.net.cn/projects/njit8021xclient/

http://hi.baidu.com/syshall/blog/item/d75d89182368904243a9adda.html