<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式Linux系統的3G/4G路由器設計

基于嵌入式Linux系統的3G/4G路由器設計

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

首先需要將usb- modeswitch工具移植至開(kāi)發(fā)板,移植過(guò)程如下:

① 下載并解壓usb-modeswitch一1.2.5.tar.bz2。

② 進(jìn)入usb-modeswitch目錄,修改Makefile,指定交叉編譯器:

CC = arm-none-linux-gnueabi - gcc

$(PROG):(OBJS)(CC) - o $(PROG)(OBJS)

(CFLAGS)… 。 - I/home/libusb- 0.1.12/instal1/inc1ude

(LIB) … 。 - L/home/libusb- 0.1.12/install/lib

③ make。

將生成的usb_modeswitch二進(jìn)制執行文件拷人中,并修改usb_modeswitch目錄下usb_mode- switch.conf配置文件,在該文件末添加該無(wú)線(xiàn)上網(wǎng)卡的VID設備號和其usb-storage子設備PID設備號,然后指定其modern子設備號。具體配置信息如下:

Default Vendor = 12D1

Default Product = 1446

Target Vendor = 12D1

Target Product = 1506

CheckSuccess = 20

HuaweiMode = O

通過(guò)命令usb_modeswitch - W - c usb_modeswitch.conf對無(wú)線(xiàn)上網(wǎng)卡進(jìn)行USB設備的模式轉換,轉換成功后無(wú)線(xiàn)上網(wǎng)卡即工作在調制解調器模式下,同時(shí)可通過(guò)命令 ls/dev可以查看到生成4個(gè)虛擬USB轉串口設備,即ttyUSB0,ttyUSB1,ttyUSB2和ttyUSB3,可以通過(guò)這幾個(gè)串口進(jìn)行PPP撥號,使得3G/4G可以接至TD-SCDMA、WCDMA以及TD-LTE實(shí)驗網(wǎng)中。

3.2 無(wú)線(xiàn)局域網(wǎng)的組建

該無(wú)線(xiàn)利用無(wú)線(xiàn)網(wǎng)卡在嵌入式中組建一個(gè)小型的無(wú)線(xiàn)局域網(wǎng),一方面提供給智能終端等設備接入,另一方面將無(wú)線(xiàn)局域網(wǎng)接入至3G/4G 網(wǎng)絡(luò )。其基本流程如圖4所示。

無(wú)線(xiàn)局域網(wǎng)組建流程圖

圖4 無(wú)線(xiàn)局域網(wǎng)組建流程圖

3.2.1 無(wú)線(xiàn)網(wǎng)卡驅動(dòng)加載

TL-WN821N 型無(wú)線(xiàn)網(wǎng)卡采用的WLAN芯片組為Realtek公司的提供的RTI 8192cu芯片,Realtek公司提供了基于Linux系統的該芯片組驅動(dòng)源碼,根據 編譯環(huán)境及Linux內核對驅動(dòng)源碼進(jìn)行編譯,即可生成該無(wú)線(xiàn)USB網(wǎng)卡的驅動(dòng)。具體步驟如下:

① 下載驅動(dòng)源碼rtl8188c 8192c usb linux - v3.4.4- 4749.2.121105.tar.gz,并解壓。

② 進(jìn)入到驅動(dòng)源碼包中,修改Makefile文件,指定編譯環(huán)境及Linux內核:

CONFIG_PLATFORM_NEW = y

ifeq($(CONFIG_PLATFORM_NEW ),y)

EXTRA_CFLAGS + = - DCONFIG_LLTTLE_ENDIAN

ARCH :arm

CROSS_COM PILE := arm-none-linux-gnueabi-

KSRC=/home/linux-2.6.32-devkit8500

endif

③ make,生成該無(wú)線(xiàn)網(wǎng)卡的驅動(dòng)8192cu.ko。

然后加載該驅動(dòng),再通過(guò)命令ifconfig wlan0 up,將無(wú)線(xiàn)網(wǎng)卡的網(wǎng)口wlan0掛載至Linux系統中,可通過(guò)ifconfig命令查看該網(wǎng)口的基本配置信息。

3.2.2 AP模式轉換

