溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux 4G通信實(shí)驗(yàn)分析

發(fā)布時(shí)間:2021-11-23 15:22:18 來源:億速云 閱讀:163 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹“Linux 4G通信實(shí)驗(yàn)分析”,在日常操作中,相信很多人在Linux 4G通信實(shí)驗(yàn)分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux 4G通信實(shí)驗(yàn)分析”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

對于嵌入式 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 模塊的硬件原理圖:
Linux 4G通信實(shí)驗(yàn)分析
Linux 4G通信實(shí)驗(yàn)分析
在原理圖中,U25 是 4G 模塊的 MiniPCIE 接口,然后通信引腳會(huì)接到 U15 的 HUB 芯片上,所以 4G 模塊會(huì)被識(shí)別成 USB 設(shè)備,CON5 是 SIM 卡接口,在使用 4G 模塊時(shí),需要先插入 SIM 卡。在 i.MX6UL 終結(jié)者開發(fā)板上使用的 EC20 4G 模塊,如圖 56.1.3 所示:
Linux 4G通信實(shí)驗(yàn)分析
56.2 EC20 4G  模塊配置
56.2.1  添加 USB  設(shè)備信息
要使用 EC20 4G 模塊首先需要在 Linux 內(nèi)核中添加 EC20 的 USB 信息,這樣內(nèi)核啟動(dòng)后,才能正確識(shí)別
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 信息。
56.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
    配置如圖 56.2.2.1 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    接下來我們還需要使能 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 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    然后配置 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
    配置如圖 56.2.2.3 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    配置完成后,重新編譯內(nèi)核,然后使用新的內(nèi)核啟動(dòng)開發(fā)板。如果配置成功開發(fā)板啟動(dòng)后會(huì)有如圖56.2.2.4 信息打?。?br/> Linux 4G通信實(shí)驗(yàn)分析
    可以看出 EC20 4G 模塊識(shí)別成功,并且虛擬出 5 個(gè) USB 設(shè)備,分別為 ttyUSB0~ttyUSB4。
    56.3 EC20 4G  模塊聯(lián)網(wǎng)測試
    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 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    使用 configure 進(jìn)行配置,命令如下:
    ./configure
    結(jié)果如圖 56.3.1.2 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    配置完成后,使用下面的命令進(jìn)行編譯:
    make CC=arm-linux-gnueabihf-gcc
    “CC=arm-linux-gnueabihf-gcc”指定編譯器,和開發(fā)板 Linux 內(nèi)核使用同一個(gè)編譯器。
    編譯完成如圖 56.3.1.3 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    編譯完成后,分別在 chat、pppd、pppdump、pppstats 四個(gè)目錄下生成 chat、pppd、pppdump、pppstats可執(zhí)行文件,用于后面的 4G 模塊聯(lián)網(wǎng)測試。
    56.3.2 EC20 4G  模塊聯(lián)網(wǎng)測試
    首先安裝好 EC20 4G 模塊、天線和 SIM 卡,如圖 56.3.2.1 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    開發(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 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    然后在/etc/ppp 目錄下創(chuàng)建 pap-secrets 文件,使用下面命令:
    touch pap-secrets //創(chuàng)建 pap-secrets 文件
    vi pap-secrets //打開 pap-secrets 文件
    輸入如下內(nèi)容:
    # Secrets for authentication using PAP
    # client server secret IP addresses
    card * card *
    在 4G 信號(hào)在通信時(shí)候有一個(gè)密碼的比對,密碼對了就可以通信了。上面顯示用戶是 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"”對應(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)測試了。
    首先關(guān)閉 eth0 設(shè)備,因?yàn)楹?EC20 4G 模塊有沖突,同時(shí)只能使用一個(gè)設(shè)備。命令如下:
    ifconfig eth0 down
    然后在/etc/ppp 目錄下輸入指令:
    ./pppd call wcdma &
    結(jié)果如圖 56.3.2.3 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    上圖表示聯(lián)網(wǎng)成功后的 IP 地址為 10.47.135.182,使用 ifconfig 命令查看結(jié)果如圖 56.3.2.4:
    Linux 4G通信實(shí)驗(yàn)分析
    這時(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:
    Linux 4G通信實(shí)驗(yàn)分析
    發(fā)現(xiàn)不能 ping 通外網(wǎng),愿意是因?yàn)?DNS 沒有設(shè)置對,在 etc 下有一個(gè)文件 resolv.conf 。這個(gè)文件是用來放 DNS 的。就是這個(gè)里面的域名沒有設(shè)置對。然而在 eth0 的運(yùn)行腳本里強(qiáng)制性的把這個(gè)文件復(fù)制為了192.168.1.1 。這就造成即便在這里文件里設(shè)置上正確的 DNS,再開機(jī)后也會(huì)發(fā)現(xiàn)這個(gè)文件里已經(jīng)是192.168.1.1 了。這是因?yàn)?eth0,是開機(jī)自啟動(dòng)的。
    我們在/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)行。然后重新開機(jī),執(zhí)行 ppp0 腳本,命令如下:
    /etc/ppp0
    腳本執(zhí)行成功后,重新使用 ping 命令,結(jié)果如圖 56.3.2.6 所示:
    Linux 4G通信實(shí)驗(yàn)分析
    圖片顯示可以正常 ping 通百度的 IP 地址。至此 EC20 4G 模塊就可以正常使用了。

到此,關(guān)于“Linux 4G通信實(shí)驗(yàn)分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI