新聞中心
這篇文章主要介紹“Linux 4G通信實(shí)驗(yàn)分析”,在日常操作中,相信很多人在Linux 4G通信實(shí)驗(yàn)分析問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Linux 4G通信實(shí)驗(yàn)分析”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司是一家專業(yè)提供六枝企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為六枝眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
對(duì)于嵌入式 Linux 而言,4G 網(wǎng)絡(luò)連接是一個(gè)比較容易實(shí)現(xiàn)的功能,大多數(shù)的 4G 模塊接口都是 MiniPCIE接口,但是深入了解一下就會(huì)發(fā)現(xiàn),4G 模塊的通信接口都是 USB,所以 4G 模塊的驅(qū)動(dòng)就是 USB 驅(qū)動(dòng),只要 USB 驅(qū)動(dòng)正常,4G 模塊在硬件上就能正常通信。下面看一下 4G 模塊的硬件原理圖:
在原理圖中,U25 是 4G 模塊的 MiniPCIE 接口,然后通信引腳會(huì)接到 U15 的 HUB 芯片上,所以 4G 模塊會(huì)被識(shí)別成 USB 設(shè)備,CON5 是 SIM 卡接口,在使用 4G 模塊時(shí),需要先插入 SIM 卡。在 i.MX6UL 終結(jié)者開(kāi)發(fā)板上使用的 EC20 4G 模塊,如圖 56.1.3 所示:
56.2 EC20 4G 模塊配置
56.2.1 添加 USB 設(shè)備信息
要使用 EC20 4G 模塊首先需要在 Linux 內(nèi)核中添加 EC20 的 USB 信息,這樣內(nèi)核啟動(dòng)后,才能正確識(shí)別
EC20 4G 模塊。打開(kāi) Linux 內(nèi)核下的 drivers/usb/serial/option.c 文件,添加如下信息:
1809 /* add support EC220 4G Module */
1810 { USB_DEVICE(0x05C6, 0x9090) }, /* Quectel UC15 */
1811 { USB_DEVICE(0x05C6, 0x9003) }, /* Quectel UC20 */
1812 { USB_DEVICE(0x05C6, 0x9215) }, /* Quectel EC20 */
1813 { USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC25/EC20 R2.0 */
1814 { USB_DEVICE(0x2C7C, 0x0121) }, /* Quectel EC21 */
1815 /* end add */
其中第 1813 行是 EC20 4G 模塊的 USB 信息。
56.2.2 Linux 內(nèi)核配置
添加完 EC20 4G 模塊的 USB 信息后,需要修改 Linux 內(nèi)核配置來(lái)支持 USBNET 功能。具體配置如下:
Device Drivers --->
Network device support --->
<*> USB Network Adapters --->
<*> Multi-purpose USB Networking Framework
配置如圖 56.2.2.1 所示:
接下來(lái)我們還需要使能 USB 串口 GSM、CDMA 驅(qū)動(dòng),配置路徑如下:
Device Drivers --->USB support --->
<*> USB Serial Converter support --->
<*> USB driver for GSM and CDMA modems
配置如圖 56.2.2.2 所示:
然后配置 ppp,配置路徑如下:
Device Drivers --->Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP BSD-Compress compression
<*> PPP Deflate compressionPPP filtering
<*> PPP MPPE compression (encryption)PPP multilink support
<*> PPP over Ethernet
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
配置如圖 56.2.2.3 所示:
配置完成后,重新編譯內(nèi)核,然后使用新的內(nèi)核啟動(dòng)開(kāi)發(fā)板。如果配置成功開(kāi)發(fā)板啟動(dòng)后會(huì)有如圖56.2.2.4 信息打印:
可以看出 EC20 4G 模塊識(shí)別成功,并且虛擬出 5 個(gè) USB 設(shè)備,分別為 ttyUSB0~ttyUSB4。
56.3 EC20 4G 模塊聯(lián)網(wǎng)測(cè)試
56.3.1 PPP 軟件包編譯
首先拷貝 ppp-2.4.4.tar.gz 到 Ubuntu 下,然后執(zhí)行下面的命令解壓:
tar -xvf ppp-2.4.4.tar.gz
解壓完成得到 ppp-2.4.4 目錄,進(jìn)入 ppp-2.4.4 目錄如圖 56.3.1.1 所示:
使用 configure 進(jìn)行配置,命令如下:
./configure
結(jié)果如圖 56.3.1.2 所示:
配置完成后,使用下面的命令進(jìn)行編譯:
make CC=arm-linux-gnueabihf-gcc
“CC=arm-linux-gnueabihf-gcc”指定編譯器,和開(kāi)發(fā)板 Linux 內(nèi)核使用同一個(gè)編譯器。
編譯完成如圖 56.3.1.3 所示:
編譯完成后,分別在 chat、pppd、pppdump、pppstats 四個(gè)目錄下生成 chat、pppd、pppdump、pppstats可執(zhí)行文件,用于后面的 4G 模塊聯(lián)網(wǎng)測(cè)試。
56.3.2 EC20 4G 模塊聯(lián)網(wǎng)測(cè)試
首先安裝好 EC20 4G 模塊、天線和 SIM 卡,如圖 56.3.2.1 所示:
開(kāi)發(fā)板準(zhǔn)備好后啟動(dòng) Linux 系統(tǒng),待系統(tǒng)啟動(dòng)后,進(jìn)入/etc 目錄,然后創(chuàng)建 ppp 目錄,具體命令如下:
cd /etc //進(jìn)入 etc 目錄
mkdir ppp //創(chuàng)建 ppp 目錄
目錄創(chuàng)建完后,使用 U 盤將上一節(jié)編譯的 chat、pppd、pppdump、pppstats 四個(gè)可執(zhí)行文件拷貝到/etc/ppp目錄下,如圖 56.3.2.2 所示:
然后在/etc/ppp 目錄下創(chuàng)建 pap-secrets 文件,使用下面命令:
touch pap-secrets //創(chuàng)建 pap-secrets 文件
vi pap-secrets //打開(kāi) pap-secrets 文件
輸入如下內(nèi)容:
# Secrets for authentication using PAP
# client server secret IP addresses
card * card *
在 4G 信號(hào)在通信時(shí)候有一個(gè)密碼的比對(duì),密碼對(duì)了就可以通信了。上面顯示用戶是 card,密碼是 card。
然后創(chuàng)建新文件夾 peers,命令“mkdir peers”。
進(jìn)入 peers 文件夾,創(chuàng)建 wcdma 文件,命令如下:
touch wcdma
vi wcdma
輸入如下內(nèi)容:
# /etc/ppp/peers/wcdma
# This is pppd script for China liantong
# Usage: root>pppd call wcdma
hide-password
noauth
connect '/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-connect'
disconnect '/etc/ppp/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect'
debug
/dev/ttyUSB2
115200
defaultroute
noipdefault
novj
novjccomp
noccp
ipcp-accept-local
ipcp-accept-remote
local
lock
dump
nodetach
user "card"
password "card"
crtscts
remotename 3gppp
ipparam 3gppp
usepeerDNS
需要注意的是使用/dev/ttyUSB2 設(shè)備節(jié)點(diǎn)文件。
“user "card"”和“password "card"”對(duì)應(yīng)了 pap-secrets 文件中的用戶名和密碼。
創(chuàng)建 wcdma-chat-connect 文件:
touch wcdma-chat-connect
vi wcdma-chat-connect
內(nèi)容如下:
ABORT "BUSY"
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
TIMEOUT 120
"" AT
OK \rATZ
OK \rAT+CGDCONT=1,"IP","3gnet",,0,0
OK-AT-OK ATDT*99#
CONNECT \d\c
在這里 OK \rAT+CGDCONT=1,"IP","3gnet",,0,0
OK-AT-OK ATDT*99#
這兩句話會(huì)根據(jù)移動(dòng)聯(lián)通或者是電信而變化,這里用的是移動(dòng) 4G。
創(chuàng)建 wcdma-chat-disconnect 文件:
touch wcdma-chat-disconnect
vi wcdma-chat-disconnect
內(nèi)容如下:
ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "INSending break to the modem\n"
""\k"
""+++ATH"
SAY "\nGood bye\n"
所需文件創(chuàng)建完成后,就可以進(jìn)行聯(lián)網(wǎng)測(cè)試了。
首先關(guān)閉 eth0 設(shè)備,因?yàn)楹?EC20 4G 模塊有沖突,同時(shí)只能使用一個(gè)設(shè)備。命令如下:
ifconfig eth0 down
然后在/etc/ppp 目錄下輸入指令:
./pppd call wcdma &
結(jié)果如圖 56.3.2.3 所示:
上圖表示聯(lián)網(wǎng)成功后的 IP 地址為 10.47.135.182,使用 ifconfig 命令查看結(jié)果如圖 56.3.2.4:
這時(shí)使用 ping 命令查看能夠 ping 通外網(wǎng),命令如下:
ping 202.108.22.5 -c 4
“-c”選項(xiàng)指定 ping 網(wǎng)絡(luò)的次數(shù)?!?02.108.22.5”是百度的 IP 地址,結(jié)果如圖 56.3.2.5:
發(fā)現(xiàn)不能 ping 通外網(wǎng),愿意是因?yàn)?DNS 沒(méi)有設(shè)置對(duì),在 etc 下有一個(gè)文件 resolv.conf 。這個(gè)文件是用來(lái)放 DNS 的。就是這個(gè)里面的域名沒(méi)有設(shè)置對(duì)。然而在 eth0 的運(yùn)行腳本里強(qiáng)制性的把這個(gè)文件復(fù)制為了192.168.1.1 。這就造成即便在這里文件里設(shè)置上正確的 DNS,再開(kāi)機(jī)后也會(huì)發(fā)現(xiàn)這個(gè)文件里已經(jīng)是192.168.1.1 了。這是因?yàn)?eth0,是開(kāi)機(jī)自啟動(dòng)的。
我們?cè)?etc 目錄下新建一個(gè)文件 resolv.conf_back:
touch resolv.conf_back
vi resolv.conf_back
輸入如下內(nèi)容:
nameserver 202.99.160.68
nameserver 221.130.33.52
nameserver 221.130.33.60
nameserver 192.168.1.1
然后在新建一個(gè)腳本文件 ppp0:
touch ppp0
vi ppp0
輸入如下內(nèi)容:
#!/bin/sh
ifconfig eth0 down
cp /etc/resolv.conf_back /etc/resolv.conf
/etc/ppp/pppd call wcdma&
修改 ppp0 文件的執(zhí)行權(quán)限:
chmod 777 ppp0
這里第一步是將 eth0 關(guān)掉,第二步將我們的 DNS 文件覆蓋到 resolv.conf 上,第三步運(yùn)行。然后重新開(kāi)機(jī),執(zhí)行 ppp0 腳本,命令如下:
/etc/ppp0
腳本執(zhí)行成功后,重新使用 ping 命令,結(jié)果如圖 56.3.2.6 所示:
圖片顯示可以正常 ping 通百度的 IP 地址。至此 EC20 4G 模塊就可以正常使用了。
到此,關(guān)于“Linux 4G通信實(shí)驗(yàn)分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
新聞名稱:Linux4G通信實(shí)驗(yàn)分析
標(biāo)題鏈接:http://www.dlmjj.cn/article/pjojdo.html