FL2440 3G上網卡撥接,並實現mdev自動掛載

來源:互聯網
上載者:User

標籤:3g上網卡撥接   buzybox的mdev實現usb熱拔插   

___________________________________

主機作業系統:Centos 6.5
交叉編譯器環境:arm-linux-gcc-4.5.4
開發板平台: FL2440        
Linux核心版本: 3.0
songyong<[email protected]>

___________________________________

一、配置核心支援3G驅動以及PPP協議

開啟ppp相關配置:
Device Drivers  --->
    [*] Network device support  --->
     <*>   PPP (point-to-point protocol) support
          [*]     PPP multilink support (EXPERIMENTAL) 
          [*]     PPP filtering
          <*>     PPP support for async serial ports
          <*>     PPP support for sync tty ports 
開啟usb串口相關配置:
[*] USB support  ---> 
    <*>   USB Serial Converter support  --->
        [*]   USB Serial Console device support
        [*]   USB Generic Serial Driver
        <*>   USB driver for GSM and CDMA modems

自行在開發板上#lsusb 查看3G上網卡的廠商ID與裝置ID,並將其添加到usb通用驅動option.c中(因為查看之後發現option.c中並沒有我的3G上網卡資訊,所以需要自行添加。如若能通過ID找到則可不添加)

以及在在option_ids數組中添加子項

二 、交叉編譯撥號軟體ppp-2.4.5和usb_modeswitch-1.2.4及其依賴的libusb-1.0.0和libusb-compat-0.1.4

usb_modeswitch;因為3G上網卡在linux下首次插入時是處於CD-ROM模式,我們如果要pppd撥接,則需要將預設被識別為存放裝置的3g usb modem轉換為可以通訊的多個串口裝置。

usb_modeswitch-current_data.tar.bz2:這個包裡包括提供給UDEV的驅動裝置資訊,和很多裝置使用usb_mdoeswitch進行轉換模式時需要配置的參數。下載它用於參考,usb_modeswitch.conf裡面的參數就會參考到。

因為網上編譯文檔眾多,在此不贅述。只是一開始我用的是usb_modeswitch-2.2.5,編譯不通過。若只是想像我一樣玩一下的話,可換此低版本通過。

ppp-2.4.5.tar.gz  ;usb-modeswitch-1.2.4.tar.bz2 ; usb-modeswitch-data-20150627.tar.bz2 ;libusb-1.0.0.tar.bz2 

都通過之後,將ppp檔案夾中的pppd和chat放入開發板/usr/sbin目錄下;

三、配置usb_modeswitch.conf;並編寫ppp撥號指令碼

我們進入usb_modeswitch-data....../usb_modeswitch.d目錄中開啟對應ID的檔案



一開始HuaweiMode=1不通過,然後我改為0後通過。至此,到這裡我們發現12d1:1446其實並沒有什麼實際性的參考價值.....

網上的設定檔原本還有各種參數,但是又都不給出解釋。我這樣最簡陋的基本配置,所幸能使用。有更具體需求的可以自行添加。

改好之後執行: 

# mount -t usbfs usbfs /proc/bus/usb/       //掛載usb檔案系統

#/apps/3G/usb_modeswitch -c /apps/3G/usb_modeswitch.conf    //-c是指指定設定檔

如若成功:# ls  /dev/ttyUSB*  可看到USB0-3等串口裝置出現。

接下來重頭------->串口下的AT指令集

首先我們執行microcom --help ,發現-s是serial串口調試

#microcom -s 115200 /dev/ttyUSB1

這時候螢幕可能就“卡”在這,也無任何回顯。不要慌,我們敲at斷行符號等待回應

如果回應 OK則可使用串口通訊,可能可以實現撥號。

ate1斷行符號  可開啟回顯,這樣就不會沒有安全感了,不信就試試

以下是比較常用的AT命令。對於不同的廠商裝置可能AT指令不完全相同,但是大多是一致的。所以可去網上隨便找個datasheet看看。

ate0關閉
at+cgmm 可查看模組名
at+cgmr  可查看模組版本資訊
at+cgmi 可查看模組製造商
at+csq 可查看訊號強度
at+cpin? 查看SIM卡是否到位
at+creg? 查看SIM卡是否註冊上,網路註冊的情況。
at+cops? 查看SIM卡電訊廠商

對於撥號指令碼,其實大多都相同,稍加修改即可。

wcdma:

chat-wcdma-connect:


chat-wcdma-disconnect:


將這三個放到/etc/ppp/peers路徑下。

當我們的microcom -s 115200 /ttyUSB1

在at+creg?回複1或者5之後表示可以撥號了。


執行pppd call wcdma撥號


至此,3G上網卡手動實現usb_modeswitch切換串口然後ppp撥接的基本需求就完成了。

下面使用mdev自動切換.

mdev是busybox內建的一個簡化版的udev
作用是在系統啟動和熱拔插或動態載入驅動程式時,自動產生驅動程式所需的節點檔案,在檔案系統中的/dev目錄下的裝置節點都是由mdev建立的。記得一開始學習驅動的時候,當時就知道了熱拔插hotplug這個機制。簡單地說核心裡面的hotplug機智就是說當我們存在裝置熱拔插時,核心會調用使用者空間層的一些指令碼來進行處理。

==============================================================================================

busybox的mdev是一個精簡了的udev管理程式,它可以間接的以hotplug方式被核心調用,進而在arm平台上/dev目錄下動態建立裝置節點,因為hotplug會被核心發送uevent之前調用,所以如果動態可插拔裝置很多,很頻繁,那麼每次核心都會調用elf格式的使用者空間的hotplug,產生一個獨立的hotplug程式來處理,所以hotplug是一個非常笨重的實現方法,但是在我們的arm開發板上,可插拔裝置並沒有想象中的頻繁
目前還沒有必要移植完全版的udev,所以完全可以在不複雜的嵌入式裝置上使用mdev來管理動態節點==============================================================================================以上引用網上一位前輩的說法:http://blog.csdn.net/lanmanck/article/details/4558500

首先我們在製作根檔案系統的時候,需要在系統最先讀取的自啟檔案inittab或者是rsc裡面先掛載/sys和/proc檔案系統。
因為mdev的另外一個很有用的地方是,他可以通過proc和sys檔案系統來動態整理出註冊的裝置,進而到/dev/下產生他們對應的節點。但前提是使用該功能之前必須mount上proc和sys檔案系統

然後我們還需要添加最關鍵的兩句:

echo /sbin/mdev > /proc/sys/kernel/hotplug   //發現調用hotplug機制時就使用我們使用者層的應用程式/sbin/mdev來處理

mdev -s   //會掃描並自動建立相應的節點.

現在當我們出現裝置節點之後還有個設定檔mdev.conf ,裡麵包含了對相關裝置節點的具體操作。


上面是我的配置,當檢測到sg*這些裝置節點時,就執行/apps/etc/modem_hotplug這個指令碼。



因為手中就這一個3G上網卡,所以我就只是簡單的只配置了它的指令碼。如果是要普遍使用於大多數的話,還需要lsusb解析上網卡型號然後找對應的配置實現轉串口。以後工作了做到這塊了再深入研究花時間編寫吧。至此,我們就已經可以實現板子上mdev自動掛載3G上網卡了。下一步如果想要撥號之後發出熱點wifi的話也很簡單,再配置一次nat表應該就行。我這裡就不做了,開始看socket編程去咯

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

FL2440 3G上網卡撥接,並實現mdev自動掛載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.