IMX6 EK200 RTL8188EUS WIFI AP
主机平台: UBUNTU14.04
硬件平台:明远智睿MY-IMX6-EK200
编译器: gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz
buildroot版本:buildroot-2017.02.5.tar.bz2
内核版本 linux-3.14.52
1.内核需要配置,配置完直接编译zImage
CONFIG_CFG80211=y
CONFIG_MAC80211=y
CONFIG_HOSTAP=y
CONFIG_USB_USBNET=y
2. 编译rtl8188eus模块
源码包:rtl8188EUS_linux_v4.3.0.9_15178.20150907%28myimx6%29.tar.xz
$ tar xvf rtl8188EUS_linux_v4.3.0.9_15178.20150907%28myimx6%29.tar.xz
$ cd rtl8188EUS_linux_v4.3.0.9_15178.20150907
$ vim Makefile
修改增加(源码路径和交叉编译工具路径)
ifeq ($(CONFIG_PLATFORM_ARM_MYIMX6), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE ?= ~/IMX6/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-
KVER ?= 3.14.52
KSRC ?= /home/linyn/rs485/linux-custom
endif
vim include/autoconf.h
修改:
#define CONFIG_IOCTL_CFG80211
#ifdef CONFIG_IOCTL_CFG80211
#define RTW_USE_CFG80211_STA_EVENT
//#defineCONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER
//#define CONFIG_DEBUG_CFG80211 1
#endif
...
...
#define CONFIG_CONCURRENT_MODE
…
最后编译模块8188eu.ko
3.移植hostapd和dhcpd
a)如果是用buildroot编译的话,直接用make menuconfig配置就行,这里不讲了
b)或者自己独立编译hostapd和dhcpd
4.配置hostapd和dhcpd
a) 配置hostapd
vim /etc/hostapd.conf
interface=wlan0
driver=nl80211
ssid=MYZR
channel=9
hw_mode=g
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=3
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
b)配置dhcpd
touch /var/db/dhcpd.leases
vim /etc/dhcpd.conf
在最后增加:
subnet 192.168.155.0 netmask 255.255.255.0
{
range 192.168.155.2 192.168.155.10;
option domain-name-servers 8.8.8.8;
option routers 192.168.155.1;
}
5.启动热点和自动获取IP
echo "1" >/proc/sys/net/ipv4/ip_forward
hostapd -B /etc/hostapd.conf
ifconfig wlan0 192.168.155.1
dhcpd wlan0
看图片“WIFIAP.png”
最后通过手机,可以搜索“MYZR”的热点,直接输入密码“12345678”,这样手机WIF连接成功,会自动分别192.168.155.*的IP.
注意:以上虽然分配到IP,但是不能上网,需要使用iptables开启本地的SNAT
经过前面几个步骤,无线网卡已经可以自动分配IP,现在只需要把无线网卡的数据都经过eth0(有线网络)发到外网去,这就需要IP转发了。
6.配置内核
· Networking support --->
Networking options --->
· Network packet filtering framework (Netfilter) --->
Core Netfilter Configuration ---> //除了下面列出的其他全选
< > Transparent proxying support (EXPERIMENTAL)
< > set target and match support
< > CHECKSUM target support
< > "CT" target support
< > "DSCP" and "TOS" target support
< > "NOTRACK" target support
< > "TCPOPTSTRIP" target support (EXPERIMENTAL)
< > "dscp" and "tos" match support
< > "ipvs" match 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 debugging
[ ] SCTP load balancing support
< > FTP protocol helper
< > SIP persistence engine
IP: Netfilter Configuration ---> //里面的全选
<*> RF switch subsystem support --->
//注意要选最后一项,不然在使用hostapd命令时会出错,“rfkill: Cannot open RFKILL control device”.
7.移植iptables直接用buildroot配置编译就行,或者独立编译,這里不讲了udhcpc -i eth0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这样连接wifi,手机和ubuntu的WPA2-PSK的无线wifi AP设置完毕,可以正常使用了。