修改移遠提供的GobiNet、quectel-CM源碼,使其支持有方N720 4G模塊

????????最近在研究imx6ull linux下4G模塊驅動的移植,參考的移遠ec20的移植方法,添加了GobiNet驅動,編譯了quectel-CM工具,并且可以正常撥號,分配到ip,如下:????????

? ? ? ? ping外網也沒有壓力,如下:

? ? ? ? 但是手上還有有方N720 4G模塊,可以通過pppd撥號上網,感覺比較麻煩,如果換模塊了還要調用不同的ppp撥號腳本,想著能不能也和移遠一樣,通過quectel-CM這個直接撥號。想法很好,但是實現起來不是很容易哈。

? ? ? ? 通過多方渠道,主要是百度,并沒有找到有方官方提供的相關源碼,昨天突發奇想,能不能研究一下移遠的源碼,看看能不能改一下呢,使其滿足要求呢?畢竟GobiNet不是移遠獨有的,它是高通的產物。

? ? ? ?聯想到移植驅動時都和idVendor?idProduct這兩個有關,移遠EC20的是2C7C 0125?,有方N720的是2949 8247 。

????????我想一定和這個有關,那就打開源碼看一下吧。在GobiUSBNet.c中全局搜索2C7C或者0125,找到如下代碼:????????

static const struct usb_device_id QuecGobiVIDPIDTable [] =
{GOBI_FIXED_INTF( 0x05c6, 0x9003 ), // Quectel UC20GOBI_FIXED_INTF( 0x05c6, 0x9215 ), // Quectel EC20 (MDM9215)GOBI_FIXED_INTF( 0x2c7c, 0x0125 ), // Quectel EC20 (MDM9X07)/EC25/EG25GOBI_FIXED_INTF( 0x2c7c, 0x0121 ), // Quectel EC21GOBI_FIXED_INTF( 0x2c7c, 0x0306 ), // Quectel EP06GOBI_FIXED_INTF( 0x2c7c, 0x0435 ), // Quectel AG35GOBI_FIXED_INTF( 0x2c7c, 0x0296 ), // Quectel BG96GOBI_FIXED_INTF( 0x2c7c, 0x0191 ), // Quectel EG91GOBI_FIXED_INTF( 0x2c7c, 0x0195 ), // Quectel EG95	GOBI_FIXED_INTF( 0x2c7c, 0x0512 ), // Quectel EG12/EP12/EM12/EG16/EG18,SDx20GOBI_FIXED_INTF( 0x2c7c, 0x0620 ), // Quectel EG20,SDx24GOBI_FIXED_INTF( 0x2c7c, 0x0800 ), // Quectel RG500Q,RM500Q,RM510Q,SDX55//Terminating entry{ }
};

? ? ? ? 多么的熟悉呀,添加linux 4G模塊驅動的時候好像也有和這個差不多的東西,如下:

? ? ? ? 果斷將有方n720的添加進去,編譯一下行不行。

? ? ? ? 使用沒有添加有方N720支持的內核啟動設備后如下,并沒有GobiNet相關的提示。

? ? ? ??使用添加有方N720支持的內核啟動設備后如下,就有GobiNet相關的提示了。這個證明我的想法的正確的。

? ? ? ? 使用quectel-CM工具試一下看看能不能撥號成功,好家伙,竟然沒成功。報錯了,如下:

? ? ? ? 初步猜測應該是GobiUSBNet.c文件里應該還有其他與idVendor?idProduct相關的操作,繼續搜索2c7c,發現如下代碼:

? ? ? ? 這個應該就是關鍵部分,因為其他的地方都沒有2c7c相關的內容了,通過上下文引用知道

pGobiDev->mbMdm9x07 pGobiDev->mbMdm9x06是一個bool類型,就是一個標志,代表不同的模塊類型,同時pGobiDev->mbMdm9x06上下文中只有這個地方使用了,那這個就應該不需要考慮了。那就從pGobiDev->mbMdm9x07下手了,仿照原來的代碼將有方n720的也加進去,改成如下:

? ? ? ? 重新編譯內核啟動,如下:

? ? ? ? 竟然多了一句creating qcqmi0,這個足以證明上面的改動有對了。

? ? ? ? quectel-CM撥號試一下

? ? ? ? 雖然成功撥號了,但是發現缺少

????????Find /sys/bus/usb/devices/1-1 idVendor=2c7c idProduct=0125這個提示,應該是quectel-CM源碼也需要修改。打開源碼,在main.c文件中搜索2c7c,果然發現了秘密,如下:

