这里以在MYD-SAM9X5(其他板子类似)上使用 MY-WF003U USB WIFI 模块做 WIFI 热点为例,说 USB WIFI 模块软AP 功能的使用。 开发板的 eth0 连接外网,使用 udhcpd 来做 dhcp 服务器,iptables 转发WIFI模块和 eth0 的数据,来自手机或其它无线设备可以连接上该 WIFI 模块,并从该模块获取得到 ip、dns 等相关的网络配置,然后达到连接到网络的功能。
网配置信息 Eth0 网段: 192.168.1.0 网关: 192.168.1.1 DNS: 202.96.128.86
DNS设置方法,将”nameserver 202.96.128.86“写入/etc/resolv.conf文件,然后重启网络: [mw_shl_code=bash,true]echo "nameserver 202.96.128.86" > /etc/resolv.conf
/etc/init.d/networking restart[/mw_shl_code] 注意,nameserver的值根据自己网络情况而定。
Wlan0 网段: 192.168.2.0 IP: 192.168.2.1
使用步骤 1、插入 USB WIFI 模块驱动。 [mw_shl_code=bash,true]insmod 8192cu.ko[/mw_shl_code] 如果出现以下提示信息,属于正常:
[mw_shl_code=bash,true]Disabling lock debugging due to kernel taint
usbcore: registered new interface driver rtl8192cu[/mw_shl_code]
2、配置wlan0 的 IP 地址 [mw_shl_code=bash,true]
ifconfig wlan0 192.168.2.1 netmask 255.255.255.0
[/mw_shl_code]
3、交叉编译 hostapd(源码在 WIFI 模块光盘中配有),并将hostapd 复制到开发板。 [mw_shl_code=bash,true]cp hostapd /usr/sbin
[/mw_shl_code]
4、在开发板上正确配置 /etc/hostapd.conf 文件(没有则新建),该文件的内容参考配置如下(热点名:MY-HOSTAP,密码:11111111,可根据实际情况进行修改): [mw_shl_code=bash,true]interface=wlan0
ssid=MY-HOSTAP
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=11111111
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
driver=rtl871xdrv
ieee80211n=1
device_name=RTL8192CU
manufacturer=Realtek
hw_mode=g[/mw_shl_code]
5、在开发板上正确配置 /etc/udhcpd.conf 文件(没有则新建),该文件的参考配置如下,可根据实际情况进行修改: [mw_shl_code=bash,true]start 192.168.2.2
end 192.168.2.100
interface wlan0
max_leases 20
remaining yes
auto_time 7200
decline_time 3600
conflict_time 3600
offer_time 60
min_lease 60
lease_file /etc/udhcpd.leases
opt dns 202.96.128.86 #192.168.1.2 192.168.1.10
option subnet 255.255.255.0
opt router 192.168.2.1
option domain local[/mw_shl_code]
6、如果/etc目录下没有 /etc/udhcpd.leases 文件,使用如下命令创建: [mw_shl_code=bash,true]touch /etc/udhcpd.leases[/mw_shl_code] 启动 DHCP 服务器: [mw_shl_code=bash,true]udhcpd -fS /etc/udhcpd.conf&[/mw_shl_code]
7、设置IP路由规则: [mw_shl_code=bash,true]iptables -A FORWARD -s 192.168.2.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.4.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o eth0 -j MASQUERADE[/mw_shl_code]
提示:如果没有 iptables 命令,请先移植 iptables 到目标板上。
查看路由设置是否成功(显示如下信息表示设置成功): [mw_shl_code=bash,true]$ iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.2.0/24 0.0.0.0/0
Chain OUTPUT (policy ACCEPT)
target prot opt source destination[/mw_shl_code]
8、启用IP转发功能 [mw_shl_code=bash,true]echo 1 >/proc/sys/net/ipv4/ip_forward[/mw_shl_code]
9、启动 hostapd: [mw_shl_code=bash,true]hostapd -B /etc/hostapd.conf[/mw_shl_code]
10、以上步骤都完成后,使用WIFI设备可以搜索到名为“MY-HOSTAP” 的热点,连接到该热点即可访问外网。
|