嵌入式+Linux+wep+WiFi,基於嵌入式Linux的無線路由器設計——Bridged Adapter網橋模式...

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

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

下圖是我的嵌入式Linux設備硬件示意圖:

5787133859a0aca92b7c8d2456e3560e.png

因為采用的是橋接的方式,也就是嵌入式設備不能自己撥號,也不能自己路由。換句話說就是插入嵌入式設備的那個網線,直接插電腦就可以上網。這樣的設計主要是將有線的網絡轉成無線局域網。這里的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=wlan0

ctrl_interface=/var/run/hostapd

ssid=licaibiao_debug

channel=6

wpa=2

wpa_passphrase=87654321

bridge=br0

##### Wi-Fi Protected Setup (WPS) #############################################

eap_server=1

# WPS state

# 0 = WPS disabled (default)

# 1 = WPS enabled, not configured

# 2 = WPS enabled, configured

wps_state=2

uuid=12345678-9abc-def0-1234-56789abcdef0

# Device Name

# User-friendly description of device; up to 32 octets encoded in UTF-8

device_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 = 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 methods

config_methods=label display push_button keypad

##### default configuration #######################################

driver=rtl871xdrv

beacon_int=100

hw_mode=g

ieee80211n=1

wme_enabled=1

ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]

wpa_key_mgmt=WPA-PSK

wpa_pairwise=CCMP

max_num_sta=8

wpa_group_rekey=86400

本文參考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值