ap6234移植
来源:互联网 发布:速凡网络 编辑:程序博客网 时间:2024/05/16 14:39
1 ap6234
1.1 BoardConfig.mk
路径:/a83/android/device/softwinner/octopus-perf$
BoardConfig.mk 文件决定android 加载哪一款wifi 模组, 要配置成使用ap6212模组需要把BoardConfig.mk文件相关代码修改成如下:
修改有待进一步的确定。
1.2、init.sun8i.rc配置
路径:/a83/android/device/softwinner/octopus-perf$
1.3、配置sys_config.fex
路径:/a83/lichee/tools/pack/chips/sun8iw6p1/configs/perf3_v1_0
1.4、配置.config文件
在进入linux3.4后直接Vim .config
1.ap6234
功能:wifi station、softap、wifi direct、bt、
接口类型:sdio、uart
调试方案:octopus-f1,下面以r58平台android4.4为例说明ap6212的移植过程
这个文档和前面ap6212一直步骤其实差不多,这边主要补充两点:
1、
AP6234性能比AP6330更好。
AP6234: Wi-Fi + BT, 2.4GHz/5GHz, HT20/HT40, VSDB
AP6330: Wi-Fi + BT, 2.4GHz/5GHz, HT20
所谓VSDB是指STA, P2P 可以工作在不同的channel
2、
除了完成一下2-8步骤,还要在电源管理中添加ap6234选项。
主要有一下三个文档:rf_pm.c、wifi_pm.c、bt_pm.c.
2软硬件设计部份差异说明
(1) ap6234采用的是26M晶振,A框去掉,即不需要反相器;
(2) ap6234硬件上第29脚悬空,与ap6210不同;
(3)ap6234必须采用bcmhd新驱动1.201.34.x版本,如附件;
(4)ap6234 firmware部分如附件请覆盖至\hardware\broadcom\wlan\bcmdhd\firmware。
3内核配置
3.1 .config
.config中需要配置如下选项,将wifi driver编译进内核
CONFIG_BCMDHD = m
CONFIG_BCMDHD_OOB = y
同时把ap6234驱动代码加到/android/hardware/broadcom/wlan/bcmdhd/firmware路径下。
3.2 BoardConfig.mk
BoardConfig.mk文件决定android要加载哪一款wifi模组、是否开启蓝牙和使用哪一款蓝牙模组,要配置成使用ap6234模组并启用wifi和蓝牙功能需要把BoardConfig.mk文件的相关代码修改成如下。
# wifi and bt configuration
# 1. Wifi Configuration
#BOARD_WIFI_VENDOR := realtek
BOARD_WIFI_VENDOR := broadcom
# 1.1 broadcom wifi support
ifeq ($(BOARD_WIFI_VENDOR), broadcom)
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhd
BOARD_WLAN_DEVICE := bcmdhd
WIFI_DRIVER_FW_PATH_PARAM := "/sys/module/bcmdhd/parameters/firmware_path"
BOARD_USR_WIFI := ap6234
include hardware/broadcom/wlan/bcmdhd/firmware/$(BOARD_USR_WIFI)/device-bcm.mk
endif
# 2. Bluetooth Configuration
# make sure BOARD_HAVE_BLUETOOTH is true for every bt vendor
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := true
#BOARD_HAVE_BLUETOOTH_RTK := true
#BLUETOOTH_HCI_USE_RTK_H5 := true
BOARD_HAVE_BLUETOOTH_NAME := ap6234
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/softwinner/tulip-t1/bluetooth/
说明:
1、“#”符号起注释作用;
2、“BOARD_USR_WIFI := AP6234”宏指明wifi选用ap6234;
3、“BOARD_HAVE_BLUETOOTH := true”宏指明使用蓝牙;
4、“BOARD_HAVE_BLUETOOTH_BCM := true”宏指定蓝牙厂商为Broadcom;
5、“BOARD_HAVE_BLUETOOTH_NAME := ap6234”宏指明蓝牙模组名字;
6、“BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/softwinner/tulip-t1/bluetooth/”宏指明配置文件bdroid_buildcfg.h路径;
注意:
1、需注释掉#BOARD_HAVE_BLUETOOTH_RTK := true
2、若不需要蓝牙功能只需要把相关宏注释掉就可以。
3、OARD_USR_WIFI的大小写根据你在3.1中命名规则来写。
3.3 init.sun8i.rc
这部分只要注意两点:
注意:
1、若init.sun8iw6p1.rc文件无修改后代码,可手动添加;
2、需注释掉realtek wifi和bluetooth相关内容。
3.3 octopus-perf3
octopus-f1.mk文件会在编译时拷贝指定文件到特定目录下,使用ap6234需要确认如下修改:
DEVICE_PACKAGE_OVERLAYS := device/softwinner/octopus-perf/overlay \
$(DEVICE_PACKAGE_OVERLAYS)
PRODUCT_PACKAGES += gatord
PRODUCT_PACKAGES += \
ESFileExplorer \
VideoPlayer \
Bluetooth
PRODUCT_PACKAGES += \
gps.exdroid \
PRODUCT_COPY_FILES += \
device/softwinner/octopus-perf/configs/gps.conf:system/etc/gps.conf
PRODUCT_COPY_FILES += \
device/softwinner/octopus-perf/kernel:kernel \
device/softwinner/octopus-perf/fstab.sun8i:root/fstab.sun8i \
device/softwinner/octopus-perf/init.sun8i.rc:root/init.sun8i.rc \
device/softwinner/octopus-perf/init.recovery.sun8i.rc:root/init.recovery.sun8i.rc \
device/softwinner/octopus-perf/ueventd.sun8i.rc:root/ueventd.sun8i.rc \
device/softwinner/octopus-perf/recovery.fstab:recovery.fstab \
device/softwinner/octopus-perf/modules/modules/nand.ko:root/nand.ko \
device/softwinner/octopus-perf/modules/modules/sunxi_tr.ko:root/sunxi_tr.ko \
device/softwinner/octopus-perf/modules/modules/disp.ko:root/disp.ko \
device/softwinner/octopus-perf/modules/modules/sw-device.ko:obj/sw-device.ko \
PRODUCT_COPY_FILES += \
device/softwinner/octopus-perf/configs/tablet_core_hardware.xml:system/etc/permissions/tablet_core_hardware.xml
PRODUCT_COPY_FILES += \
device/softwinner/octopus-perf/configs/camera.cfg:system/etc/camera.cfg \
device/softwinner/octopus-perf/configs/cfg-Gallery2.xml:system/etc/cfg-Gallery2.xml \
device/softwinner/octopus-perf/configs/gsensor.cfg:system/usr/gsensor.cfg \
device/softwinner/octopus-perf/configs/media_profiles.xml:system/etc/media_profiles.xml \
device/softwinner/octopus-perf/configs/sunxi-keyboard.kl:system/usr/keylayout/sunxi-keyboard.kl \
device/softwinner/octopus-perf/configs/sunxi-ir.kl:system/usr/keylayout/sunxi-ir.kl \
device/softwinner/octopus-perf/configs/tp.idc:system/usr/idc/tp.idc
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.xml \
frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml
PRODUCT_COPY_FILES += \
device/softwinner/octopus-perf/bluetooth/bt_vendor.conf:system/etc/bluetooth/bt_vendor.conf
PRODUCT_COPY_FILES += \
device/softwinner/octopus-perf/bluetooth/bt_vendor.conf:system/etc/bluetooth/bt_vendor.conf
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.xml:system/etc/permissions/android.hardware.camera.xml \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml
# Low mem(memory <= 512M) device should not copy android.software.managed_users.xml
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.software.managed_users.xml:system/etc/permissions/android.software.managed_users.xml
PRODUCT_COPY_FILES += \
device/softwinner/octopus-perf/media/bootanimation.zip:system/media/bootanimation.zip \
#camera config for camera detector
PRODUCT_COPY_FILES += \
device/softwinner/octopus-perf/hawkview/sensor_list_cfg.ini:system/etc/hawkview/sensor_list_cfg.ini
# Radio Packages and Configuration Flie
$(call inherit-product, device/softwinner/common/rild/radio_common.mk)
#$(call inherit-product, device/softwinner/common/ril_modem/huawei/mu509/huawei_mu509.mk)
#$(call inherit-product, device/softwinner/common/ril_modem/Oviphone/em55/oviphone_em55.mk)
#sensor
PRODUCT_COPY_FILES += \
device/softwinner/octopus-perf/sensor.sh:system/bin/sensor.sh
注意:
1、android.hardware.wifi.xml拷贝到指定目录,以使设置界面显示wifi
2、android.hardware.wifi.direct.xml是在wifi设备中显示wifi direct选项
3、android.hardware.bluetooth.xml是在setting界面中显示蓝牙
4、“PRODUCT_PACKAGES += Bluetooth”指定去编译Bluetooth.apk
3.4config.xml
config.xml文件路径:\android5.1\device\softwinner\tulip-t1\overlay\frameworks\base\core\res\res
\values\config.xml
要打开蓝牙功能,需要在config.xml中把蓝牙的bt-pan网口打开,修改的部分代码如下。
<!-- List of regexpressions describing the interface (if any) that represent tetherable
Wifi interfaces. If the device doesn't want to support tethering over Wifi this
should be empty. An example would be "softap.*" -->
<!-- default: disable Softap feature -->
<string-array translatable="false" name="config_tether_wifi_regexs">
<item>"wlan0"</item>
</string-array>
-->
<!-- List of regexpressions describing the interface (if any) that represent tetherable
bluetooth interfaces. If the device doesn't want to support tethering over bluetooth this
should be empty. -->
<!-- default: disable Bluetooth PAN feature -->
<string-array translatable="false" name="config_tether_bluetooth_regexs">
<item>"bt-pan"</item>
</string-array>
<!-- List of regexpressions describing the interface (if any) that represent tetherable
注:若相应平台该目录下没config.xml文件,可到其他相应平台对应目录下拷贝一份。
3.5 vnd_<product>.txt
蓝牙配置文件 设置波特率,uart设备文件和firmware路径(初始值),调试信息配置
文件路径: device\softwinner\tulip-t1\bluetooth
创建vnd_$( product).txt文件,如vnd_tulip-t1.txt
#Set baudrate to 1500000
UART_TARGET_BAUD_RATE=1500000
BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyS1"
FW_PATCHFILE_LOCATION = "/system/vendor/modules/"
LPM_IDLE_TIMEOUT_MULTIPLE = 5
#LPM_SLEEP_MODE = FALSE
BT_WAKE_VIA_PROC = TRUE
BTVND_DBG = TRUE
BTHW_DBG = TRUE
VNDUSERIAL_DBG = TRUE
UPIO_DBG = TRUE
3.6 bt_vendor.conf
文件路径:device\softwinner\tulip-t1\bluetooth
# UART device port where Bluetooth controller is attached
UartPort = /dev/ttyS1
# Firmware patch file location
FwPatchFilePath = /system/vendor/modules/
#Firmware name
FwPatchFileName = bcm43438a0.hcd
3.7 bdroid_buildcfg.h
android5.1\device\softwinner\tulip-t1\bluetooth\bdroid_buildcfg.h主要配置打开蓝牙时显示的本机名字。
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "octopus-perf"
#define BTA_DM_COD {0x1A, 0x01, 0x14}
#define BTIF_HF_SERVICES (BTA_HSP_SERVICE_MASK)
#define BTIF_HF_SERVICE_NAMES { BTIF_HSAG_SERVICE_NAME }
#endif
3.8 引脚配置
ap6212引脚在lichee\tools\pack\chips\sun8iw6p1\configs\ f1\sys_config.fex中定义,需根据具体的原理图做相应的配置,需要配置的选项有:
mmc0_para]
sdc_used = 1
sdc_detmode = 4
sdc_buswidth = 4
sdc_clk = port:PF02<2><1><2><default>
sdc_cmd = port:PF03<2><1><2><default>
sdc_d0 = port:PF01<2><1><2><default>
sdc_d1 = port:PF00<2><1><2><default>
sdc_d2 = port:PF05<2><1><2><default>
sdc_d3 = port:PF04<2><1><2><default>
sdc_det = port:PF06<0><1><2><default>
sdc_use_wp = 0
sdc_wp =
sdc_isio = 0
sdc_regulator = "none"
sdc_power_supply = "vcc-card"
.......................
说明:
1、“;”符号起注释作用
2、“module_num” 宏表示选用哪一款wifi模组;
3、“module_power1”宏表示给模组供电的是axp的哪路ldo,一般选vcc-wifi-io(参见[pmu1_regu]);
4、“module_power1_vol”宏设置ldo的供电电压,ap6212供电电压为3.3V;
5、“lpo_use_apclk”选择32k时钟源,根据原理图配置,一般选ac10032k2。
6、确认硬件sd使用的是哪一种,同时
Wifi部分
;wifi configuration
;wifi_used: 0-not use, 1- use
;wifi_sdc_id: 0- SDC0, 1- SDC1, 2- SDC2, 3- SDC3
;wifi_usbc_id: 0- USB0, 1- USB1, 2- USB2
;wifi_usbc_type: 1- EHCI(speed 2.0), 2- OHCI(speed 1.0)
;wl_reg_on: wifi function enable io
;wl_host_wake: wifi device wake-up host
;wl_host_wake_invert: whether wl_host_wake use inverter between ap and module
; 0: not used, 1: used
;--------------------------------------------------------------------------------
[wifi_para]
wifi_used = 1
wifi_sdc_id = 1
wifi_usbc_id = 1
wifi_usbc_type = 1
wl_reg_on = port:PL02<1><default><default><0>
wl_host_wake = port:PL03<4><default><default><0>
wl_host_wake_invert = 0
说明:
1、“;”符号起注释作用
2、“wifi_used”宏赋值为1表示使用wifi,为0表示不使用;
3、“wifi_sdc_id”宏表示SDIO接口wifi使用哪个MMC 控制器 ;
4、“wl_reg_on”宏表示wifi使能脚,打开wifi的过程,会拉高,根据原理图配置;
5、“wl_host_wake”宏表示wifi唤醒主控功能(WL-WAKE-AP),根据实际原理图配置。
蓝牙部份
;bluetooth configuration
;bt_used: 0- no used, 1- used
;bt_uard_id: 0- uart0, 1- uart1, 2- uart2
;bt_rst_n: bt function enable io
;bt_wake: host wake-up bluetooth device
;bt_wak_host: bt device wake-up host
;bt_host_wake_invert: whether bt_host_wake use inverter between ap and module
; 0: not used, 1: used
;--------------------------------------------------------------------------------
[bt_para]
bt_used = 1
bt_uart_id = 1
bt_rst_n = port:PL04<1><default><default><0>
bt_wake = port:PH10<1><default><default><0>
bt_host_wake = port:PL05<4><default><default><0>
bt_host_wake_invert = 0
说明:
1、“bt_used”宏赋值为1表示使用蓝牙,为0表示不使用;
2、“bt_uart_id”宏表示蓝牙所使用的是哪个uart;
3、“bt_rst_n”宏表示蓝牙使能脚,蓝牙打开时会拉高,根据实际原理图配置;
4、“bt_wake”宏表示主控唤醒蓝牙(AP-WAKE-BT),根据实际原理图配置;
5、“bt_host_wake”宏表示蓝牙唤醒主控(BT-WAKE-AP),根据实际原理图配置。
4. 常见问题
硬件checklist:
1. 26M晶振电路不需要接反相器,XTAL_IN/XTAL_OUT直接接模块Pin 10 /Pin 11;
2. 32K时钟波形正常输出;
3. Pin 22 VDDIO 电压(3.3V);
4. Pin 9 VBAT接电池有电压;
5. Pin 29 VDD_TCXO需要悬空;
软件checklist:
1. Wifi和蓝牙都打不开?
请确认确认/system/vendor/modules/是否有以下文件,名字是否正确?
bcmhd.ko
fw_bcm43438a0.bin
fw_bcm43438a0_apsta.bin
fw_bcm43438a0_p2p.bin
nvram.txt
如果没有这些文件,说明编译的时候没有编到,请检查是否BoardConfig.mk大小写以及hardware\broadcom\wlan\bcmdhd\firmware\firmware-bcm.mk是否有加ap6212。
2. 蓝牙打不开?
先确认4.1.5有加,再确认4.1.7波特率是否设置正确,另外改了Boardconfig.mk需要make clean;
3. 蓝牙打开后搜不到设备?
先确认是否加天线,再确认确认4.1.5的FwPatchFileName是否正确;
其他:
1. 搜不到5G 信号? 搜不到某些蓝牙设备?某些路由器连接不上?
晶振存在频偏,请尝试从小到大更换26M晶振起振电路上的两个谐振电容。
- ap6234移植
- 移植
- 移植
- 移植
- 移植
- 【系统移植】U_BOOT移植
- 系统移植-uboot移植
- 系统移植-内核移植
- 系统移植-驱动移植
- 系统移植-文件系统移植
- CANOpen移植(CanFestival移植)
- GUI移植
- WinceJava移植
- bootloader 移植
- sqlite移植
- appweb移植
- 移植vivi
- vivi移植
- RecyclerView 的分割线(divider)--DividerItemDecoration
- ext.net 2.5 导出excel的用法
- 百度地图滑动冲突的问题解决
- Hibernate(四)主键属性
- 巧用JVM启动参数定位一个问题
- ap6234移植
- android 源码自带的Demo BluetoothChat
- 解决jsp 文件加载过大的问题
- Android ProgressBar以及子类
- Uglify JS安装
- CMake + VS2013 Win7x64下编译opencv3.0
- iOS 7中实现模糊效果教程
- LintCode Search a 2D matrix 搜索二维矩阵
- JAVA 环境变量配置