linux下使用3G撥號上網 以及3g驅動設置


http://blog.csdn.net/haomcu/article/details/7285891

linux下要實現3G撥號上網,除了3G網卡和對應的3G卡外,軟件上需要對應的網卡驅動和pppd撥號程序,pppd撥號程序一般較容易得到,如果是嵌入式平台,交叉編譯即可,編譯過程中可能會遇到一些錯誤,但都不是大問題,一般很容易解決。而3G網卡驅動對於剛接觸的人來說可能稍微難一點,大部分的3G模塊內核中已經得到支持。如果不幸內核中沒有得到支持,那么自己添加支持也是很容易的。下面介紹兩種驅動3G網卡的方法。

linux內核中USB-GSM模塊的驅動主要是drivers/usb/serial/options.c文件。看了此文件會非常明了,對一個3G網卡的支持主要就是兩個參數,一個是廠商ID,一個是設備ID,只要3G網卡可以被USB識別,那么我們很容易得到這個USB設備的設備ID和廠商ID,得到之后,我們把這兩個參數添加進option.c文件重新編譯得到option.ko,那么這個3G網卡一般就能正常工作了。

第二種方法是使用usb-modeswitch來是3G網卡正常工作。這種方法我沒有實際使用過,下面是從網上看到的一篇文章,可以作位參考。原文章地址為點擊打開鏈接

 

我的3G上網卡是華為 E1750,操作系統是openSUSE 11.2,之前只能在虛擬機運行的Windows里上3G,感覺這樣實在不方便,於是想到了直接在Linux里連接3G網絡。
1. software
http://www.draisberghof.de/usb_modeswitch/

usb-modeswitch

usb-modeswitch-data
libusb

2. install

安裝軟件
root# tar jxvf usb-modeswitch-1.1.3.tar.bz2
root# cd usb-modeswitch-1.1.3/
root# make install

root# tar jxvf usb-modeswitch-data-20100707.tar.bz2

root# cd usb-modeswitch-data-20100707/
root# make install

then upgrade libusb to the lastest version.
root# cp /usr/share/doc/packages/ppp/scripts/pon /usr/local/sbin
root# cp /usr/share/doc/packages/ppp/scripts/poff /usr/local/sbin
root# chmod ug+x /usr/local/sbin/pon /usr/local/sbin/poff

接下來,接上3G上網卡,可以看到 lsusb 輸出的結果多了"USB Modem"字樣。

root# lsusb
...
Bus 002 Device 010: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
...
3. configure
建立3個PPP配置文件。
root# cat /etc/ppp/peers/wcdma
nodetach
lock
/dev/gsmmodem
115200
user "card"
password "card"
crtscts
show-password
usepeerdns
noauth
noipdefault
novj
novjccomp
noccp
defaultroute
ipcp-accept-local
ipcp-accept-remote
connect '/usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect'
disconnect '/usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect'

root# cat /etc/ppp/peers/wcdma-chat-connect

ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT 'NO DIALTONE'
ABORT 'BUSY'
ABORT 'NO ANSWER'
'' \rAT
OK \rATZ
OK \rAT+CGDCONT=1,"IP","3gnet",,0,0
OK-AT-OK ATDT*99#
CONNECT \d\c
root# cat /etc/ppp/peers/wcdma-chat-disconnect
ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\nSending break to the modem\n"
'' "\K"
'' "+++ATH"
SAY "\nGoodbay\n"
4. connect
拔號連接
root# pppd call wcdma &
......
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/gsmmodem
CHAP authentication succeeded
CHAP authentication succeeded
Could not determine remote IP address: defaulting to 10.64.64.64
not replacing default route to eth0 [10.217.15.1]
local  IP address 172.27.25.133
remote IP address 10.64.64.64
primary   DNS address 202.106.195.68
secondary DNS address 202.106.46.151
Script /etc/ppp/ip-up finished (pid 10543), status = 0x0
手工添加DNS
root# echo "nameserver 202.106.46.151" >> /etc/resolv.conf
手工指定默認網關
root# route add default gw 172.27.25.133
測試網絡是否可用
root# ping -c 5 www.sina.com.cn
PING libra.sina.com.cn (202.108.33.80) 56(84) bytes of data.
64 bytes from 202.108.33.80: icmp_seq=1 ttl=56 time=39.6 ms
64 bytes from 202.108.33.80: icmp_seq=2 ttl=56 time=48.3 ms
64 bytes from 202.108.33.80: icmp_seq=3 ttl=56 time=46.8 ms
64 bytes from 202.108.33.80: icmp_seq=4 ttl=56 time=44.6 ms
64 bytes from 202.108.33.80: icmp_seq=5 ttl=56 time=44.1 ms
--- libra.sina.com.cn ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 39.670/44.739/48.330/2.957 ms
5. disconnect
root# poff

 

 

 

