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 (简体中文)