? ? ? ? 2c7c是移遠EC20模塊的idVendor?,05c6是QUALCOMM(高通)的idVendor ,這個說明了

quectel-CM源碼也不是移遠獨創的,也是用的高通的源碼。既然如此,那就將有方N720的加上,如下:

????????重新重新編譯一下quectel-CM???????,使用新的quectel-CM撥號。如下:

? ? ? ? 成功了,哈哈哈。

? ? ? ? 不僅分配了ip,啟動了usb0網卡,還有了Find /sys/bus/usb/devices/1-1 idVendor=2949 idProduct=8247提示。

????????試一下ping外網完全無壓力,如下:

? ? ? ? 至此,我認為GobiNet及quectel-CM支持有方N720 4G模塊的修改工作應該是完成了。

? ? ? ? 修改后的源碼可以通過如下鏈接下載

????????GobiNet

????????CM???????

????????這個只是我自己研究測試使用,至于穩定性還需要驗證,如果誰用了我修改的源碼,導致項目或者設備出問題的概不負責。

? ? ? ? 理論上市面上的4G模塊都可以通過這樣修改來實現支持。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209430.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209430.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209430.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件工程 考試重點

結構化分析 考慮數據和處理的需求分析方法,稱為結構分析方法(SA) 結構化分析基于 分解、抽象 的基本思想 分解:對于復雜的系統,為將復雜度降低到可以掌握的程度,可以把大問題分解為若干個小問題&#xf…

【go-zero】go-zero使用ent框架 如何使用源生sql完成查詢

背景 本篇教程我們采用的是go-zero的快速腳手架工具 simple-admin 框架的開發 github地址:https://github.com/suyuan32/simple-admin-core 因為框架推薦使用Ent 這篇教程我們則對Ent的基本使用的幾種形式進行一個總結 一、開啟ent的源生sql 1、simple-admin生成rpc 【go-…

QT 中 線程池 (備查)

QRunnable類 API 1)在Qt中使用線程池需要先創建任務,添加到線程池中的每一個任務都需要是一個 QRunnable 類型,因此在程序中需要創建子類繼承 QRunnable 這個類。 2)然后重寫 run() 方法,在這個函數中編寫要在線程池中…

RabbitMQ使用指南

介紹主要特點常用插件使用RabbitMQ的插件常用插件列表 應用場景Kafka與RabbitMq的區別主要優缺點安裝步驟插件安裝步驟 使用RabbitMqJava代碼示例拓展 介紹 RabbitMQ是由Erlang語言開發的,基于AMQP(高級消息隊列協議)協議實現的開源消息代理…

元宇宙紅色展廳VR虛擬展館提高受訓者的參與感

生活在和平年代的新一代青少年,可能對革命先烈英勇事跡難以有很深的體會,無法切實感受到中國共產黨無畏犧牲、誓死保家衛國的紅色精神,因此借助VR虛擬現實制作技術,讓參觀者們走近革命先烈中,感受老一輩無產階級革命家…

搜索引擎和網絡瀏覽器之間的區別

術語“搜索引擎”和“網絡瀏覽器”與互聯網有關。搜索引擎基本上是用于通過 Internet 搜索信息的工具,而 Web 瀏覽器是用于加載網頁等 HTML 文件的應用軟件。 閱讀本文以了解有關搜索引擎和網絡瀏覽器以及它們之間的區別的更多信息。 什么是搜索引擎? …

TrustZone之SMC異常

作為支持兩個安全狀態的一部分,該架構包括了Secure Monitor Call(SMC)指令。執行SMC會引發Secure Monitor Call異常,該異常目標是EL3。 通常,SMC用于請求服務,可以是來自駐留在EL3中的固件,也可…

微信小程序適配方案:rpx(responsive pixel響應式像素單位)

小程序適配單位:rpx 規定任何屏幕下寬度為750rpx 小程序會根據屏幕的寬度自動計算rpx值的大小 Iphone6下:1rpx 1物理像素 0.5css 小程序編譯后,rpx會做一次px換算,換算是以375個物理像素為基準,也就是在一個寬度…

迭代器失效及解決辦法

當使用迭代器遍歷容器并刪除元素時&#xff0c;迭代器可能會失效。 對于vector來說&#xff0c;如果使用普通迭代器&#xff08;例如std::vector<int>::iterator&#xff09;進行遍歷和刪除操作&#xff0c;當你刪除一個元素后&#xff0c;后面的元素會向前移動填補空缺…

服務器如何保證數據安全_Maizyun

