wvdial移植ARM平台

来源:互联网 发布:电子班牌发布系统源码 编辑:程序博客网 时间:2024/05/22 10:15

一、工具及源码版本

交叉编译工具链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.ccwvtask.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.6build/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


原创粉丝点击