其实AP模式和STA模式的驱动不是同一个文件,我也是找了好久才找到的。现在分享一个链接
tar -xjf 2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2
mv 2010_0203_RT3070_SoftAP_v2.4.0.1_DPA rt3070_AP
平台选择pc
修改交叉编译器路径和内核路径
1.2.3编译内核,加载驱动
出现的错误与STA模式相同,此处不再赘述,错误参见STA模式移植文档。
拷贝RT2870AP.dat文件
cp /RT2870AP.dat etc/Wireless/RT2870AP/RT2870AP.dat
拷贝固件 rt2870.bin /lib/firmware目录下
insmod rtutil3070ap.ko
insmod rt3070ap.ko
insmod rtnet3070ap.ko
mkdir install
./configure --prefix=/home/pikaqiu/tools/WIFI/libnl-1.1/install (安装路径) --host=arm-linux (指定平台)
make CC= arm-linux-gcc(注意这种方式要把交叉编译器的路径设置为系统变量)
make install
将install目录下的文件放进开发板的lib目录下
指定安装路径
指定交叉编译器
编译
Make
将libary下的库文件拷贝到开发板的lib目录下
指定libnl 和openss头文件位置和文件路径
make CC=arm-linux-gcc
interface=wlan0 //指定网口
driver=nl80211 //
ssid=My //显示的wifi名字
channel=3
hw_mode=g
ignore_broadcast_ssid=0
auth_algs=1
wpa=3
wpa_passphrase=11111111 //密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
4.5 开启wifi
hostapd -B etc/hostapd.conf
5.1将busybox的udhcpd配置文件进行修改:
文件所在目录为/home/zhanghaijun/fl2440/3rdparty/busybox-1.20.2/examples/udhcp/
在配置之前一定要设置wlan0 的ip地址,否则会出错
ifconfig wlan0 192.168.2.1 netmask 255.255.255.0 up
uducpd -f udhcpd.conf
./configure --host=arm-linux --enable-static --disable-shared --prefix=/home/zhanghaijun/fl2440/driver/iptables/iptables-1.4.11/install --disable-ipv6 --disable-largefile
make CC=arm-linux-gcc
make install (这个如果出错,切换到root用户模式)
首先要对文件进行改名
mv xtables-multi iptables
拷贝文件到开发板bin目录
参考博客http://blog.chinaunix.net/uid-26495963-id-3279216.html
http://www.linuxso.com/linuxpeixun/10332.html
① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
1.PREROUTING (路由前)
2.INPUT (数据包流入口)
3.FORWARD (转发管卡)
4.OUTPUT(数据包出口)
5.POSTROUTING(路由后)
1.filter 定义允许或者不允许的
2.nat 定义地址转换的
3.mangle功能:修改报文原数据
iptables [-t table] COMMAND chain CRETIRIA -j ACTION
-t table :3个filter nat mangle
COMMAND:定义如何对规则进行管理
chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的
CRETIRIA:指定匹配标准
-j ACTION :指定如何进行处理
链管理命令
-P :设置默认策略的
iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的
-F: FLASH,清空规则链的
iptables -t nat -F 清空nat表的所有链
-Z:清空链
规则管理命令
-A:追加,在当前链的最后新增一个规则
-I num : 插入,把当前规则插入为第几条。
-R num:Replays替换/修改第几条规则
-D num:删除,明确指定删除第几条规则
通用匹配:源地址目标地址的匹配
-s:指定作为源地址匹配,这里不能指定主机名称,必须是IP
-d:表示匹配目标地址
-p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)
-i eth0:从这块网卡流入的数据,流入一般用在INPUT和PREROUTING上
-o eth0:从这块网卡流出的数据,流出一般在OUTPUT和POSTROUTING上
--sport源端口
--dport目的端口,端口必须和协议一起来配合使用
常用的ACTION:
DROP:悄悄丢弃,一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表
REJECT:明示拒绝
ACCEPT:接受
custom_chain:转向一个自定义的链
DNAT
SNAT
MASQUERADE:源地址伪装
REDIRECT:重定向:主要用于实现端口重定向
由下图可知目的地址不是本开发板的ip地址将通过FORWARD转发出去,所以要在FORWARD这条链上将wlan0的数据转发到eth0
iptables -A FORWARD -i wlan0 -o eth0 -j accept
对于将要转发的数据需要经过POSTROUTING ,需要将数据包进行伪装
iptables -t nat -o eth0 -j MASQUERADE
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
(允许已建立连接的通行,ESTABLISHED表示已经通过“握手”建立的连接。
RELATED表示由已建立的连接(ESTABLISHED)产生的一个新的连接。
)