將無(wú)線(xiàn)網(wǎng)卡驅動(dòng)加載成功之后,該無(wú)線(xiàn)網(wǎng)卡的默認工作模式為工作站模式,即作為客戶(hù)端搜索周?chē)臒o(wú)線(xiàn)接人點(diǎn),以接人到其他的無(wú)線(xiàn)局域網(wǎng)中,而 3G/4G需要利用無(wú)線(xiàn)網(wǎng)卡的模式轉換工具hostapd將該網(wǎng)卡的工作模式由工作站模式切換為AP模式,也稱(chēng)接入點(diǎn)模式,并利用該模式建立一個(gè)無(wú)線(xiàn)局域網(wǎng)。hostapd在Linux系統中的移植過(guò)程如下:

① 下載并解壓hostapd_0.8_rtw_20120803.zip。

② 進(jìn)入主目錄,修改Makefile,指定交叉編譯器:

CC = arm-none-linux-gnueabi-gcc

③ make。

生成hostapd、hostapd_cli,將這兩個(gè)二進(jìn)制文件和rtl_hostapd.conf復制到嵌入式Linux系統中。在 rtl_hostapd.conf配置文件中,可以設置該無(wú)線(xiàn)網(wǎng)卡的服務(wù)集標識(SSID)、支持的802.11協(xié)議版本、工作頻率、無(wú)線(xiàn)信道以及加密的方式等一系列該無(wú)線(xiàn)局域網(wǎng)的配置信息。通過(guò)執行命令hostapd rtl_hostapd.conf-B,完成該無(wú)線(xiàn)網(wǎng)卡的工作模式的切換。

3.2.3 DHCP配置

在無(wú)線(xiàn)網(wǎng)卡的AP模式切換完成之后,需要通過(guò)DH-CP協(xié)議配置該無(wú)線(xiàn)局域網(wǎng)的動(dòng)態(tài)地址池及其網(wǎng)關(guān),該無(wú)線(xiàn)局域網(wǎng)會(huì )根據DHCP協(xié)議從配置的地址池中,自動(dòng)給接入到該無(wú)線(xiàn)局域網(wǎng)的智能終端等設備分配一個(gè)IP地址。其DHCP協(xié)議的配置文件dhcp.conf具體如下:

start 192.168.0.20

end 192.168.0.254

interface wlan0

opt dns 8.8.4.4

opt subnet 255.255.255.0

opt router 192.168.0.1

opt lease 864000

然后在Linux系統中執行udhcp-fS dhcp.conf,啟動(dòng)DHCP協(xié)議。之后該無(wú)線(xiàn)網(wǎng)卡會(huì )建立一個(gè)無(wú)線(xiàn)局域網(wǎng),并給接入到此無(wú)線(xiàn)局域網(wǎng)中的智能終端等設備自動(dòng)分配一3.3 iptables連通

在實(shí)現3G/4G 網(wǎng)絡(luò )的接人和無(wú)線(xiàn)局域網(wǎng)的組建之后,該路由器采用Linux系統中的IP信息報過(guò)濾系統,即iptables,將3G/4G網(wǎng)絡(luò )和組建好的無(wú)線(xiàn)局域網(wǎng)連通。iptables系統需要Linux系統內核中的網(wǎng)絡(luò )數據包過(guò)濾框架的支持,需要重新配置內核,選中內核中Networking Support → Networking options → Network packet filtering framework,將其框架編譯進(jìn)Linux內核,然后需要對iptables進(jìn)行移植,其移植過(guò)程如下:

① 下載并解壓iptablesj.4.3.1.tar.gz。

② 進(jìn)入主目錄,配置編譯選項:

。 /configure-prefix=/usr/local/iptables--host = arm-none-linux-gnueabi--with-curnel=/home/SD_tools/linux-2.6.32-devkit85O0

③ make并make install。

將生成的iptahles二進(jìn)制執行文件復制到Linux系統中,并編寫(xiě)iptables系統的運行腳本文件net-share,該運行腳本文件配置了IP數據包的流向、進(jìn)入網(wǎng)絡(luò )的接口等一系列規則,該路由器進(jìn)入3G/4G 網(wǎng)絡(luò )的接口為無(wú)線(xiàn)上網(wǎng)卡進(jìn)行撥號后產(chǎn)生的pppO網(wǎng)絡(luò )接口,其內容如下:

echo“1”》 /pr0c/sys/net/ipv4/ip- forward

iptables-F

iptables-P INPUT ACCEPT

iptables-P OUTPUT ACCEPT

iptables-P FORW ARD ACCEPT

iptables-t nat-A POSTROUTING -o ppp0-j MASQUERADE



關(guān)鍵詞: 路由器 Linux系統

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>