http://zhuairlunjj.blog.163.com/blog/static/80050945201241401319722/

中興WCDMA模塊 Linux撥號流程 

 

2012-05-14 00:13:19|  分類: linux內核編程之 |  標簽: |字號訂閱

 

 

 

 

 

中興WCDMA模塊 Linux撥號流程

Version 1.0

 

目錄

1. 測試准備……………………………………………………..…3

2. 撥號腳本………………………………………………………13

3. 撥號過程………………………………………………………16

 

 

 

 

 

 

 

 

1. 測試准備

 

本文檔測試模塊:MF210(中興WCDMA模塊)

中興WCDMA模塊MF200 / MF205 / MF206 / MF210V / AD3812 / MG3732類似

本文檔測試系統:Ubuntu 10.10

因在Linux下無法確認功能端口號,所以只能借助Windows下來查看功能端口號。本公司已經將所有中興3G模塊的VID、PID和端口號歸類成冊,具體請參閱本公司文檔《中興3G模塊Linux下ID和端口號說明V1.0》。

 

1.1 確認3G模塊的VID、PID和各個端口的功能

 

把裝有3G模塊的Demo板插到PC的USB端口上,裝好驅動Windows端驅動。點擊 我的電腦 -> 屬性(R)-> 硬件 -> 設備管理器(D),如圖1-1所示:

 

圖1-1 3G模塊USB映射的端口

 

圖注:

ZTE Proprietary USB Modem #4: USB Modem 撥號端口

ZTE Diagnostics Interface (COM46):調試診斷口

ZTE NMEA Device (COM47):AT命令口

ZTE VoUSB Device (COM5):USB語音口

 

上面的USB映射的4個端口中,想要知道其在Linux下面對應的端口號,右鍵某一端口號 -> 屬性(R) -> 詳細信息。

 

進入USB Modem口的屬性,點擊 詳細信息 即可看到此模塊的VID、PID和USB Modem口對應的端口號為3(即在Linux下面為ttyUSB3),如圖1-2所示:

 

圖1-2 3G模塊VID、PID和USB Modem端口號

 

進入Diagnostics Interface口的屬性,點擊 詳細信息 即可看到此模塊的VID、PID和Diagnostics Interface口對應的端口號為0(即在Linux下面為ttyUSB0),如圖1-3所示:

 

圖1-3 3G模塊VID、PID和Diagnostics Interface端口號

 

進入NMEA Device口的屬性,點擊 詳細信息 即可看到此模塊的VID、PID和NMEA Device口對應的端口號為1(即在Linux下面為ttyUSB1),如圖1-4所示:

 

圖1-4 3G模塊VID、PID和NMEA Device端口號

 

進入VoUSB Device口的屬性,點擊 詳細信息 即可看到此模塊的VID、PID和VoUSB Device口對應的端口號為2(即在Linux下面為ttyUSB2),如圖1-5所示:

 

圖1-5 3G模塊VID、PID和VoUSB Device端口號

 

1.2 Linux下查看VID和PID號

 

把demo板插上PC的USB端口,開啟終端,輸入 lsusb 即可,如圖1-6所示:

 

