日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

Linux移植EC20 4G模块驱动简易教程

發(fā)布時(shí)間:2024/1/8 linux 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux移植EC20 4G模块驱动简易教程 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

關(guān)于4G模塊常見(jiàn)的品牌與型號(hào):

品牌

型號(hào)

市場(chǎng)價(jià)格

芯片組

狀態(tài)

HUAWEI

ME909s-821

210-260

海思芯片,只有五模

在售

HUAWEI

ME909s-521

400左右

高通芯片

在售

中興

ME3760

260左右

中芯微

停產(chǎn)

中興

MW3630

210左右

高通9x07

在售

移遠(yuǎn)

EC20

240-290

高通9x15

在售

移遠(yuǎn)

EC20 V2.0

190-240

高通9x07

在售

龍尚

8300系列

260左右

高通9x15

停產(chǎn)

龍尚

U9300系列

200左右的區(qū)間

高通9x07

在售

綜合分析:今年和接下來(lái)的時(shí)間里基本會(huì)是高通9x07和海思方案的天下,由于海思基本是華為在用;其它廠家基本轉(zhuǎn)向9x07了。

中興一代的3760、龍尚的8300系列產(chǎn)品是市場(chǎng)上最早見(jiàn)的模塊;技術(shù)相當(dāng)不成熟,加上原廠的支持較差,不建議使用。

還有一些品牌,因?yàn)槭袌?chǎng)占有率較小未統(tǒng)計(jì)在表格中。

?????? 移遠(yuǎn)在幾家中技術(shù)支持算是最好的了,加上性價(jià)比較好。后面慢慢變成了我們用的主要模塊。今天就以移遠(yuǎn)模塊為例,說(shuō)說(shuō)linux驅(qū)動(dòng)的移植。

平臺(tái):TI AM3352

OS:ubuntu 12.04 arm

內(nèi)核:3.2.0

第一步:內(nèi)核驅(qū)動(dòng)的修改。

?????? 相關(guān)的配置項(xiàng)位于menuconfig的Device Drivers->USB Support-> USB Serial Converter support-> USB driver for GSM and CDMA modems

?????? 在上面的配置項(xiàng)中可以看到USB Serial Converter,實(shí)際上4G模塊在操作系統(tǒng)中的介面就是串口設(shè)備(USB轉(zhuǎn)的Serial),所謂的內(nèi)核驅(qū)動(dòng)移植其實(shí)就是在USB轉(zhuǎn)串口驅(qū)動(dòng)中加上對(duì)應(yīng)usb設(shè)備的pid和vid,具體可以通過(guò)lsusb查詢得到。

?????? 具體代碼修改:

?????? 1、在”#define QUALCOMM_VENDOR_ID?????????????? 0x05C6”下面加上移遠(yuǎn)模塊的PID和VID。

//add by alan 150820

#define QUECTEL_VENDOR_ID???????????????? 0x2C7C

#define QUECTEL_PRODUCT_UC15???????????????? 0x9090

#define QUECTEL_PRODUCT_UC20???????????????? 0x9003

#define QUECTEL_PRODUCT_EC20????????????????? 0x9215

#define QUECTEL_PRODUCT_EC25????????????????? 0x0125

#define QUECTEL_PRODUCT_EC21????????????????? 0x0121

2、在“static const struct usb_device_id option_ids[]”函數(shù)中的

“{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */”后面加上

?????? //add by alan 150820

?????? { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)}, /* QUECTEL UC15 */

?????? { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20)}, /* QUECTEL UC20 */

?????? { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_EC20)}, /* QUECTEL EC20 */

?????? { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25)}, /* QUECTEL EC25 */

?????? { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21)}, /* QUECTEL EC21 */

3、在” option_probe”函數(shù)的” ?? data = serial->private = kzalloc(sizeof(struct usb_wwan_intf_private), GFP_KERNEL);”前面加上

?????? // Add to cancel the binding of UC20 NDIS interface -> start

?????? if (serial->dev->descriptor.idVendor == 0x05c6 &&

?????? serial->dev->descriptor.idProduct == 0x9003 &&

?????? serial->interface->cur_altsetting->desc.bInterfaceNumber == 4)

