基于嵌入式Linux的无线路由器设计——Bridged Adapter网桥模式

本文主要是介绍基于嵌入式Linux的无线路由器设计——Bridged Adapter网桥模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 现在嵌入式设备联网,主要有两种模式:以太网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=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>-<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 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


本文参考:

    usb wifi移植

    Linux下搭建网桥及脚本编写

    快速理解VirtualBox的四种网络连接方式
 ———————————————— 
版权声明:本文为CSDN博主「li_wen01」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/li_wen01/article/details/77918700

这篇关于基于嵌入式Linux的无线路由器设计——Bridged Adapter网桥模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733866

相关文章

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将