圖1-6 ubuntu10.10下查看3G模塊的VID和PID

 

上圖中反顯的一行:

BUS 001 Device 005:ID 19D2:0117 ONDA Communication S.p.A

其中:

VID: 19d2 (中興所有模塊的VID均為0x19d2)

PID: 2003

 

查看映射的端口號:

 

ls /dev/ttyUSB*

 

如果沒有發現ttyUSB*任何設備,說明內核還不支持本模塊,如圖1-7所示:

 

圖1-7 3G模塊未被內核支持的情況

 

解決方法:加載此模塊的VID和PID即可。VID 和 PID 可以用 lsusb 查看。加載支持命令如下:

 

modprobe usbserial vendor=0x19d2 product=PID

 

注:此處的PID因模塊不同而不同。VID中興統一為0x19d2。

如圖1-8所示:

 

圖1-8 加載此模塊的VID和PID號

 

此時使用命令 ls /dev/ttyUSB* 即可列出端口號。如圖1-9所示:

 

圖1-9 3G模塊USB映射的端口號

 

其中: 由Windows 2k / Xp / Vista / 7可知

ttyUSB0 : 診斷端口

ttyUSB1 : AT指令端口

ttyUSB2 : VoUSB端口(語音)

ttyUSB3 : Modem端口

 

1.3 AT指令測試

 

1.3.1 Minicom安裝

將下載的文件解壓到當前目錄,tar zxvf minicom-2.4.tar.gz

進入cd minicom-2.4,執行./configure

執行命令make

執行命令make install

上述過程參見解壓后的README

 

1.3.2 Minicom配置(需要root用戶角色)

執行minicom –s后出現配置界面

==========================

[configuration]

Filename and paths

File transfer and protocols

Serial port setup

Modem and dialing

Screen and keyboard

Save setup as df1

Save setup as……

Exit

Exit from minicom

==========================

使用向下鍵選擇serial port setup(串口設置),按回車出現設置界面

==========================

A — Serial Device: /dev/ttyUSB1

B — lockfile Location : /var/lock

C — Calling Program :

D — Callout Program:

E — Bps/par/Bits: 115200 8N1

F — Hardware Flow Control : NO

G — Software Flow Control : NO

Change with setting?

===========================

按A,設置串口設備為/dev/ttyUSB1 (AT指令端口,因模塊而異)

按E:設置為115200 (模塊波特率為自適應,推薦值115200)

按F:設置Hardware Flow Control : NO (無硬件流控)

按回車,保存設定,回到主菜單,可以選擇Save setup as df1 (設為默認配置)。

設置完成后選擇Exit退出

 

1.3.3 Minicom使用

直接輸入minicom,就可以像使用Windows的超級終端一樣操作了。

另外在進入minicom后可以通過CTRL+A打開幫助,按Z彈出所有幫助菜單。

其中Q和X可以退出minicom返回shell。

 

關於測試模塊AT命令的串口設置如圖1-10所示:

 

圖1-10 minicom設置

 

AT指令測試過程如圖1-11所示:

 

圖1-11 AT指令測試過程

 

2. 測試腳本

 

2.1 腳本建立

Root權限進入Ubuntu,在 /etc/ppp/ 下面建立兩個目錄,如果有就不需要建立了。直接把腳本放進去或者建立新文件即可。

cd /etc/ppp

mkdir peers chat

cd peers

touch wcdma-mf210

vim wcdma-mf210

在wcdma-mf210里填寫腳本如下:

 

#******************************************************************#

# /etc/ppp/peers/wcdma-mf210 #

# this is ppp script for use chinaunicom's WCDMA data service #

# #

# Hangzhou Visure Electronics Technology Co., Ltd #

# Room 606, Zijingang business Building, #656 Gudun Road, Hangzhou #

# TEL: 0571-81021669 #

# FAX: 0571-81021670 #

# More information: manuals, hardware and software on: #

# www.visure.com.cn #

#******************************************************************#

 

