Android4.4.2下 RTL8732BU 驱动移植
来源:互联网 发布:检测硬件的软件 编辑:程序博客网 时间:2024/06/16 07:42
Android4.4.2下 RTL8732BU 驱动移植
由于在Android4.4.2版本系统下移植RTL8723BU驱动,花了不少时间,走了不少弯路,所以特意写个博客记下移植过程和遇到的问题:
平台:sabresd_6dq,android4.4.2, linux3.0.35
参考:https://community.nxp.com/thread/322825
然后主要的驱动移植修改移植后的文件:
http://download.csdn.net/download/hao1xiao1zi2/9897607
http://download.csdn.net/download/hao1xiao1zi2/9897612
主要需要修改的文件(可以参考RTL8723BU压缩包中的的移植文档):
device/fsl/sabresd_6dq/BoardConfig.mk(加入驱动声明)
device/fsl/imx6/sabresd_6dq.mk(一些权限文件添加与移除)
device/fsl/sabresd_6dq/required_hardware.xml(同上)
修改init.rc或者init.freescale.rc文件
这里要**注意**init.rc与init.freescale.rc文件的区别。
首先是device/fsl/imx6/etc/init.rc这个文件修改的结果就是修改了输出文件out/target/product/sabresd_6dq/root/init.rc
修改device/fsl/sabresd_6dq/init.rc就是修改out/target/product/sabresd_6dq/root/init.freescale.rc
还有修改wpa_supplicant适配层,即wifi_realtek.c文件
开始移植:
首先是Linux驱动的移植,我这里没有采用编译进内核方式,采用编译模块方式,.ko模块
其实可以直接按照RTL8723BU提供的文档Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf
直接移植。
主要需要注意的问题就是
先要编译kernel_imx内核产生cfg80211.ko和mac80211.ko,然后再单独编译rtl8723bu驱动模块,因为rtl8723bu驱动需要依赖于cfg80211,否则即使驱动编译成功,不注意顺序的话,加载rtl8723bu驱动的时候会报出与cfg80211有关的错误。
我修改rtl8723bu驱动生成的模块名为wlan0.ko,
然后把生成的三个驱动cfg80211.ko,mac80211.ko以及wlan0.ko放到out/target/product/sabresd_6dq/system/lib/modules/文件下。
为了开机自动加载模块,所以我在开机自运行脚本上分别自动加载cfg80211.ko,mac80211.ko和wlan0.ko
注意,这里我遇到一个问题就是在后续加载启动后,终端上使用netcfg wlan0 up提示出错。有可能是权限问题,我没有弄明白,反正能用就可以。
加载使用device/fsl/imx6/etc/init.rc加载cfg80211.ko,mac80211.ko
使用device/fsl/sabresd_6dq/init.rc加载wlan0.ko
有关wpa_supplicant与setting相关的移植
参考RTL8723BU压缩包中关于android4.4的移植文档说明。
修改的地方有在device/fsl/imx6/etc/init.rc中添加,主要就是添加权限和相关文件处理
mkdir /system/etc/wifi 0777 wifi wifi
chmod 0777 /system/etc/wifi
chmod 0777 /system/etc/wifi/wpa_supplicant.conf
chown wifi wifi /system/etc/wifi/
chown wifi wifi /system/etc/wifi/wpa_supplicant.conf
#wpa_supplicant control socket for android wifi.c(android private socket)
mkdir /data/misc/wifi 0777 wifi wifi
mkdir /data/misc/wifi/sockets 0777 wifi wifi
chmod 0777 /data/misc/wifi
chown wifi wifi /data/misc/wifi
chmod 0777 /data/misc/wifi/sockets
chown wifi wifi /data/misc/wifi/sockets
chmod 0777 /data/misc/wifi/wpa_supplicant.conf
chown wifi wifi /data/misc/wifi/wpa_supplicant.conf
setprop wifi.interface wlan0
setprop wlan.driver.status “ok”
这里不再创建/data/system/wpa_supplicant文件夹,好像有一些版本的驱动需要创建,具体参考wifi_realtek.c或者wifi.c文件
#and also remove this lines
#mkdir /data/system/wpa_supplicant 0777 wifi wifi
#chmod 0777 /data/system/wpa_supplicant
#chown wifi wifi /data/system/wpa_supplicant
#symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant
在device/fsl/sabresd_6dq/init.rc中添加rtw_suppl服务,注意这个文字应该和wifi.c或者wifi_realtek.c文件中的对应文字一样,否则不起作用
service rtw_suppl /system/bin/wpa_supplicant \
-Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -B \
-O/data/misc/wifi/sockets \
-e/data/misc/wifi/entropy.bin \
-g@android:wpa_wlan0
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
这里的-g参数和socket wpa_wlan0的创建很重要,否则不可以与wpa_supplicant成功通信。
因为一知不解,都不知道自己怎么弄好的,是个android新手,所以实在是浪费了不少时间,弄好驱动后,也是不知道原理。本来也就不是从事这一块,所以弄好wifi就不想深究原因。还是赶快去干点别的正事。
- Android4.4.2下 RTL8732BU 驱动移植
- android4.1触摸屏驱动怎么移植?
- Android4.2移植rtl8192cu驱动要点
- 3g android4 移植 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 Android——4.2 - 3G移植之路
- Android 下移植WIFI 驱动
- linux下USB驱动移植
- Android 下移植WIFI 驱动
- linux下移植RT3070 驱动
- Linux下触摸屏驱动移植
- Linux下音频设备驱动移植
- Linux 下蓝牙驱动移植
- Linux 下 RT3070 驱动移植
- Android 下移植WIFI 驱动
- linux下USB驱动移植
- uboot下gpio驱动移植
- Linux下移植LCD驱动
- Android 下移植WIFI 驱动
- 明远智睿IMX6Q Android4.4.2移植USBWIFI(RTL8188EUS)
- 1099端口占用问题解决方案
- Maven设置将src/main/java下的xml编译到classpath
- opencv / python+opencv学习资料链接汇总
- jersey_No WebApplication provider is present
- Tensorflow中tf.get_variable和tf.variable_scope的使用
- Android4.4.2下 RTL8732BU 驱动移植
- ACCC
- [JAVA][Spring]Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别
- Unity学习笔记
- js中json对象的定义、取值等
- java本地调用cmd,shell命令,远程调用Linux执行命令方法总结
- Java反射机制详解
- Struts2框架学习(一)
- ie文本框获得焦点用css美化的问题