一、 linux 的移植。
首先编译一遍确保没有问题。
将驱动拷贝到 driver/net/wireless 目录下。
使用的是:
改写 makefile Kconfig
去改写 8723 的makefile
设置menuconfig
使能固有的 库。
使能USB部分
ieee 部分
编译一遍
有报错。
解决:
遇到问题:
没有wlan节点、
于是 insmod 8723du.ko,只有这些打印信息,与内置的打印信息是一样的。
解决:
对比 没有移植 8723du 的设备树
将这个去掉,继续测试。
当然,这里是需要移植 wpa_supplicant ,作为wifi 工具的,这里就不介绍了,参考正点原子的imx6ull 的手册。
/etc/wpa_supplicant.conf 的设置如下:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="XW"
psk="aaaaaaaa"
}
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
ssid="wang"
psk="123456789"
}
然后需要,将eth0 关闭掉,否则会出现ping 卡死。
输入命令进行连接。
wpa_supplicant -Dnl80211 -iwlan0 -c /etc/wpa_supplicant.conf -dd >/var/wifi_log &
wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &
有报错
解决: 无法解决这个报错。
我准备换一个驱动 , 重新编译。
重新编译。
烧写测试:
继续去改改menuconfig
发现的问题:
但是依然是链接不上。
目前问题已解决:
正确的打印信息:
经过我的测试做一个总结:
1 首先是 makefile 里 power-saving 宏定义控制着是否打印这个。
2 makefile 的 编写。
ifeq ($(CONFIG_PLATFORM_6818), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT #-DCONFIG_PLATFORM_ANDROID -DCONFIG_ANDROID
ARCH := arm
KSRC := /home/topeet/lollipop-5.1.1_r6/kernel
KVER := 3.4.39
endif
3 测试的命令。必须是:
wpa_supplicant -Dnl80211 -c /etc/wpa_supplicant.conf -i wlan0 &
而不能是:
wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 &
二、 Android的移植
准备一份官方文档。
1 device 目录修改
首先是去掉 mt66xx的
menuconfig 中
怎么去掉蓝牙呢?
但是我的Kernel 的 .config 是不是也需要改变,
这个也是需要改的。
cp xxx.android .config
wifi 驱动加上了Android.
linux 部分:
androdi 部分。
2 hardwaire 目录修改
这个目录不用改了,跟android4.4 是不一样的。 参考wifi 驱动官方手册
先编译一遍:
可以编译成功,
但是无法使用,当再设置中 打开wifi 时 出现报错。
接下来尝试, 使用ko 的方式。
并且参考 imx6q Android4.4 的 .mk
继续编译测试一下。
系统启动之后 关于mt6620 的打印信息已经没有了。
make clean 再重新编译起到了作用。
但是依然是 wifi 不能用。
接着
重新 拷贝 hardwire 目录下的 wifi 包。
继续编译测试:
wifi 依然是不能用,
而且有蓝牙的报错
尝试添加 rtw_fwloader
编译烧写之后,依然是 wifi 不能用+ 蓝牙一直弹出报错。
我想去测试一下 makefile 的 curcurent ,以及android5
继续编译测试
还是跟之前一样。
继续编译测试:
结果错误还是一样的。
那就先把蓝牙给禁止掉吧。
编译+测试依然是不行的。
还是会有这个报错。