|
主機平臺: 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設置完畢,可以正常使用了。
|
|