?????? return -ENODEV;

?????? // Add to cancel the binding of UC20 NDIS interface -> end

?????? // Add to cancel the binding of EC20 NDIS interface -> start

?????? if (serial->dev->descriptor.idVendor == 0x05c6 &&

?????? serial->dev->descriptor.idProduct == 0x9215 &&

?????? serial->interface->cur_altsetting->desc.bInterfaceNumber == 4)

?????? return -ENODEV;

?????? // Add to cancel the binding of EC20 NDIS interface -> end

?????? // Add to cancel the binding of EC25 NDIS interface -> start

?????? if (serial->dev->descriptor.idVendor == 0x2C7C &&

?????? serial->interface->cur_altsetting->desc.bInterfaceNumber == 4)

?????? return -ENODEV;

?????? // Add to cancel the binding of EC25 NDIS interface -> end

注:其實(shí)在步驟1、步驟2中增加的代碼已經(jīng)足夠?qū)⒛K驅(qū)動(dòng)起來(lái)了,這里的代碼主要是為了NDIS方式撥號(hào)。

4、模塊一般有多種撥號(hào)方式,比較老的有PPP方式撥號(hào),很多用過(guò)3G模塊的朋友都會(huì)知道這個(gè)方法。由于4G模塊的上下行速度都非常快,用PPP方式受協(xié)議限制速率跑不高,一般現(xiàn)在建議用NDIS或QWAN方式。移遠(yuǎn)模塊自帶了一套驅(qū)動(dòng)和撥號(hào)軟件叫GobiNet。將

Quectel_Linux_GobiNet_SR01A02V15.zip解壓到內(nèi)核的drivers/net/usb/目錄下,并修改Makefile,添加:

obj-$(CONFIG_USB_GOBI_NET)?????? += Quectel_GobiNet_SR01A02V13/

修改Kconfig文件,在endmenu前加上:

config USB_GOBI_NET

?????? tristate "Gobi USB Net driver for Quectel module"

?????? help

????????????? Support Quectel module.

? ? ? ? ? ? ?? A modem manager with support for GobiNet is recommended.

????????????? To compile this driver as a module, choose M here: the module will be called GobiNet.

?

5、做完這些,就可以進(jìn)行內(nèi)核的配置了。

?????? Make menuconfig,確認(rèn)以下選項(xiàng):

Device Drivers->USB Support-> USB Serial Converter support-> USB driver for GSM and CDMA modems?????? 選擇為M或*

Device Drivers->Network device support->USB Network Adapters->Gobi USB Net driver for Quectel module?????? 選擇為M

6、編譯并下載到目標(biāo)機(jī)上測(cè)試

Make uImage && make modules

7、系統(tǒng)啟動(dòng)后,ls /dev/ttyUSB*,正如驅(qū)動(dòng)正常一般會(huì)有/dev/ttyUSB0到ttyUSB3的接口出現(xiàn),說(shuō)明USB Serial的驅(qū)動(dòng)已正常工作。

8、編譯quectel-CM撥號(hào)程序。這個(gè)軟件的使用比較簡(jiǎn)單,直接執(zhí)行就行了,軟件幫你自動(dòng)識(shí)別APN。

?

寫在最后:這個(gè)文檔主要目的是把整個(gè)移植的流程進(jìn)行說(shuō)明,實(shí)際應(yīng)用中使用其它模塊也可以的。以前3G時(shí)代的PPP盡量不要用在4G模塊上,否則模塊的性能根本跑不出來(lái)。

?至于模塊的硬件電路,供電部分非常重要。最好采用獨(dú)立電源,而且最大電流能支持3A,并就近加上470的鉭電容,有了這個(gè)設(shè)計(jì)基本上可以兼容市面上大部分的模塊了。

?????? 模塊的驅(qū)動(dòng)資料,可以加我的QQ 527130394。我會(huì)盡快發(fā)給你.

總結(jié)

以上是生活随笔為你收集整理的Linux移植EC20 4G模块驱动简易教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。