软件01 发表于 2018-6-21 20:43:27

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
独立编译可以看网站
https://blog.csdn.net/beesui/article/details/10227931
https://blog.csdn.net/hinyunsin/article/details/6029749

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设置完毕,可以正常使用了。
页: [1]
查看完整版本: IMX6 EK200 RTL8188EUS WIFI AP