【USB-WIFI模块:rtl8723bu (无线网卡的基于 x6818的移植)


【USB-WIFI模块:rtl8723bu (无线网卡的基于 x6818的移植)

需要在 X6818 开发板上 WIFI模块加载驱动到 内核。

  1. linux的内核需要支持wifi的功能,

  2. 需要把 rtl8723bu 驱动编译出来, ko , 再 到开发板 上去 加载 insmod …ko

  3. 懂得如何去连上 AP 热点,实现无线上网。

  4. 配置内核
    进入内核目录。

执行 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

然后退出编译内核即可。

make menuconfig 是生成了一个 .config 文件。

x6818_defconfig 编译内核 根据这个配置文件来编译内核的。

kernel/arch/arm/config/x6818_defconfig —>

mv kernel-3.4.39/.config kernel-3.4.39/arch/arm/config/x6818_defconfig

编译内核 ./mk -k

生成一个 root.img 内核镜像文件》 再把 这个文件 重新烧写到你的开发板。

那么这个内核 就可以支持 无线网卡的功能了。

  1. 编译RTL8723BU-WiFi驱动
    下载地址:https://pan.baidu.com/s/1JdHK7tmVYQYgkYHFTUFEjw 提取码: mi9f

解压 unzip RTL8723BU_WiFi_linux_v4.3.9_13200.20150106_BTCOEX20140929-5443.zip

进入 driver 目录。

修改 Makefile 文件。

74行: CONFIG_PLATFORM_X6818 = y

ifeq ($(CONFIG_PLATFORM_X6818), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT -DCONFIG_CONCURRENT_MODE
ARCH := arm
CROSS_COMPILE := /home/china/newdisk/x6818_linux_180209/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-
KSRC := /home/china/newdisk/x6818_linux_180209/linux/kernel/kernel-3.4.39
MODULE_NAME := rtl8723bu_wifi
endif

然后 make 即可,会在当前目录下看到 rtl8723bu_wifi.ko 的驱动文件,拷贝到开发板上就好了。


  1. 移植wpa_supplicant
    简介:wpa_supplicant是wifi客户端(client)加密认证工具,和iwconfig不同,wpa_supplicant支持wep、wpa、wpa2等完整的加密认证,而iwconfig只能支持wep。

wpa_supplicant运行于后台,它需要借助控制台工具wpa_cli来进行手动操作,使用wpa_cli来搜索、设置、和连接网络。

下面分配来编译 下面的3个库。

libnl-3.2.29.tar.gz openssl-1.0.2k.tar.gz wpa_supplicant-2.6.tar.gz

1). openssl-1.0.2k.tar.gz 移植

1、先执行: ./config no-asm 如果需要动态库,执行:

./config no-asm shared --prefix=/opt/wifi_depend/openssl_lib

选项指定install的地址,install后可以在里面找到库和头文件等,有需要的话,可以加入-fPIC选项

2、修改生成的makefile
1、将gcc和ar加上XX对应编译链的前缀,例如: XX-XX-linux-
2、删除代有m64的两个地方

3、执行 make 进行编译

我用的是openssl-1.0.2q版本,libcrypto.a和libssl.a都会生成,可以使用。

4、还可以执行make install进行安装,安装的路径就是-prefix指定的地址。当然也可以不安装,make后就能找到openssl库。配合curl使用的时候最好指定安装路径,因为curl编译的时候也许会用到。

2)libnl-3.2.29.tar.gz 移植

配置: ./configure --prefix=/opt/wifi_depend/libnl_lib --host=arm-linux

修改 include/linux-private/linux/ipv6.h

   include/linux-private/linux/if_bridge.h 的 #include<linux/in6.h> 为 #include <netinet/in.h>

然后 make && make install 即可。

3) wpa_supplicant移植

解压 tar -zxvf wpa_supplicant-2.6.tar.gz

进入源码目录 cd wpa_supplicant-2.6/wpa_supplicant

拷贝一份默认配置文件 cp defconfig .config

修改 .config 文件如下:

  1. 第 47行 去掉 #号

  2. 在 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

  1. make

当前目录下会生成三个可执行文件 wpa_supplicant wpa_passphrase 和 wpa_cli

拷贝到开发板的 /usr/bin 目录下即可。

  1. 配置:

在板子上运行 mkdir/var/run 生成 run 文件夹。

在 /etc 目录下创建 wpa_supplicant.conf 文件,内容为

ctrl_interface=DIR=/var/run/wpa_supplicant
update_config=1
network={
ssid=“P30”
scan_ssid=1
key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=“123456789qq”
eap=TTLS PEAP TLS
}

  1. 最后拷贝 libnl_lib.tar.gz 库到板子上的 /usr/lib 即可

  2. 测试
    运行 wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf -dd& 即可连接 wifi 了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值