开发板是三星 S5PV210,Android 2.2
需要到 Realtek 官网下载最新的驱动 v3.1.2590。最开始用v3.0 的驱动,这个是Realtek工程师直接提供的,遇到2个问题:(1)加载驱动模块(insmod)时,报内核虚拟内存分配失败,要求增加虚拟内存。开发板物理内存为1G,启动内核时加vmalloc=512M后,该问题消失,驱动模块能够成功加载,但出现新的问题:(2)在扫描AP时,Android界面显示“不能扫描”,驱动程序打印log显示下载firmware失败,查看驱动程序源码发现,8192cu的驱动中包含了firmware二进制,运行时通过查表来取得firmware,但轮询超时,导致模块初始化失败
Realtek的驱动程序源码包中包含了Android参考实现,只需对路径等配置性的部分根据开发板实际情况进行修改即可
关于vmalloc的补充说明
测试表明,v3.1驱动同样存在insmod时虚拟内存分配失败的问题,需要在内核启动参数中增加vmalloc参数。对S5PV210开发板来说,修改u-boot的内核启动参数
路径:include/configs/smdkv210single.h
修改:
#define CONFIG_BOOTARGS "root=/dev/mtdblock4 rootfstype=yaffs2 init=/init console=ttySAC0,115200 vmalloc=512M"
编译驱动程序
解压缩驱动程序源码包,需要修改Makefile文件。首先增加Android平台
...
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ANDROID = y
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
...
然后增加Android平台的配置