基於嵌入式Linux的無線路由器設計——Bridged Adapter橋接器模式__Linux

來源:互聯網
上載者:User

    現在嵌入式裝置連網,主要有兩種模式:乙太網路RJ-45 介面直接插網線上網;3G/4G 模組撥接。隨著無線終端裝置的不斷普及,手機平板等無線裝置對網路的需求也日益增加。本篇文章主要介紹基於嵌入式Linux的無線路由器設計,以橋接的方式訪問網路。該方式適合不需要撥號的裝置使用,也就是直接插網線就可以連網。基於3G/4G 這種撥號方式的設計將在下篇文章中介紹。

    常見的網路連接方式,部落格http://www.cnblogs.com/york-hust/archive/2012/03/29/2422911.html 有一個比較好的介紹。

    下圖是我的嵌入式Linux裝置硬體示意圖:


    因為採用的是橋接的方式,也就是嵌入式裝置不能自己撥號,也不能自己路由。換句話說就是插入嵌入式裝置的那個網線,直接插電腦就可以上網。這樣的設計主要是將有線網路轉成無線區域網路。這裡的WiFi 模組,通過USB匯流排與嵌入式Linux通訊。

核心配置:

    核心配置的時候 802.1d Ethernet Bridging  和IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP) 需要選上,使核心支援橋接,同時需要WiFi支援AP功能。

WiFi驅動移植

  WiFi驅動的移植還是比較簡單的,下載源碼交叉編譯就可以了。我使用的是RTL8188C,直接編譯成模組8192cu.ko  這裡需要多注意一點,應為在編譯模組的時候是需要指定Linux核心代碼路徑的,當你的核心網路設定發生改變的時候,你的驅動需要重新編譯一下,不然可能會出現一些記憶體溢出的問題。

hostapd 移植:

        hostapd 是 Host Access Point 守護進程,能夠使得無線網卡切換為master模式,類比AP(通常可以認為是路由器)功能,也就是我們說的軟AP(Soft AP)。它的移植和配置可以參考http://www.cnblogs.com/zhuwenger/archive/2011/03/11/1980294.html


啟動嵌入式裝置進行設定:

1.載入驅動

    insmod 8192cu.ko

2.啟動WiFi網路介面

    ifconfig wlan0 up                       

3.建立一個虛擬橋接器

    brctl addbr br0

4.將有線網介面和無線網介面都添加到虛擬橋接器上

    brctl addif br0 eth0
    brctl addif br0 wlan0

5.清除有線網口和無線網口網路設定(因為所有的資料都是通過虛擬網路介面收發)

    ifconfig eth0 0.0.0.0
    ifconfig wlan0 0.0.0.0

6.啟動虛擬網路介面

    ifconfig br0 up

7.配置虛擬網口IP地址和子網路遮罩

    ifconfig br0 192.168.2.2 netmask 255.255.255.0

8.配置預設閘道(重要)

    route add default gw 192.168.2.254

9.啟動WiFi的AP功能

    ./hostapd hostapd.conf -B

在這裡有幾點需要注意:

    a.上面第7點,設定IP和子網路遮罩的時候,需要跟你路由器(上面示意圖路由器A)的IP在同一個網段。預設閘道也是需要跟路由器A的設定一樣。因為通過橋接的方式連網,串連到br0上的裝置,在路由器中都將被識別為一台實際的裝置。也就是說路由器A中的其他裝置也都能訪問到br0中的裝置。在這種方式下,串連到WiFi中的裝置,它們的IP實際上是由路由器A分配的,所以在這裡,我們可以不用設定dhcp來為WiFi動態分配IP

    b.在./hostapd hostapd.conf -B 命令中 -B是指在後台運行。WiFi的一些參數是在hostapd.conf中設定的,比如WiFi名字ssid,WiFi通道等。我的hostapd.conf 設定檔如下:

##### hostapd configuration file ##############################################interface=wlan0ctrl_interface=/var/run/hostapdssid=licaibiao_debugchannel=6wpa=2wpa_passphrase=87654321bridge=br0##### Wi-Fi Protected Setup (WPS) #############################################eap_server=1# WPS state# 0 = WPS disabled (default)# 1 = WPS enabled, not configured# 2 = WPS enabled, configuredwps_state=2uuid=12345678-9abc-def0-1234-56789abcdef0# Device Name# User-friendly description of device; up to 32 octets encoded in UTF-8device_name=RTL8192CU# Manufacturer# The manufacturer of the device (up to 64 ASCII characters)manufacturer=Realtek# Model Name# Model of the device (up to 32 ASCII characters)model_name=RTW_SOFTAP# Model Number# Additional device description (up to 32 ASCII characters)model_number=WLAN_CU# Serial Number# Serial number of the device (up to 32 characters)serial_number=12345# Primary Device Type# Used format: <categ>-<OUI>-<subcateg># categ = Category as an integer value# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for#       default WPS OUI# subcateg = OUI-specific Sub Category as an integer value# Examples:#   1-0050F204-1 (Computer / PC)#   1-0050F204-2 (Computer / Server)#   5-0050F204-1 (Storage / NAS)#   6-0050F204-1 (Network Infrastructure / AP)device_type=6-0050F204-1# OS Version# 4-octet operating system version number (hex string)os_version=01020300# Config Methods# List of the supported configuration methodsconfig_methods=label display push_button keypad##### default configuration #######################################driver=rtl871xdrvbeacon_int=100hw_mode=gieee80211n=1wme_enabled=1ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]wpa_key_mgmt=WPA-PSKwpa_pairwise=CCMPmax_num_sta=8wpa_group_rekey=86400


本文參考:

    usb wifi移植

    Linux下搭建橋接器及指令碼編寫

    快速理解VirtualBox的四種網路連接方式



    


    

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.