配置
品牌:Realtek Semiconductor
型号:CF-WU810N
芯片:8188eu
开发板芯片:AM335X
Linux内核版本:3.2.0
输入lsusb,查看usb信息:
若型号不为0bda:8179,则需要使用usb_modswitch工具来切换模式,因为linux会把usb设备默认识别成大容量存储设备,wifi驱动安装之后无法匹配。usb_modswitch的配置请关注本专栏另一篇文章。
使能linux内核配置(MAC80211,CFG80211)
在linux内核源码目录执行make menuconfig,如下图所示,务必使能cfg80211和mac80211还有USB无线拓展
使能这三项后,保存配置,编译内核,烧录进开发板。
下载驱动源码
从github中下载驱动源码:下载新版本分支!GitHub - lwfinger/rtl8188eu: Repository for stand-alone RTL8188EU driver.
下载后解压,修改Makefile文件,添加如下内容:
对修改的内容进行一波分析:
ARCH ?= arm
CROSS_COMPILE ?= /opt/i686-arago-linux/usr/bin/arm-linux-gnueabihf-
KVER ?= 3.2.0
KSRC ?= /home/jie/mytest/IPC335x/kernel_emmc/test_20221112/linux-3.2.0/
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/staging/r8188eu/
INSTALL_PREFIX := /home/jie/rtl8188_build/
- ARCH:配置架构,因为要使用linux内核源码,所以这里必须指出,与linux内核保持一致
- CROSS_COMPILE:交叉编译器
- KVER:内核版本号
- KSRC:内核源码目录
- MODDESTDIR:驱动ko文件的安装目录(modprobe检索目录)
- INSTALL_PREFIX:编译install目录
编译驱动源码
注意,驱动的linux内核源码目录必须和板子上跑的linux源码保持一致,包括各种配置使能情况!
驱动编译前,需要修改./autoconf.h中内容,不然会导致wifi连接信号差时的卡死问题,注释掉
//#define CONFIG_LAYER2_ROAMING
然后进行驱动编译即可
执行make,编译源码,然后在rtl8188eu的源目录得到8188eu.ko文件
启动驱动
- 首先将rtl8188eu的源目录的rtl8188eufw.bin文件拷贝至开发板的/lib/firmware/rtlwifi/目录下
- 该文件是驱动的固件程序,必须放在指定位置,不然驱动会报错。
- 然后将8188eu.ko拷贝至开发板。(可以任意位置,也可以拷贝至上文的MODDESTDIR宏定义中,区别是前者使用insmod,后者可以使用modprobe命令安装)
- 首先安装mac80211和cfg80211驱动,执行如下代码
若此处提示驱动没找到,则是上文中的linux源码没有正确配置。modprobe mac80211 modprobe cfg80211
- 使能驱动8188
insmod 8188eu.ko
查看驱动情况
使用命令dmesg,查看驱动打印输出
可以看到驱动被正确识别,得到驱动mac地址。
输入ifconfig -a得到如下结果
其中的wlan0就是usb的wifi,成功。
本专栏下一篇文章会讲解如何配置wifi连接。