mini2440 HUAWEI E261 WCDMA 驅動,usbmodeswitch,ppp移植

1.環境及軟件版本:
電腦:Ubuntu 10.04
開發板:micro2440 256M
3G模塊:華爲E261 WCDMA 12d1:1446
Linux內核版本:3.11
usblib:libusb-1.0.0
usbcompat:libusb-compat-0.1.5
usbmodeswitch:usb-modeswitch-1.2.6
usb-modeswitch-data:usb-modeswitch-data-20140327
2. 內核
make menuconfig
2.1 內核添加支持USB驅動
DeviceDrivers-->
[*]USBsupport-->
<*>USB SerialConverter support-->
[*]USBGeneric Serial Driver
<*>USBdriver for GSM and CDMA modems
2.2 內核添加支持PPP協議
DeviceDrivers-->
Network devicesupport-->
<*>PPP(point-to-point protocol) support
[*]PPPmultilinksupport
<*>PPPsupport for async serial ports
<*>PPP support for sync tty ports
<*>PPP Deflate compression
<*>PPPBSD-Compress compression

然後make
3. usb_modeswitch移植
3.1 編譯usblib
下載libusb-1.0.0.tar.bz2,谷歌搜索下載。
解壓libusb-1.0.0.tar.bz2
(1)cd  .../libusb-1.0.0/
(2)./configure --build=i686-linux --host=arm-linux --prefix=/home/jxm/ppp/usblib/install –disable-udev
(3)make
(4)make install
之後在/home/jxm/ppp/usblib/install文件下生成include和lib文件夾
3.2 編譯usbcompat
下載libusb-compat-0.1.5.tar.bz2,谷歌搜索下載。
解壓libusb-compat-0.1.5.tar.bz2
(1)cd .../libusb-compat-0.1.5
(2)export PKG_CONFIG_PATH=/home/jxm/ppp/usblib/install/lib/pkgconfig:$PKG_CONFIG_PATH
(3)./configure --build=i686-linux --host=arm-linux --prefix=/home/jxm/ppp/usblib/install –disable-udev
(4)make
(5)make install
3.3 編譯usb_modeswitch
下載usb-modeswitch-1.2.6.tar.bz2,谷歌搜索下載。
解壓usb-modeswitch-1.2.6.tar.bz2
(1)cd .../usb-modeswitch-1.2.6
(2)vim Makefile
修改:
CC          = arm-linux-gcc
$(PROG): $(OBJS) usb_modeswitch.h

    $(CC) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS) -I /home/jxm/ppp/usblib/install/include -L /home/jxm/ppp/usblib/install/lib
(3)make
然後會生成可執行文件usb_modeswitch
3.4 usbmodeswitchdata
下載usb-modeswitch-data-20140327.tar.bz2,谷歌搜索下載。
(1)cd .../usb_modeswitch.d/
(2)vim 12d1:1446
修改爲:
DefaultVendor= 0x12d1
DefaultProduct= 0x1446
TargetProductList="1001,1406,140b,140c,1412,141b,1432,1433,1436,14ac,1506,150c,1511"
MessageContent="55534243123456780000000000000011062000000101000100000000000000"
3.5 拷貝文件
(1)將/home/jxm/ppp/usblib/install/lib 下的libusb.so,libusb-0.1.so.4,libusb-0.1.so.4.4.4下載到開發板的/lib文件下
(2)將usb_modeswitch文件下載到開發板的/usr/sbin/下
(3)將12d1:1446文件拷貝到/etc/usb_modeswitch.d/文件夾下
3.6 執行
usb_modeswitch -c /etc/usb_modeswitch.d/12d1:1446
執行完之後去看/dev下是否已經有ttyUSB0,ttyUSB1,ttyUSB2
4. ppp移植
ppp 移植主要包括 pppd和chat
4.1 編譯pppd和chat
(1)cd .../ppp-2.4.4
(2)./configure
(3)make CC=arm-linux-gcc
(4)在pppd文件夾和chat文件夾中使用命令arm-linux-strip-S pppd 和 arm-linux-strip-S chat 這樣會較大地減小這兩個文件的大小
(5)將pppd和chat下載到開發板/usr/sbin/目錄下
4.2 配置文件
(1)wcdma文件
debug
nodetach
/dev/ttyUSB0
115200
usepeerdns
noauth
noipdefault
novj
novjccomp
noccp
defaultroute
ipcp-accept-local
ipcp-accept-remote
connect '/usr/sbin/chat -s -v -f/etc/ppp/peers/chat-wcdma-connect'
disconnect '/usr/sbin/chat -s -v-f/etc/ppp/peers/chat-wcdma-disconnect'
(2)chat-wcdma-connect文件
TIMEOUT 5
ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT 'NODIALTONE'
ABORT 'BUSY'
ABORT 'NO ANSWER'
'' \rAT
OK \rATZ
OK\rAT+CGDCONT=1,"IP","3GNET",,0,0
OK-AT-OK ATDT*99#
CONNECT \d\c
(3)chat-wcdma-disconnect文件
BORT "ERROR"
ABORT "NO DIALTONE"
SAY "\NSending break to themodem\n"
""\k"
""+++ATH"
SAY "\nGood bay\n"
將這三個文件下載到/etc/ppp/peers目錄下
4.3 執行
執行pppdcall wcdma &
會打印出信息其中最後面會有 DNS的信息:

primary DNS adress10.11.12.13
secondeary DNSadress 10.11.12.13.14

vi/etc/resolc.conf,加入內容:
nameserver10.11.12.13
nameserver10.11.12.14

然後ping www.baidu.com或是ping-I ppp0 www.baidu.com
看是否能ping通,如果出現卡住的情況,就試一試pingIP號,而不是ping域名,因爲有可能是DNS配置的問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章