服務器如何保證數據安全 在當今的數字化時代&#xff0c;數據安全已經成為企業和社會組織必須面對的重要問題。服務器作為存儲和處理大量數據的核心組件&#xff0c;必須采取有效的措施來確保數據的安全。本文將探討服務器如何保證數據安全。 一、訪問控制和身份認證 訪問控…

nvm,node,npm,yarn相關安裝報錯問題記錄

問題一&#xff1a; yarn : 無法加載文件 D:\jsPackage\nodejs\node_global\yarn.ps1&#xff0c;因為在此系統上禁止運行腳本。 解決&#xff1a; 步驟1,powerShell以管理員運行后&#xff0c;輸入命令: get-ExecutionPolicy 查看權限, 會看到它的返回值是 Restricted , 意…

計算一組x和y(一維數組)

輸入30個整數a1,a2,a3,…,a30&#xff0c;計算所有的x與y。已知&#xff1a; 輸入格式: 30個整數 輸出格式: 計算得到的x1, x2,.......,x10 計算得到的y1, y2,.......,y10 所有輸出精確到小數點后3位。 注意&#xff1a; 1、輸出的每個“”左右各有一個空格&#xff0c;輸出…

堅鵬:興業銀行EAST5.0政策解讀及數據質量提升方案培訓

興業銀行股份有限公司&#xff08;簡稱“興業銀行”&#xff09;成立于1988年8月&#xff0c;2022年總資產9.27萬億元&#xff0c;是經國務院、中國人民銀行批準成立的首批股份制商業銀行之一&#xff0c;總行設在福州市。現已發展成為橫跨境內外&#xff0c;線上線下結合&…

12.8 作業

1&#xff0c; 使用手動連接&#xff0c;將登錄框中的取消按鈕使用qt4版本的連接到自定義的槽函數中&#xff0c;在自定義的槽函數中調用關閉函數 將登錄按鈕使用qt5版本的連接到自定義的槽函數中&#xff0c;在槽函數中判斷ui界面上輸入的賬號是否為"admin"&#…

什么是git pr

“Git PR” 指的是 Git 中的 Pull Request&#xff0c;是一種協作開發的工作流程。Pull Request 提供了一種將代碼從一個分支&#xff08;通常是開發者個人的分支&#xff09;合并到另一個分支&#xff08;通常是主分支&#xff09;的機制&#xff0c;并在合并前進行代碼審查和…

FLStudio中文2024中文最新漢化安裝包下載

FLStudio中文21最新版本以其使用速度而聞名&#xff0c;是一個高度復雜的音樂制作環境。FL Studio免費&#xff0c;聯合國音序器音頻和MIDI每個復合編輯都是音樂。現代的DAW是一種非凡的野獸。首先&#xff0c;它在很大程度上把自己放在了(幾乎)每個人記錄過程的核心。其次&…

探索 SNMPv3 魔法:armbian系統安裝snmp服務并通過SNMPV3進行連接控制

文章目錄 說明SNMP服務的安裝本機連接SNMPV3操作MIB Browser連接SNMPV3問題總結密碼過短權限配置錯誤&#xff0c;導致OID不存在 說明 工具 建議嘗試專業版ireasoning MIB brower&#xff0c;因為只有專業版支持SNMP v3的連接。當然&#xff0c;也可以嘗試其他SNMP客戶端工具 …

[足式機器人]Part4 南科大高等機器人控制課 Ch03 Operator View of Rigid-Body Transformation

本文僅供學習使用 本文參考&#xff1a; B站&#xff1a;CLEAR_LAB 筆者帶更新-運動學 課程主講教師&#xff1a; Prof. Wei Zhang 南科大高等機器人控制課 Ch03 Operator View of Rigid-Body Transformation 1. Rotation Operation via Differential Equation1.1 Skew Symmetr…

Java第21章網絡通信

網絡程序設計基礎 網絡程序設計編寫的是與其他計算機進行通信的程序。Java 已經將網絡程序所需要的元素封 裝成不同的類&#xff0c;用戶只要創建這些類的對象&#xff0c;使用相應的方法&#xff0c;即使不具備有關的網絡支持&#xff0c;也可 以編寫出高質量的網絡…

kennard-stone算法實現樣本集劃分(ks算法)

目錄 一、 Kennard-Stone算法原理&#xff08;KS算法&#xff09; 二、Kennard-Stone算法作用 三、代碼 四、對選出來的train樣本使用T-SNE算法進行繪制 五、參考鏈接 一、 Kennard-Stone算法原理&#xff08;KS算法&#xff09; KS算法原理&#xff1a;把所有的樣本都看…