十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要講解了“Linux系統(tǒng)EC20 4G模塊移植方法是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux系統(tǒng)EC20 4G模塊移植方法是什么”吧!
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為圍場等服務建站,圍場等地企業(yè),進行企業(yè)商務咨詢服務。為圍場企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
1.4G網(wǎng)絡連接
對于嵌入式Linux而言,4G網(wǎng)絡連接是一個比較容易實現(xiàn)的功能,大多數(shù)的4G模塊接口都是MiniPCIE接口,但是深入了解一下就會發(fā)現(xiàn),4G模塊的通信接口都是USB,所以4G模塊的驅(qū)動就是USB驅(qū)動,只要USB驅(qū)動正常,4G模塊在硬件上就能正常通信。下面看一下4G模塊的硬件原理圖:
在原理圖中,U25是4G模塊的MiniPCIE接口,然后通信引腳會接到U15的HUB芯片上,所以4G模塊會被識別成USB設備,CON5是SIM卡接口,在使用4G模塊時,需要先插入SIM卡。在i.MX6UL終結者開發(fā)板上使用的EC20 4G模塊,如圖
2. EC20 4G模塊配置
2.1. 添加USB設備信息
要使用EC20 4G模塊首先需要在Linux內(nèi)核中添加EC20的USB信息,這樣內(nèi)核啟動后,才能正確識別EC20 4G模塊。打開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信息。
2.2. Linux內(nèi)核配置
添加完EC20 4G模塊的USB信息后,需要修改Linux 內(nèi)核配置來支持USBNET功能。具體配置如下:
Device Drivers --->
Network device support --->
<*> USB Network Adapters --->
<*> Multi-purpose USB Networking Framework配置如圖
接下來我們還需要使能 USB 串口 GSM、CDMA 驅(qū)動,配置路徑如下:
Device Drivers --->
USB support --->
<*> USB Serial Converter support --->
<*> USB driver for GSM and CDMA modems
配置如圖
然后配置ppp,配置路徑如下:
Device Drivers --->
Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP BSD-Compress compression
<*> PPP Deflate compression
PPP filtering
<*> PPP MPPE compression (encryption)
PPP multilink support
<*> PPP over Ethernet
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
tty ports配置如圖
配置完成后,重新編譯內(nèi)核,然后使用新的內(nèi)核啟動開發(fā)板。如果配置成功開發(fā)板啟動后會有如圖 2.2.4信息打?。?nbsp;
可以看出EC20 4G模塊識別成功,并且虛擬出5個USB設備,分別為ttyUSB0~ttyUSB4。
3. EC20 4G模塊聯(lián)網(wǎng)測試
3.1. PPP軟件包編譯
首先拷貝ppp-2.4.4.tar.gz到Ubuntu下,然后執(zhí)行下面的命令解壓:
tar -xvf ppp-2.4.4.tar.gz
解壓完成得到ppp-2.4.4目錄,進入ppp-2.4.4目錄如圖
使用configure進行配置,命令如下:./configure結果如圖
配置完成后,使用下面的命令進行編譯:
make CC=arm-linux-gnueabihf-gcc
“CC=arm-linux-gnueabihf-gcc”指定編譯器,和開發(fā)板Linux內(nèi)核使用同一個編譯器。編譯完成如圖
編譯完成后,分別在chat、pppd、pppdump、pppstats四個目錄下生成chat、pppd、pppdump、pppstats可執(zhí)行文件,用于后面的4G模塊聯(lián)網(wǎng)測試。
3.2. EC20 4G模塊聯(lián)網(wǎng)測試
首先安裝好EC20 4G模塊、天線和SIM卡,如圖
開發(fā)板準備好后啟動Linux系統(tǒng),待系統(tǒng)啟動后,進入/etc目錄,然后創(chuàng)建ppp目錄,具體命令如下:
cd /etc //進入etc目錄
mkdir ppp //創(chuàng)建ppp目錄
目錄創(chuàng)建完后,使用U盤將上一節(jié)編譯的chat、pppd、pppdump、pppstats四個可執(zhí)行文件拷貝到/etc/ppp目錄下,如圖 :
然后在/etc/ppp目錄下創(chuàng)建pap-secrets文件,使用下面命令:
touch pap-secrets //創(chuàng)建pap-secrets文件vi pap-secrets //打開pap-secret
輸入如下內(nèi)容:
# Secrets for authentication using PAP
# client server secret IP addresses
card * card *
在4G信號在通信時候有一個密碼的比對,密碼對了就可以通信了。上面顯示用戶是card,密碼是card。
然后創(chuàng)建新文件夾peers,命令“mkdir peers”。
進入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設備節(jié)點文件。
“user "card"”和“password "card"”對應了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#
這兩句話會根據(jù)移動聯(lián)通或者是電信而變化,這里用的是移動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)建完成后,就可以進行聯(lián)網(wǎng)測試了。
首先關閉eth0設備,因為和EC20 4G模塊有沖突,同時只能使用一個設備。命令如下:
ifconfig eth0 down
然后在/etc/ppp目錄下輸入指令:
./pppd call wcdma &
結果如圖
上圖表示聯(lián)網(wǎng)成功后的IP地址為10.47.135.182,使用ifconfig命令查看結果如圖
這時使用ping命令查看能夠ping通外網(wǎng),命令如下:
ping 202.108.22.5 -c 4
“-c”選項指定ping網(wǎng)絡的次數(shù)。“202.108.22.5”是百度的IP地址,結果如圖 :
發(fā)現(xiàn)不能ping通外網(wǎng),愿意是因為DNS沒有設置對,在etc下有一個文件resolv.conf 。這個文件是用來放DNS的。就是這個里面的域名沒有設置對。然而在eth0的運行腳本里強制性的把這個文件復制為了192.168.1.1 。這就造成即便在這里文件里設置上正確的DNS,再開機后也會發(fā)現(xiàn)這個文件里已經(jīng)是192.168.1.1了。這是因為eth0,是開機自啟動的。
我們在/etc目錄下新建一個文件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
然后在新建一個腳本文件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í)行權限:
chmod 777 ppp0
這里第一步是將eth0關掉,第二步將我們的DNS文件覆蓋到resolv.conf上,第三步運行。然后重新開機,執(zhí)行ppp0腳本,命令如下:
/etc/ppp0
腳本執(zhí)行成功后,重新使用ping命令,結果如圖:
圖片顯示可以正常ping通百度的IP地址。至此EC20 4G模塊就可以正常使用了。
感謝各位的閱讀,以上就是“Linux系統(tǒng)EC20 4G模塊移植方法是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Linux系統(tǒng)EC20 4G模塊移植方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!