/dev/ttyUSB3

115200

crtscts

connect '/usr/sbin/chat -v -f /etc/ppp/chat/wcdma-connect-chat'

debug

nodetach

ipcp-accept-local

ipcp-accept-remote

defaultroute

usepeerdns

 

# end of wcdma-mf210

 

如圖2-1所示:

 

圖2-1 3G模塊撥號腳本

 

 

cd chat

touch wcdma-connect-chat

vim wcdma-connect-chat

在wcdma-connect-chat里填寫如下:

 

#******************************************************************#

# /etc/ppp/chat/wcdma-connect-chat #

# this is the chat script for unicom #

# #

# Hangzhou Visure Electronics Technology Co., Ltd #

# Room 606, Zijingang business Building, #656 Gudun Road, Hangzhou #

# TEL: 0571-81021669 #

# FAX: 0571-81021670 #

# More information: manuals, hardware and software on: #

# www.visure.com.cn #

# *****************************************************************#

 

ABORT "NO CARRIER"

ABORT "NO DIALTONE"

ABORT "ERROR"

ABORT "NO ANSWER"

ABORT "BUSY"

TIMEOUT 120

"" AT

OK "AT+CGDCONT=1,\"IP\",\"3GNET\""

OK ATD*99#

CONNECT

 

# end of wcdma-connect-chat

 

如圖2-2 所示:

 

圖2-2 3G模塊chat腳本

 

 

3 撥號過程

 

在終端輸入 pppd call wcdma-mf210 按Enter(回車)即可。如圖3-1所示:

 

圖3-1 3G模塊撥號命令

 

PPP協商過程如圖3-2所示:

 

圖3-2 PPP協商過程

 

測試撥號成功與否,在終端里(需要另開一終端!!!)打入 ifconfig,查看是否有ppp0連接,如圖3-3所示:

 

圖3-3 查看網絡連接

 

4 撥號成功后,設置域名服務器

cd /etc

vim resolv.conf

 

/etc/resolv.conf文件是存放域名服務器地址的地方,它的內容看起來是這樣的:

-------------------------------------------

domain your.isp.domain.name

nameserver 202.96.171.92

nameserver 202.96.171.133

-------------------------------------------

你所需做的就是把你的ISP的域名服務器地址填到這個文件里。DNS是撥號以后自動

分配的,從圖3-2 ppp協商過程中最后幾行可以得到DNS, 因所在地方而異,在我這里設置為:

 

nameserver 211.136.17.108

nameserver 211.136.20.204

 

設置為如圖3-4所示:

 

圖3-4 設置DNS

 

ping 命令測試,此命令需要設置DNS。請確認在 /etc/resolv.conf 里已經正確設置DNS。

 

圖3-5 ping 命令測試

 

 

 

 

2012-02-27 15:40

 

Linux -> 嵌入式Linux下3G無線上網卡的驅動

 

http://hi.baidu.com/liuhelishuang/item/30e17f0b53422de8359902ac

嵌入式Linux下3G無線上網卡的驅動http://blog.chinaunix.net/uid-20759926-id-2437253.html

