FH8856移植BL-8812CU2WiFi模组
8856平台作FPV,之前用到的是UB25,现在需替换成BL-8812CU2。看着像是pin对pin替换,但是PA供电的5v没定义,不知是不是3.3v的PA,需要后续验证。目前先打通再说吧。
1.拿到驱动版本:
tar解压。
修改Makefile,按照BL一贯作风,增加:
平台信息:CONFIG_PLATFORM_FH8856 =
指定编译链:CROSS_COMPILE =
内核路径:KSRC =
配置如下:
1 CONFIG_PLATFORM_FH8856 = y 2 ifeq ($(CONFIG_PLATFORM_FH8856), y) 3 EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE 4 EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 5 #EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT 6 EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN 7 #EXTRA_CFLAGS += -DCONFIG_PLATFORM_MSTAR 8 #EXTRA_CFLAGS += -DCONFIG_PLATFORM_MSTAR_HIGH 9 CROSS_COMPILE := arm-fullhan-linux-uclibcgnueabi- 10 KSRC := /source/FH8856/board_support/kernel_amped/linux-3.0.8 11 ARCH := arm 12 endif
其他EXTRA_CFLAGS选项配置,看到有个HISi平台的配置,直接拿过来试试。
保存退出 & make clean & make
编译通过,拿到88x2cu.ko。还蛮顺利的。
编出来3.1MB,有点大,strip一下。
Emm------2.9M还是大。
2.加载到平台:
# insmod 88x2cu.ko [ 239.583946] 88x2cu: module has no symbols (stripped?) insmod: can't insert '88x2cu.ko': invalid module format
就知道不能strip,很容易出现has no symbols,再来一次,不strip直接3M的试下:
# insmod 88x2cu.ko //加载成功了 # ifconfig -a //发现出现了wlan0设备。 # ifconfig wlan0 172.16.11.1 netmask 255.255.255.0 //配置起来了,没出错
继续配置成AP模式:
#hostapd -B hostapd.conf
这一步出错了:
nl80211: 'nl80211' generic netlink not found
Failed to initialize driver 'nl80211'
wlan0: interface state UNINITIALIZED->DISABLED
wlan0: AP-DISABLED
什么问题?
a. 换个hostapd试试,2.0的换成2.6版本的hostapd,同样报错。
b. Hostapd.conf 去掉80211的选项,也报错。
c. 回到驱动编译的步骤,去掉一些编译选项,再来一遍,还是报错。
d.看来是内核的cfg80211配置选项的问题,menuconfig 去掉内核包含的cfg80211,在外面编译cfg80211。烧录加载,还是出错;
得嘞GG---,下周发邮件,求助原厂吧!