編譯支持3G網卡的openwrt固件——從內核到應用


已經好久沒有寫關於技術的東東了,不是因為太懶,而是最近實在沒做過什么有點技術含量的事,最近產品需要支持3g網卡,也就終於機會研究一下以前沒有接觸的東西了。其實如非工作需要,自己私底下去研究一些未接觸技術的時間真的很少,因為還有其它太多太多生活的事情需要我們去處理,要做一名懂得享受生活程序員。
言歸正傳,開始干活!
本文主要涉及的是如何在openwrt的基礎上添加3G和usb模塊,並非像網上大部分文章提到的只是部分熱門路由如703N、h618b、rg100a這些已有大神編譯好的固件,然后再此基礎上再修改腳本。簡而言之,就是只要你的硬件平台可以跑openwrt,支持usb接口,就可以自己編譯出支持3G網卡的Openwrt固件,對於網卡的要求還是有的,我這里使用的是MF190,可以直接識別為modem,如有需要usb_modeswitch,網上大把教程,也就不多提了。Openwrt源碼的下載和編譯這一part直接跳過(我想研究到這一塊的也都知道如何下載和編譯源碼了吧),本文所用的openwrt版本是trunk,內核版本為3.6.8。
 
1、進入圖形配置界面,選擇支持usb模塊所需要的庫(kmod-usb2  kmod-usb-core kmod-usb-ohci kmod-usb-serial  kmod-usb-serial-options  libusb kmod-usb-acm    usb-modeswitch usb-modeswitch-data ),具體位置為:
2、選擇3G撥號軟件(chat,comgt,pppd),這幾個東西折騰了我一個下午才搞明白它們的關系。首先,comgt是撥號用的,我們可以用comgt -d /dev/ttyUSBx 來測試3G SIM卡的狀態;chat是保存命令的腳本,在pppd的options配置文件中,需要把如圖所示:
chat的位置(直接在network下,我這已經默認選了):
comgt位置(Utilities):
pppd位置(這個是用來撥號的進程,也是在network下的):
3、選取了以上所需要的庫,我們就開始Make吧~~~
make完之后我們就會得到:內核和文件系統,和需要的各種軟件(路徑 trunk/bin/xx/packages)啦!!因為我是以M的方式編譯各種庫的,所以有些軟件需要在燒寫內核和文件系統后再安裝(我需要安裝的comgt、pppd)。
下圖是需要安裝的一些庫和界面,反正我在研究階段是手動都安裝了一遍 T_T~~~~
4、安裝上述東東之后,就會像網上各種教程所說的那樣了~~~如:/etc/charscipt /  /etc/ppp /etc/usb_modeswtich.d/ 等文件夾。
 
#########################################我是分割線###########################################################
固件編譯完畢!進入應用階段~~~~
1、插上3G網卡(MF190)后,系統如果打印出如下信息就可以識別到網卡啦!ttyUSBx就是我們的網卡設備接口啦~~~
2、打開/etc/ppp/options 文件,修改為如下(每個網卡情況不同,需根據自己的網卡配置,這里要說的是logfile和connect,logfile這個文件在我調試過程中幫助了我不少,大家可以通過這個log了解到整個撥號的過程,以便調試。connect是指定chat腳本的位置,我是在原有默認的腳本上修改的,所以是在/etc/chatscript/3g.chat 下,當然你可以根據你自己的喜好對它進行各種命名。),具體選項意思可參考:   http://www.cnblogs.com/doctorqbw/archive/2012/06/19/2555063.html
 
3、打開/etc/chatscript/3g.chat,這里可能根據運營商的不同而需要做更改,移動的是” cmnet“,電信是”ctnet“,聯通是”3gnet“,目前我只測試了聯通的網卡,至於其它兩家運營商嘛,移動的3g速度不行,估計不考慮,電信的應該會購入了(采購過程還需”領導“多多支持吖!比如幫忙填個表什么的^_^ !)。聯通的設置如下:
4、打開 /etc/config/network添加3g網口,在調試過程中建議不要添加,可以手動命令pppd來進行撥號,修改network文件的同時還需要修改firewall才可以成功讓系統重啟后自動啟動。
5、如果是在調試過程,利用pppd來撥號后,可以通過logfile 來查看撥號過程,下圖是我成功撥號后的log,可以看到已經獲取了IP地址和DNS了,網卡名字是由network配置文件中的interface來決定的:
6、至此,我們已經可以成功撥號,並且可以在重啟時自動撥號了~~~這就夠了么?不!!我們還需要讓網卡插入后可以自動撥號!說起來好像很智能,其實很簡單,只是需要在熱拔插的配置文件中添加網口的啟動即可!打開etc/hotplug.d/usb/10-usb,配置如下:
搞定!!!收工!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM