本文主要记录在linux平台下,交叉编译wifidog并在openwrt平台上运行的过程。主要是针对wifidog源码被修改后,
不得不亲自进行交叉编译移植的时候,所碰到的一些问题。
(1)下载源码
这个可以到wifidog官方下载。
(2)交叉编译环境
这个需要提前准备好,也不多说了
(3)解压,并进入代码目录
运行./autogen.sh
可能会报错:libtoolize: command not found
这个需要安装一下依赖的工具包:apt-get install libtool
(4)然后执行./configure
./configure --host=mips-openwrt-linux --prefix=$PWD/install
host参数指定的是目的平台,一般情况下,设定了host之后,makefile中的编译器会自动调整为host平台的编译器
prefix参数是指执行make install 之后,程序安装的路径。安装在源代码目录的install文件夹内,是为了不污染主机的环境。
(5)然后把install目录中的文件,都拷贝到目的平台(我这里是openwrt)
但是暂时是无法启动wifidog的,因为还没有配置文件。可以在源代码目录找到,拷贝到目标平台的 /etc/wifidog.conf
具体的配置,请自行google
(6)这里提一点,如果是可以直接安装wifiedog的,就直接在线安装吧,不要折腾。
我是不得不修改wifidog 的源码,增加接口,才自行交叉编译的。
如果像我情况一样的话,建议先在线安装wifidog,然后交叉编译完之后把原来安装的wifidog替换掉就好了。这样子可以省了一些写启动脚本之类的工作。
(7)当然,移植过程中还会遇到其它问题,例如
Reading configuration file '/home/mint/workspace/my-wifidog/wifidog-gateway/install/etc/wifidog.conf'
Could not open configuration file '/home/mint/workspace/my-wifidog/wifidog-gateway/install/etc/wifidog.conf'
这里报错是因为,默认把安装路径install下面的/etc作为默认配置文件的目录。需要在wifidog启动的时候指定一下。
在openwrt平台上,wifidog启动的脚本是/usr/bin/wifidog-init
在option那里增加一个 参数 ” -c /etc/wifidog.conf “