开发板支持wifi
参考网址: http://wangye.org/blog/archives/845/
http://blog.csdn.net/lme525/article/details/37762519
http://blog.sina.com.cn/s/blog_6e228288010153uq.html
通过命令启用hostapd热点时,需要将手机设置为静态ip才能认证通过
参照以下方法:
wpa_supplicant 和hostapd可能需要 openssl libnl 所以需要先交叉编译这两个工具
1)
openssl-1.0.2e 交叉编译方法
tar -xf openssl-1.0.2e.tar.gz
cd openssl-1.0.2e
AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib CC=mipsel-linux-gcc /usr/bin/perl ./Configure shared linux-generic32 --prefix=/home/loongson/tools/wpa_supplicant/install
make
make install
说明:
AR/RANDLIB/CC 环境变量 是确保Makefile中使用mipsel-linux 系列工具
/usr/bin/perl ./Configure 表示执行perl脚本
Configure 注意第一个字母是大写
shared 表示要编译动态库,
linux-generic32 表示生成目标平台名称
--prefix 指明安装目录.
2)
libnl-1.1.4 交叉编译方法
tar -xf libnl-1.1.4.tar.gz
./configure --prefix=/home/loongson/tools/wpa_supplicant/install CC=mipsel-linux-gcc --host=mips
make
make install
说明:
libnl的最新版本是libnl-3.x 但是在编译wpa_supplicant时需要用到某个头文件,只有libnl-1.1.4提供,所以使用libnl-1.1.4
3)
wpa_supplicant-2.5 交叉编译方法
tar -xf wpa_supplicant-2.5.tar.gz
cd wpa_supplicant-2.5/wpa_supplicant
创建配置文件:cp defconfig .config
修改配置文件.config :
CFLAGS += -I/home/loongson/tools/wpa_supplicant/install/include
LIBS += -L/home/loongson/tools/wpa_supplicant/install/lib
LIBS_p += -L/home/loongson/tools/wpa_supplicant/install/lib
LIBS_c += -L/home/loongson/tools/wpa_supplicant/install/lib
CC = mipsel-linux-gcc
CONFIG_TLS=openssl
make
4)
最后把编译出来的 wpa_cli wpa_supplicant wpa_passphrase 复制到开发板的根文件系统
把/home/loongson/tools/wpa_supplicant/install/lib/目录下的 libcrypto.* libnl.* libssl.*库文件复制到开发板的根文件系统 的/lib下
5)
无线网卡配置例子
/* 无线网卡设置 */
wpa_passphrase "Loongson-Product" loongson425 > /tmp/supplicant.conf
ifconfig wlan0 up
wpa_supplicant -B -Dwext -iwlan0 -c /tmp/supplicant.conf
udhcpc -b -i wlan0
ifconfig wlan0 192.168.2.144
route add default gw 192.168.2.1
ping 192.168.2.1
自动获取ip
从Busybox的examples/udhcp/下复制 simple.script文件到开发板/usr/share/udhcpc/下,并重命名为default.script,然后更改文件default.script的权限,
chmod a+x default.script
wpa_passphrase "Loongson-Product" loongson425 > /tmp/supplicant.conf
wpa_supplicant -B -Dwext -iwlan0 -c /tmp/supplicant.conf
udhcpc -i wlan0
6)
hostapd 交叉编译方法
tar -xf hostapd-2.5.tar.gz
cd hostapd-2.5/hostapd
cp defconfig .config
修改.config文件,添加
CFLAGS += -I/home/loongson/tools/wpa_supplicant/install/include
LIBS += -L/home/loongson/tools/wpa_supplicant/install/lib
LIBS_p += -L/home/loongson/tools/wpa_supplicant/install/lib
LIBS_c += -L/home/loongson/tools/wpa_supplicant/install/lib
CC = mipsel-linux-gcc
CONFIG_DRIVER_WIRED=y
CONFIG_TLS=openssl
make
生成hostapd和hostapd.conf文件,复制到开发板的根文件系统,库文件同wpa_passphrase
1.
hostapd.conf放到开发板根文件系统的/etc目录下
把原来hostapd.conf文件的内容清空,hostapd.conf配置文件修改如下
interface=wlan0
driver=nl80211
ssid=DMF_WiFi
channel=3
hw_mode=g
ignore_broadcast_ssid=0
auth_algs=1
wpa=3
wpa_passphrase=87654321
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
2.
从busybox的examples/udhcp/下复制 udhcpd.conf文件到开发板根文件系统的/etc目录下
udhcpd.conf配置文件根据实际使用修改,如
start192.168.0.20
end192.168.0.254
interfacewlan0
optdns192.168.10.2 192.168.10.10
optionsubnet255.255.255.0
optrouter192.168.10.2
optwins192.168.10.10
一般修改这几个就可以
3.
开发板的根文件系统的/var/lib/misc/目录下添加 udhcpd.leases文件,udhcpd在执行的时候可能会提示没有一个叫做udhcpd.release的租赁文件,这个只要在相应的文件夹下创建即可
4.
最后执行
hostapd -B /etc/hostapd.conf
ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 (先把要接入点设备设置好,否则其他无线网卡接入到该ap时会分配不到地址)
udhcpd /etc/udhcpd.conf
则可以实现wifi热点的启用
要实现开发板wifi_ap访问外网,则需要以下操作:
开发板eth1连接路由器,路由器可以访问外网,路由器网关是:192.168.2.1 DNS:192.168.1.1
1)
首先使开发板的eth1可以访问外网
自动获取ip
udhcpc -i eth1
ping www.baidu.com
ping通,说明可以访问外网
2)
wifi设置为ap模式,这里使用的是rt3070的usb wifi
hostapd -B /etc/hostapd.conf
ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 (先把要接入点设备设置好,否则其他无线网卡接入到该ap时会分配不到地址)
udhcpd /etc/udhcpd.conf
hostapd.conf配置文件内容:
interface=wlan0
driver=nl80211
ssid=DMF_WiFi
channel=3
hw_mode=g
ignore_broadcast_ssid=0
auth_algs=1
wpa=3
wpa_passphrase=87654321
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
udhcpd.conf配置文件内容(修改的部分):
start192.168.0.20
end192.168.0.254
interfacewlan0
optdns192.168.2.1 192.168.2.1 #这里是路由的网关地址?不是DNS:192.168.1.1?
optionsubnet255.255.255.0
optrouter192.168.0.1
optwins192.168.0.1
3)
设置iptables wlan0的访问转发到eth1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth1 -o wlan0 -m state --state RELATED,ESTABLISH -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
文档的下载及文件下载:http://pan.baidu.com/s/1ntsvbb7#path=%252Floongson1%252Ftools%252Fwifi