|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
% Z6 g, Y: I! @0 _, x0 F. p4 H/ [2 a; b
一、Gobinet/QMI-WWAN/PPP拨号概述
/ a2 d* p% N. T; i' Y1. Gobinet拨号; O$ r( r b' L+ v& `2 i
& D+ U. f5 L+ {, d0 O5 c
GOBI 高通Gobi无线宽带芯片技术,只需一个模块即可支持多种移动宽带网络和众多移动运营商。高通公司称全新的芯片将基于Gobi 4G LTE无线基带、MDM9615和MDM9215。这种技术可以在FDD和TDD网络下进行LTE连接,同时支持HSPA+和EV-DO网络、2G/3G网络。这意味着用户可以在本地使用高速4G LTE网络,在其他地方使用3G网络。Gobi平台在MDM芯片组的基础上还提供了软件增强层,这样可以使用不同技术下的无线连接更简单。
$ W/ @+ k8 l2 d! C
- r( }4 k$ ] c2 P* C2. QMI-WWAN协议拨号
& C8 u$ h0 {! w/ x
+ X7 P4 c+ Q' VQMI: Qualcom Message InteRFace4 n) v) P, q# y4 ^8 k
' O D( d. S3 i7 \. N; ~7 n
MSM: Mobile station mode2 b; [& J8 g: V$ `& A
- r& u% b: |% W" s
AP: Application Procesor" Y3 H: {& v d* P7 }+ M# E6 @7 q
. g" @) N- c5 c) ~$ x
高通平台目前都是非对称多核心,最主要的是AP和Modem。两个处理器怎么进行通信呢,我们把AP和Modem当作两个主机,问题就变得了很简单,TCP/IP协议不是一种非常成功的进程间跨主机通信方式。高通没有采用这种方式,但是借鉴了TCP/IP的框架设计。& \% `3 `3 @0 L, F( ?
; ^6 g3 {% `8 t3 JQualcomm MSM Interface,作用用于AP和BP侧的交互,通俗说法就是让设备终端TE(可以是手机,PDA,计算机)
* E3 z* t: _; j- I1 }7 a D3 f X5 c: \# ^. s: `! r
对高通BP侧的AMSS系统进行操作,如调用函数,读取数据,设置其中的NV项等。- d" H+ X2 }9 R5 b# c m% Z Z
; G* M4 A, g! B0 T) S9 E3.PPP协议拨号:点对点协议
! b0 p' z) `* ?3 G7 \" r$ k. A9 K+ [$ O7 V& A2 O
PPP(点到点协议)在拨号过程中用于MS和PC间数据交互、协商。在拨号流程的初期首先开启的就是PC和MS直接的PPP过程,在拨号成功后,还需要依靠PPP协议对IP包进行封装传输数据。/ e# ~' m* x9 u: z! r* J
" T3 x, B8 s1 f2 A) f' w, L
官网源码:https://ppp.samba.org) U/ I0 Z8 M, x, ~# k4 j1 ^
, `9 w# O* h% Y, Y" W9 E9 G
二 、驱动检查
) V5 I* a J4 b) {' r! W* f' ~& q2 Z# l1 l
4 v: J, H4 {3 L
+ k6 i* y! \8 |" [2 r, \) }/ V首先检查是否有USB设备信息。- l0 N- a9 l! l
; c# ~* }# h6 i7 G# Y) \3 C
7 |' v* t/ Y' f0 P } w
) z6 D* o. E2 V: j& g$ T8 V, s
[backcolor=rgba(18, 18, 18, 0.5)]
' W" a! F# n4 n# D0 o7 f% F0 A+ t& o3 o, F6 u: X( v8 o3 A5 J1 S/ G
I* ]* t, g0 \6 R- p+ Z* a/ v
7 w- ~. o! B( Y* c b' o
, e' j7 i' S$ S$ S$ ]$ o2 m编辑切换为居中* X& k' o+ ?# D1 _9 C" _
, n3 d v9 p' p+ D4 o& @9 f
. D0 @/ y) h, @6 O) `; U) E- q: `/ Q7 |% Y1 U* I8 o( t% v% [
- n3 ^; x( q) W9 R
/ C( {) t: F0 l& r4 N
# c6 q, m+ w; S1 l, g
k; Q; q+ u2 s6 Q# C8 D. D+ x4 i6 f D' i
& e9 W- {: U+ y' R+ U然后在dev目录下查看设备。. [( u" E( ^, @" c
, m% s3 A9 c- |& j1 C$ X: ?
! X& A, r- z& H6 E B, c1 [4 i
( `1 L ]$ `/ f6 x, E; L
9 ?( [5 H& B5 u3 ^7 K [backcolor=rgba(18, 18, 18, 0.5)]4 ?9 G* k2 R; N( W+ f$ l F
1 m9 l8 ? I, \( s
: C$ h) e( ]1 A: D1 q. f
1 w, a, O7 `8 h/ X
; u9 W+ }! C7 w# S3 l$ ?( h编辑切换为居中
, O4 g% e/ v$ c4 A& O x' X7 V/ v
: }: X1 ~( I5 `! V9 O0 P
4 r( A6 b" h& h" s0 l9 E
0 F7 B* g ?$ ]# d o; G. _3 T
1 f$ _* Q. i+ r/ y4 `# p
7 u* J3 P* q: I1 s/ \+ W* O
- p" `# A* r ^! x, P1 K: x5 Q; E- |' u. f
1 W! q& n3 b+ ?5 k, e) c. b, ]另外在dev下还有一个qcqmi0。
) v) q4 X! E* L+ _' f6 }7 v+ T O* _, B& P* D3 N7 b6 c
4 ~/ d3 Y3 z8 R# @$ ]- z2 x% P7 A# y& ]! J6 o1 C4 B$ m
/ y) ^7 E$ N) t2 E: o [backcolor=rgba(18, 18, 18, 0.5)]' c$ E# K7 ?" k* W7 {( [4 _
9 g$ g9 x9 c W# B) q: B, R
1 k/ e" w( Q& `+ y
- w* l4 c: x% O/ }- S# D) J, O* U7 N/ F
编辑切换为居中. q/ m( s2 D3 K4 B, G! j
, l; Y! J9 y6 U2 j7 S
1 C7 N# V# `$ z9 V( W6 E x! N% E. |
6 s* ?4 @/ ^. c! b
! r1 a& y! A5 x; y( ^* t( h# _
; w# L( R/ X/ u! C5 X) ^
0 U$ A& y4 y* q4 `9 H7 L6 a q* m/ d. |3 [6 A' X) ^7 v
+ X% `, `. T" P! b- C# q4 D
说明驱动已经集成了GobiNet。
" J0 G/ X2 ]2 S1 `5 q# G; N. L/ w' s& r( M4 {! d3 T0 y, c" `
三、拨号上网
, ]# _& b0 ?9 E5 S4 i9 K拨号程序使用移远提供的quectel-CM,这是一个4G连接管理程序,交叉编译后得到可执行bin“quectel-CM”,将quectel-CM下的Makefile文件修改成如下,然后 make
" `( U7 ?3 H0 F$ @9 ~
a$ _- E( r- ]; `: I K3 UCC:= aarch64-linux-gnu-gcc
0 m$ {" r) o$ j! K9 H
) T1 R7 N0 ^1 _; T* S( J- w+ y [backcolor=rgba(18, 18, 18, 0.5)]
- R8 Z4 K# w0 m( `( [& h. Z* o4 c5 n, n L
- x" A% X% _) X9 Y! t! |4 E
; _7 I9 s/ \" B8 k/ _
: k* y! }% c8 v编辑切换为居中
/ l9 r- M: Z/ g" J1 R$ ?0 |" b; F$ j2 N8 M+ z, _/ Z; P v
9 G) R4 I" T% _) h0 U2 b
; S" S0 c" T5 [3 R5 P. ?- B8 U0 w; t2 N
: D; ~. y& o; x5 P* |
8 j$ R9 T4 k1 Z; \" D把这个bin放到OK3588-C开发板上启动后上述一、二驱动没有问题的情况下直接执行该bin就可以。将quectel-CM可执行程序拷贝到OK3588-C开发板中。) R1 N5 \( d4 u5 q$ S* x
0 j" T4 N# R0 E' A- |【注】移动是[cmnet],电信是[ctnet]。
$ T3 j O$ v" W5 p; h) L$ d1 P
4 p# e$ ~5 h N+ g8 H$ ./quectel-CM -s ctnet &root@ok3588:~# [03-16_23:36:36:353] WCDMA<E_QConnectManager_Linux&Android_V1.1.34[03-16_23:36:36:356] ./quectel-CM profile[1] = ctnet///0, pincode = (null)[03-16_23:36:36:364] Find /sys/bus/usb/devices/1-1 idVendor=2c7c idProduct=0125[03-16_23:36:36:370] Find /sys/bus/usb/devices/1-1:1.4/net/usb0[03-16_23:36:36:375] Find usbnet_adapter = usb0[03-16_23:36:36:380] Find /sys/bus/usb/devices/1-1:1.4/GobiQMI/qcqmi0[03-16_23:36:36:386] Find qmichannel = /dev/qcqmi0[03-16_23:36:36:454] Get clientWDS = 7[03-16_23:36:36:486] Get clientDMS = 8[03-16_23:36:36:518] Get clientNAS = 9[03-16_23:36:36:550] Get clientUIM = 10[03-16_23:36:36:583] Get clientWDA = 11[03-16_23:36:36:614] requestBaseBandVersion EC20CEFAGR06A08M4G[03-16_23:36:36:710] requestGetSIMStatus SIMStatus: SIM_READY[03-16_23:36:36:710] requestSetProfile[1] ctnet///0[03-16_23:36:36:774] requestGetProfile[1] ctnet///0[03-16_23:36:36:806] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW[03-16_23:36:36:837] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED[03-16_23:36:36:902] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW[03-16_23:36:40:870] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW[03-16_23:36:41:958] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW[03-16_23:36:42:118] requestRegistrationState2 MCC: 0, MNC: 0, PS: Attached, DataCap: 1XEVDO_REVB[03-16_23:36:42:182] requestRegistrationState2 MCC: 0, MNC: 0, PS: Attached, DataCap: 1XEVDO_REVB[03-16_23:36:42:214] requestSetupDataCall QMUXResult = 0x1, QMUXError = 0xe[03-16_23:36:44:166] requestRegistrationState2 MCC: 460, MNC: 11, PS: Detached, DataCap: UNKNOW[03-16_23:36:45:158] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE[03-16_23:36:45:222] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE[03-16_23:36:45:285] requestSetupDataCall WdsConnectionIPv4Handle: 0x871aef60[03-16_23:36:45:382] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE[03-16_23:36:45:413] requestQueryDataCall IPv4ConnectionStatus: CONNECTED[03-16_23:36:45:478] ifconfig usb0 up[03-16_23:36:45:496] Fail to access /usr/share/udhcpc/default.script, errno: 2 (No such file or directory)[03-16_23:36:45:500] busybox udhcpc -f -n -q -t 5 -i usb0udhcpc: started, v1.30.1udhcpc: sending discoverudhcpc: sending select for 10.21.127.53udhcpc: lease of 10.21.127.53 obtained, lease time 7200[03-16_23:36:46:534] requestRegistrationState2 MCC: 460, MNC: 3, PS: Attached, DataCap: 1XEVDO_REVB[03-16_23:36:46:566] requestRegistrationState2 MCC: 460, MNC: 3, PS: Attached, DataCap: 1XEVDO_REVB! T3 F6 x3 m" [# a" w1 Y4 x
这就是拨号成功了,当然也可查看IP信息。
; t: `& {& j* L& {- d& `
* o N8 G0 ~3 a$ a3 G# F- p
- Y- e( A1 j" `" T5 y' [, m! C3 o, J c% C) ]
0 }' Y2 z" D9 N* `* e2 u( s
[backcolor=rgba(18, 18, 18, 0.5)]
+ A# f2 }- i+ p! ?! n5 x5 V
6 E# a+ C3 J. S- t: V" q1 ?$ I! d
. m' {* m0 N5 A: o- |
) f1 v; R' N. \$ X" b/ y* A, p
* X3 a. |( q, W6 U* U+ L9 Z! C编辑切换为居中
$ ~+ h3 i0 C/ s( V* Z* C6 l( Z+ l( m6 [) m0 F3 I/ q6 J
3 @. }$ v5 [0 Z: W+ w z( T/ L
$ b( ]" H, W# Y: S' v" {
: R; G- a$ Z% |. Q" a
" }" k. z( \# L5 S7 I3 W# I6 T$ p& l& v, h% m. k
, M H, F# h4 T6 [: N H
5 l& x( e7 c7 G" Z8 Q1 z+ {% {- h. k" ]+ Q
6 X. q( A4 A! r5 Z/ y- a" S# ?2 }! X, y2 C$ ?7 A: M, X# b2 a
5 K2 V; P+ Y" L% N% T# B! q& ^接下来就是ping一下看是否可以联网。
" i) |3 L/ _% Y1 j0 U' f( a, B3 u+ e* ~
# ping 211.149.226.1206 W5 j& Y& w! n6 Y
4 F7 F" ^, Q4 ]8 k
% i$ b5 r5 Y# x0 C+ }/ K6 e) I! h$ r F* Q( r) N
1 X& z2 H Y7 R- R' h c- O [backcolor=rgba(18, 18, 18, 0.5)]
7 f/ B0 x3 p0 e9 Z) ^9 x5 U6 \7 l& H" n, W0 W
+ E" y: n" v0 ?8 x$ K
4 h5 x. c, `+ F; U9 g7 j; O# s* G' M# I/ G- n" c+ I- ^/ Q
编辑切换为居中
/ f9 r& E5 e& ?0 |
& s( w+ H5 [& v w, n1 n
g3 A7 {) l7 E, I) k3 u" f, G. t% @0 L' x( {, n0 p& O
& g. z& ?6 B: g; E
$ s/ |3 O( q# Z- h
( W# P% u9 J1 ^/ b1 g
8 f+ f9 Y' G) t$ T- r
0 Z1 k2 K( ]3 L* c) k- c( b) a2 @ W Z1 x- y, u
可以看到能ping通外网。
5 ^2 G, X7 y0 P" ?
+ i0 A# z9 R( `8 Y- m$ p$ L: |8 i这样设备就可以作为一个移动的网关的,配上无线网络,就可以做一个无线路由器了。
* m8 F" R$ @0 }" y+ M+ C# w G; b* r; {* B6 J
. y, Q; z; x5 J2 t
|
|