fl2440开发板 rt3070芯片——AP模式

-------------------------------------------------------------------------
Cross compiler:arm-linux-gcc-4.5.4
Linux kernel version:linux-3.0
Development board:fl2440
Author:  Yuzhonghan <754270866@qq.com>

-----------------------------------------------------------------------

这篇博文是介绍fl2440开发板rt3070芯片工作在AP模式

1. 配置内核的支持

[*] Networking support  --->
Networking options  --->

<*> Packet socket
<*> Unix domain sockets
< > PF_KEY sockets
[*] TCP/IP networking  
[*]   IP: multicasting
[ ]   IP: advanced router
[*]   IP: kernel level autoconfiguration
[*]     IP: DHCP support 
[*]     IP: BOOTP support
 [*]     IP: RARP support 
[*]   IP: multicast routing
 
<*>RF switch subystem support  ---->
[*] Network packet filtering framework (Netfilter)  --->
--- Network packet filtering framework (Netfilter)

 [ ]   Network packet filtering debugging

[*]   Advanced netfilter configuration    
Core Netfilter Configuration  --->下面的不选

< > Transparent proxying support (EXPERIMENTAL)
 < >   set target and match support
< >   CHECKSUM target support
< >   "CLASSIFY" target support
< >   "CT" target support
< >   "DSCP" and "TOS" target support
< >   "NOTRACK" target support 
< >   "TRACE" target support

<*>   IP set support  ---> <*>  

 --- IP set support

(256) Maximum number of IP sets 

<*>   bitmap:ip set support 

<*>   bitmap:ip,mac set support

<*>   bitmap:port set support 

<*>   list:set set support 

  IP virtual server support  --->以下不选择

 --- IP virtual server support  

[ ]   IP virtual server debugging

[ ]   SCTP load balancing support

< >   FTP protocol helper

< >   SIP persistence engine

 IP: Netfilter Configuration  --->全选

2.移植Openssl-0.9.8e
下载地址 http://www.openssl.org/source/old/0.9.x/

解压并修改Makefile(一定要严格按照makefile的格式)

 29 INSTALLTOP=/home/Ciel/fl2440/3rdparty/rt3070/openssl/openssl-0.9.8e/install

 62 CC= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc
 63 CFLAG= -O
 64 DEPFLAG= -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_GMP -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779
 65 PEX_LIBS=
 66 EX_LIBS=
 67 EXE_EXT=
 68 ARFLAGS=
 69 AR=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ar $(ARFLAGS) r
 70 RANLIB= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ranlib

接着 mkdir install

make 

make install 

如果是权限不够就使用sudo命令

3.移植libnl-1.1.4

下载地址http://www.infradead.org/~tgr/libnl/ 

解压安装

./configure --prefix=/home/Ciel/fl2440/3rdparty/rt3070/libnl-1.1.4/install --host=arm-linux

make CC= /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc

make install

这里得到文件 libnl.so.1  ,需要将这个文件tftp到开发板上,放到   /lib  目录下

4.0 移植Hostapd-1.0.tar.gz

下载地址:http://download.chinaunix.net/download.php?id=40061&ResourceID=4450

解压并修改Makefile 和.config

Makefile的修改:

 12 CFLAGS += -I/home/Ciel/fl2440/3rdparty/rt3070/libnl-1.1.4/install/include
 13 CFLAGS += -I/home/Ciel/fl2440/3rdparty/rt3070/openssl/openssl-0.9.8e/install/include/
 14 LIBS +=-L/home/Ciel/fl2440/3rdparty/rt3070/libnl-1.1.4/install/lib/
 15 LDFLAGS +=-L/home/Ciel/fl2440/3rdparty/rt3070/libnl-1.1.4/install/lib/
 16 LIBS +=-L/home/Ciel/fl2440/3rdparty/rt3070/openssl/openssl-0.9.8e/install/lib/
 17 LDFLAGS +=-L/home/Ciel/fl2440/3rdparty/rt3070/openssl/openssl-0.9.8e/install/lib/

.config 修改:

 22 # Driver interface for drivers using the nl80211 kernel interface
 23 CONFIG_DRIVER_NL80211=y

make CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-inux-gcc

make install

PS: 如果不能成功的 make ,就要仔细的查看你前面移植的libnl-1.1.4 和Openssl-0.9.8e 是否错误,或者是Makefile编译的路径不对。

