一、工具及源码版本
交叉编译工具链arm-none-linux-gnueabi
wvdial 版本 1.61
wvstreams 版本 4.6.1
openssl 版本 1.0.1c
zlib 版本 1.2.7
二、准备环境
1、准备交叉编译工具链arm-none-linux-gnueabi
tar -xzvf toolchain.tgz
cp -R toolchain//opt/
exportPATH=$PATH:/opt/toolchain/CodeSourcery/Sourcery_G++_Lite/bin
2、准备源码文件
wvdial/(这个文件夹的位置稍后会用到,用WVDIAL_PATH表示)
source/
wvdial-1.61.tar.gz
wvstreams-4.6.1.tar.gz
openssl-1.0.1c.tar.gz
zlib-1.2.7.tar.gz
build/
3、进入wvdial/source解压文件
tar -xzvf zlib-1.2.7.tar.gz
tar -xzvf openssl-1.0.1c.tar.gz
tar -xzvf wvstreams-4.6.1.tar.gz
tar -xzvf wvdial-1.61.tar.gz
三、编译zlib
cd zlib-1.2.7
添加环境变量
exportCC=arm-none-linux-gnueabi-gcc
设置
./configure--prefix=$PWD/../../build/zlib
修改Makefile
AR=arm-none-linux-gnueabi-ar
RANLIB=arm-none-linux-gnueabi-ranlib
编译输出
make & makeinstall
四、编译openssl
cd openssl-1.0.1c
设置
./config--prefix=$PWD/../../build/openssl os/compiler:arm-none-linux-gnueabi
修改Makefile
AR=arm-none-linux-gnueabi-ar $(ARFLAGS) r
RANLIB=arm-none-linux-gnueabi-ranlib
NM=arm-none-linux-gnueabi-nm
编译输出
make & makeinstall
五、编译wvsteams
cd wvstreams-4.6.1
添加环境变量
exportPKG_CONFIG_PATH=$PWD/../../build/zlib/lib/pkgconfig
修改configure
将两处with_zlib=no改为with_zlib=yes
将两处with_openssl=no改为with_openssl=yes
修改crypto/wvx509.cc
1160行X509V3_EXT_METHOD*method = X509V3_EXT_get(ext);
改为X509V3_EXT_METHOD*method = (X509V3_EXT_METHOD*)X509V3_EXT_get(ext);
设置
./configure--host=arm-none-linux-gnueabi --prefix=$PWD/../../build/wvstreams--with-zlib=$PWD/../../build/zlib --with-openssl=$PWD/../../build/openssl--without-dbus --with-pam=no --with-tcl=no --with-qt=no
修改wvrule.mk
CFLAGS=-IWVDIAL_PATH/build/openssl/include -IWVDIAL_PATH/build/zlib/include
CPPFLAGS=-IWVDIAL_PATH/build/openssl/include -IWVDIAL_PATH/build/zlib/include
CXXFLAGS=-IWVDIAL_PATH/build/openssl/include -IWVDIAL_PATH/build/zlib/include
LDFLAGS=-LWVDIAL_PATH/build/openssl/lib -LWVDIAL_PATH/build/zlib/lib -Wl,--rpath-link,WVDIAL_PATH/build/zlib/lib
替换wvtask.cc和wvtask.h(附件给出替换文件)
wvtask.h在include目录下
wvtask.cc在utils目录下
相对于源文件的修改已在文件中标出
编译输出
make & makeinstall
六、编译wvdial
添加环境变量
exportPKG_CONFIG_PATH=$PWD/../../build/wvstreams/lib/pkgconfig
设置
./configure--prefix=$PWD/../../build/wvdial
修改Makefile
prefix= WVDIAL_PATH/build/wvstreams
WVSTREAMS_INC=$(prefix)/include
WVSTREAMS_LIB=$(prefix)/lib
WVSTREAMS_BIN=$(prefix)/bin
CPPFLAGS+=$(PC_CFLAGS)
CPPFLAGS+=-I WVDIAL_PATH/build/wvstreams/include/wvstreams
CPPFLAGS+=-I WVDIAL_PATH/build/zlib/include
CPPFLAGS+=-I WVDIAL_PATH/build/openssl/include
LIBS+= -L WVDIAL_PATH/build/wvstreams/lib-lwvutils -lwvstreams -lwvbase –lz
LIBS+= -L WVDIAL_PATH/build/zlib/lib
LIBS+= -L WVDIAL_PATH/build/openssl/lib
PPPDIR=${prefix}/etc/ppp/peers
添加到MakeFile
CC = arm-none-linux-gnueabi-g++
CXX =arm-none-linux-gnueabi-g++
编译
make
七、整理程序及所需库文件
/bin
wvdial 在source/wvdial下
wvdialconf 在source/wvdial下
c_rehash 在build/openssl/bin下
uni 在build/wvstreams/bin下
wvtestrun 在build/wvstreams/bin下
/lib
libuniconf.so 在build/wvstreams/lib下
libuniconf.so.4.6 在build/wvstreams/lib下
libwvbase.so 在build/wvstreams/lib下
libwvbase.so.4.6 在build/wvstreams/lib下
libwvstreams.so 在build/wvstreams/lib下
libwvstreams.so.4.6 在build/wvstreams/lib下(!!这个库连接不对会读写不到配置文件)
libwvutils.so 在build/wvstreams/lib下
libwvutils.so.4.6 在build/wvstreams/lib下
libz.so 在build/zlib/lib下
libz.so.1 在build/zlib/lib下
libz.so.1.2.7 在build/zlib/lib下
valgrind/ 在build/wvstreams/lib下
pkgconfig/ 在build/zlib/lib下
在build/openssl/lib下
在build/wvstreams/lib下
/sbin
uniconfd 在build/wvstreams/sbin下
/etc
uniconf.conf 在build/wvstreams/etc下
ppp/ 附件给出(!!这个文件夹不正确会出现pppd错误码2)
八、测试用配置
--------test.conf--------
[Dialer Defaults]
Phone = *99#
APN = 3gnet
Username = CARD
Password = CARD
Stupid Mode = 1
Dial Command = ATDT
Modem = /dev/ttyUSB0
Baud = 9600
Init1 = ATZ
Init2 = ATQ0 V1 E1S0=0 &C1 &D2 +FCLASS=0
Init3 =
Init4 =
ISDN = 0
Modem Type = AnalogModem
Auto Reconnect = off
[Dialer CARD5]
Phone = *99#
APN = 3gnet
Username = CARD
password = CARD
Init3 = AT+CGDCONT=1,"ip","3gnet","0.0.0.0",0,0
Modem = /dev/ttyUSB2
执行代码
Wvdial程序文件位置/wvdial–C test.conf CARD5
附修改文件和源码下载:
wvdial
http://wvstreams.googlecode.com/files/wvdial-1.61.tar.gz
wvstreams
http://wvstreams.googlecode.com/files/wvstreams-4.6.1.tar.gz
openssl
http://www.openssl.org/source/openssl-1.0.1c.tar.gz
zlib
http://zlib.net/zlib-1.2.7.tar.gz
修改增补文件
http://download.csdn.net/detail/nobeljz/4983753