1. 配置内核
进入内核目录。
执行 make menuconfig
然后会打开一个配置工具,它可以让你遍历每个可用模块,然后启用或者禁用你需要或者不需要的模块。(空格表示选择)
进入 NetWork device support 层下的 Wireless 层,启用 cfg80211 - wireless configuration API、cfg80211 wireless extensions compatibility、Generic IEEE 802.11 Networking Stack (mac80211
然后退到顶层,进入 Device Drivers 层下的 Network device support 启用 Wireless LAN
然后退出编译内核即可。
2. 编译RTL8723BU-WiFi驱动
下载地址:https://pan.baidu.com/s/1JdHK7tmVYQYgkYHFTUFEjw 提取码: mi9f
解压 unzip RTL8723BU_WiFi_linux_v4.3.9_13200.20150106_BTCOEX20140929-5443.zip
进入 driver 目录。
解压 tar -zxvf rtl8723BU_WiFi_linux_v4.3.9.3_13200.20150106_BTCOEX20140929-5443.tar.gz
cd rtl8723BU_WiFi_linux_v4.3.9.3_13200.20150106_BTCOEX20140929-5443
修改 Makefile 文件。


ifeq ($(CONFIG_PLATFORM_GEC6818), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT -DCONFIG_CONCURRENT_MODE
ARCH := arm
CROSS_COMPILE := /home/incipe/expend/6818GEC/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-
KSRC := /home/incipe/expend/6818GEC/kernel
MODULE_NAME := rtl8723bu_wifi
endif
然后 make 即可,会在当前目录下看到 rtl8723bu_wifi.ko 的驱动文件,拷贝到开发板上就好了。
3. 移植wpa_supplicant
简介:wpa_supplicant是wifi客户端(client)加密认证工具,和iwconfig不同,wpa_supplicant支持wep、wpa、wpa2等完整的加密认证,而iwconfig只能支持wep。
wpa_supplicant运行于后台,它需要借助控制台工具wpa_cli来进行手动操作,使用wpa_cli来搜索、设置、和连接网络。
下载地址:https://pan.baidu.com/s/1udO5qg2iPftzE-76wYZmPg 提取码: f3br
注意:以下移植请都切换到 root 用户执行,不然会出现莫名其妙的错。。。。。
openssl移植
解压 tar -zxvf openssl-1.0.2k.tar.gz
进入源码目录 cd openssl-1.0.2k
配置 ./config no-asm shared no-async --prefix=/opt/wifi_depend/openssl_lib --cross-compile-prefix=arm-linux-


去掉这些 -m64
make 等待编译完成执行 make install 即可在 /opt/wifi_depend/openssl_lib 目录下看到安装好的 openssl 了。
libnl移植
解压 tar -zxvf libnl-3.2.29.tar.gz
进入源码目录配置 ./configure --prefix=/opt/wifi_depend/libnl_lib --host=arm-linux
然后 make 报错

修改 include/linux-private/linux/ipv6.h include/linux-private/linux/if_bridge.h 的 #include<linux/in6.h> 为 #include <netinet/in.h>
然后 make && make install 即可。
wpa_supplicant移植
解压 tar -zxvf wpa_supplicant-2.6.tar.gz
进入源码目录 cd wpa_supplicant-2.6/wpa_supplicant
拷贝一份默认配置文件 cp defconfig .config
修改 .config 文件如下:

修改 Makefile 如下内容:
CFLAGS += -I/opt/wifi_depend/openssl_lib/include -I/opt/wifi_depend/libnl_lib/include/libnl3
LIBS += -L/opt/wifi_depend/openssl_lib/lib -L/opt/wifi_depend/libnl_lib/lib -ldl
CC = arm-linux-gcc
然后运行 make 命令即可。
当前目录下会生成三个可执行文件 wpa_supplicant wpa_passphrase 和 wpa_cli 拷贝到 /usr/bin 目录下即可。
4. 配置
在板子上运行 mkdir/var/run 生成 run 文件夹。
在 /etc 目录下创建 wpa_supplicant.conf 文件,内容为
ctrl_interface=DIR=/var/run/wpa_supplicant
update_config=1
network={
ssid="incipe"
scan_ssid=1
key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk="incipe"
eap=TTLS PEAP TLS
}
其中 ssid 为要连接 wifi 的名字,psk 为密码。
最后拷贝 libnl 库到板子上的 /usr/lib 即可。
5. 测试
运行 wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf -dd& 即可连接 wifi 了。
最后分享一篇介绍 wpa_supplicant 的文章。Wpa supplicant (简体中文)