得到了hostapd和配置文件hostapd.conf,需要tftp到你的开发板上。 hostapd 需要到  /bin 目录下

修改 hostapd.conf:

interface=wlan0   
driver=nl80211
ssid=yuzhonghan
channel=3
hw_mode=g
ignore_broadcast_ssid=0
auth_algs=1
wpa=3
wpa_passphrase=123456789   
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

PS:这是本人的配置,如需要进行相关了解配置方面的信息

请参考如下网址信息:

http://www.linuxidc.com/Linux/2012-12/75869.htm
http://blog.sina.com.cn/s/blog_8f5893e501016kd8.html

5.在板子上执行hostapd -B hostapd.conf 

>: hostapd -B hostapd.conf 
Configuration file: hostapd.conf
phy0 -> rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'.
phy0 -> rt2x00lib_request_firmware: Info - Firmware detected - version: 0.36.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 0 - CWmin: 3, CWmax: 4, Aifs: 2, TXop: 102.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 1 - CWmin: 4, CWmax: 5, Aifs: 2, TXop: 188.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 2 - CWmin: 5, CWmax: 10, Aifs: 3, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 3 - CWmin: 5, CWmax: 10, Aifs: 7, TXop: 0.
Using interface wlan0 with hwaddr 00:24:25:50:a9:4d and ssid 'yuzhonghan'
random: Cannot read from /dev/random: Resource temporarily unavailable
random: Only 0/20 bytes of strong random data available from /dev/random
random: Not enough entropy pool available for secure operations
WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 0 - CWmin: 2, CWmax: 3, Aifs: 1, TXop: 47.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 1 - CWmin: 3, CWmax: 4, Aifs: 1, TXop: 94.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 2 - CWmin: 4, CWmax: 6, Aifs: 3, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 3 - CWmin: 4, CWmax: 10, Aifs: 7, TXop: 0.

PS:若出现读取random随机数错误,可采用符号链接的方法解决:
mv /dev/random /dev/random.org
ln -s /dev/urandom /dev/random 

6.修改 /opt/busybox-1.20.2/examples/udhcp/udhcpd.conf 然后拷贝到开发板/etc目录下

更改配置如下:

# The start and end of the IP lease block
start           192.168.3.20
end             192.168.3.254
# The interface that udhcpd will use
interface       wlan0
# Examples:                                           
opt     dns     8.8.8.8                               
option  subnet  255.255.255.0                      
opt     router  192.168.3.1 

>: ifconfig wlan0 192.168.3.1 netmask 255.255.255.0 //设置你的IP地址和子网掩码
>: udhcpd -f etc/udhcpd.conf 
udhcpd (v1.20.2) started
Sending OFFER of 192.168.3.20 //这时候就是已经连上你开发板的wifi
Sending ACK to 192.168.3.20 //此时还不能上网!!!

可以试着 ping 192.168.3.20 看看是否能连接。

7.移植 iptables (关于iptables的相关知识,有兴趣可以去了解,在此不做说明 )

下载地址:http://www.netfilter.org/projects/iptables/downloads.html

建议选用 iptables-1.4.12.tar.bz2 ,解压

mkdir install

./configure  --host=arm-linux --enable-static --disable-shared --prefix=/home/Ciel/fl2440/3rdparty/rt3070//iptables-1.4.12/install --disable-ipv6 --disable-largefile

make CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc CFALGS=--static LDFLAGS=-static

make install

cd /install/sbin
sudo /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-strip xtables-multi

将/install/lib文件夹和xtables-multi打包放到开发板/lib和/bin目录下,赋予可执行权限后将xtables-multi改名为iptables

8.使用iptables命令接着配置nat转发表
/*将局域网内地址通过eth0接口伪装后转发出去*/
>:iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/*开启转发功能,允许已建立连接及相关连接对内转发*/
>: iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISH -j ACCEPT 
/*对外转发,数据包从wlan0流向eth0*/
>: iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

>:echo "1" >/proc/sys/net/ipv4/ip_forward

首先把你的网线连接开发板和路由器,设置ifconfig eth0 和 netmask ,使用hostapd -B hostapd.conf开通手机连接开发板的wifi,设置ifconfig wlan0 和 netmask,接着ping 路由器 和 ping 外网看是否能ping通,一定要完成 路由器和外网的 连接,不然手机连上开发板的wifi 是不能上外网的,

接着使用步骤8 的命令,最后使用 udhapd -f etc/udhapd.conf 连接。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值