環境:硬件:合眾達DVS365開發板,芯片DaVinci DM365.電信華為EC189的3G無線上網卡。軟件:TI定制的嵌入式arm-linux,內核版本2.6.18.簡介:由於3G無線上網卡工作模式相同,故其移植也大多雷同,故本次開發同樣適用於其他嵌入式開發板,如DM6446,ARM等等。同樣,也適用於其他聯通、移動或電信的3G上網卡,尤其是華為的上網卡,如最常用的華為E160, E160G, E169, E180, E230, E270(+), E280, E630, E870, E1550, E1612, E1662, E1690, E1692, E1750, E1752, EC168C, K3765, K4505, K4605, MTE WM610, R201, K4605, K3765, K4505。中興的ZTE MF620,MF622等等等等。其他支持的上網卡型號參見:http://www.draisberghof.de/usb_modeswitch/建議:現在PC機上安裝usb_modeswitch和libusb,首先確保PC上的linux能夠順利撥號,再將其移植到開發板上。內核:需要有以下模塊:option usbserial usbstorage主要是要在編譯內核的時候選中Device Drivers=====USB Support======USB Serial Converter Support=========USB Serial Converter Support(選中)=========USB Generic Serial Driver否則軟件pppd執行的時候可能會失敗。#make modules //編譯外掛模塊#make modules_install //安裝模塊模塊編譯完后應將其復制到開發板上,並執行以下命令,否則會報找不到modules.dep#/sbin/depmod –a //創建模塊的鏈接軟件3個:libusb、usb_modeswitch、pppd(含chat)和1個數據包(純文本):usb-modeswitch-datalibusb源碼下載:http://sourceforge.net/projects/libusb/files/libusb-1.0/usb_modeswitcch下載:http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data:http://www.draisberghof.de/usb_modeswitch/ 這個數據包包含了usb_modeswitch所有支持的3G上網卡的配置文件,對於本次開發,取出其中文件名為12d1:1446的文本文件即可。基本步驟:1.在開發板上USB口插入3G上網卡,注意DVS365開發板要短接J1 2和3管腳才啟用USB host模式,否則USB不供電。2.在開發板上輸入lsusb會出現以下結果,說明開發板與3G上網卡硬件物理上連接成功,記下12d1:1446這個數字,后邊用。:~# lsusbBus 004 Device 002: ID 12d1:1446 HUAWEI XXXX(省略若干)3.在主機上交叉編譯usb_modeswitch,因為其要使用libusb,故也要交叉編譯libusb。(見后文)4.將主機交叉編譯產生的usb_modeswitch單文件、lib文件夾、12d1:1446文件復制到開發板/home目錄下上。5.執行usb_modeswitch將3G上網卡U盤模式轉換為modem模式 -c 12d1\:1446 屏幕會顯示一堆模式轉換信息,之后會顯示成功 6.檢查是否轉換成功,執行lsusb,發現1446變為1001,表示轉換成功。 # lsusb Bus 004 Device 002: ID 12d1:1001 HUAWEI XXXX(省略若干)7.硬件問題都解決了,開始撥號吧:(電信的撥號腳本,聯通、移動的應該會變化,請google)# pppd connect 'chat -v "" "AT" "OK" "ATZ" "OK" "ATDT#777 CONNECT"' user card password card /dev/ttyUSB0 115200 nodetach noauth nocrtscts modem noipdefault debug usepeerdns defaultroute ipcp-accept-local noccp屏幕會顯示撥號信息,成功獲取到的IP和DNS 8.另外啟動一個shell,執行 # route del default add default dev ppp0 嘗試ping 8.8.8.8,應該就通了。 注意:如果為其他3G上網卡,只需要將相應的配置文件復制到板子上。如本例為12d1:1446.基本步驟第3步交叉編譯過程:A.交叉編譯Libusb解壓並進入libusb目錄,建立子目錄install用於存放最后生存的庫文件與頭文件。[root@libusb-0.1.12]# mkdir install配置並生成Makefile文件[root@libusb-0.1.12]# ./configure --build=i686-linux --host=arm-linux --prefix=/home/libusb-0.1.12/install[root@libusb-0.1.12]# make[root@libusb-0.1.12]# make install此時install目錄下應有LIB了B.交叉編譯usb_modeswitch(1)、修改Makefile文件 CC = arm_v5t_le-gcc(2)、將libusb里的庫頭文件拷到交叉編譯器的include和lib目錄下,或者直接在Makefile文件里直接加上編譯選項指令庫的路徑即可如下:$(PROG):&(OBJS)&(CC) –o $(PROG) &(OBJS) &(CFLAGS) –I /home/libusb-0.1.12/install/include –L /home/libusb-0.1.12/install/lib(3)、make此時應產生usb_modeswitch單文件了將Lib和usb_modeswitch按照基本步驟第四步復制到開發板上。OVER。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM