[Hi3751V811][Android8.0]海思平台 - bluetooth(mt7668u)模组的编译过程
16lz
2021-01-26
平台 | 内核版本 | 安卓版本 |
---|---|---|
Hi3751V811 | Linux4.1 | Android8.0 |
文章目录
- 查看我们有哪些设备
- 如何配置MT7668U编译
查看我们有哪些设备
目录:android/device/hisilicon/bigfish/sdk/source/component/wifi/drv
如何配置MT7668U编译
目录:android/device/hisilicon/Hi3751V811/BoardConfig.mk
# ------> Wifi + BT <------------# RTL8822BUBOARD_WIFI_BLUETOOTH_DEVICE_RTL8822BU := n# MT7668UBOARD_WIFI_BLUETOOTH_DEVICE_MT7668U := y# AP6356EBOARD_WIFI_BLUETOOTH_DEVICE_AP6356E := n## Stable configuration definitionsifeq ($(BOARD_WIFI_BLUETOOTH_DEVICE_AP6356E),y)BOARD_HAVE_BLUETOOTH := trueBOARD_HAVE_BLUETOOTH_BCM := trueendififeq ($(BOARD_WIFI_BLUETOOTH_DEVICE_RTL8822BU),y)BOARD_WIFI_VENDOR := realtekBOARD_BLUETOOTH_DEVICE_REALTEK := yBOARD_HAVE_BLUETOOTH_RTK := trueBOARD_HAVE_BLUETOOTH_RTK_IF := usbBOARD_HAVE_BLUETOOTH_RTK_COEX := trueendififeq ($(BOARD_WIFI_BLUETOOTH_DEVICE_MT7668U), y)BOARD_WIFI_VENDOR := mediatekBOARD_BLUETOOTH_DEVICE_MT7668U := yendif
内核部分:
目录:android/device/hisilicon/Hi3751V811/AndroidBoard.mk
LOCAL_PATH := $(call my-dir)# bigfish-include device/hisilicon/bigfish/build/bigfish.mk
目录:android/device/hisilicon/bigfish/build/bigfish.mk
从bigfish.mk
可以看出
# kernel-include device/hisilicon/bigfish/build/kernel.mk# rootfs_sdk-include device/hisilicon/bigfish/build/rootfs_sdk.mk# loader-include device/hisilicon/bigfish/build/loader.mk# recovery-include device/hisilicon/bigfish/build/recovery.mk# ext4-include device/hisilicon/bigfish/build/ext4.mk# emmc-include device/hisilicon/bigfish/build/emmc.mk# bootargs-include device/hisilicon/bigfish/build/bootargs.mk# wifi-include device/hisilicon/bigfish/build/wifi.mk# securityifeq ($(strip $(HISILICON_SECURITY_L2)),true)-include device/hisilicon/bigfish/build/security.mkendif-include device/hisilicon/bigfish/build/trustedcore.mk
可以看下我们重点关注的wifi.mk
文件:
include $(CLEAR_VARS)WIFI_CFG := \ CFG_HI_WIFI_DEVICE_RTL8822BU=$(BOARD_WIFI_BLUETOOTH_DEVICE_RTL8822BU) \ CFG_HI_WIFI_DEVICE_MT7668U=$(BOARD_WIFI_BLUETOOTH_DEVICE_MT7668U) \ CFG_HI_WIFI_DEVICE_AP6XXX=$(BOARD_WIFI_BLUETOOTH_DEVICE_AP6356E) \ CFG_HI_WIFI_MODE_STA=y CFG_HI_WIFI_MODE_AP=ywifi: kernel $(MAKE) ARCH=$(TARGET_ARCH) -C $(SDK_DIR)/source/component/wifi/drv \ LINUX_DIR=$(ANDROID_BUILD_TOP)/$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ \ MODULE_OUT=$(ANDROID_BUILD_TOP)/$(TARGET_OUT_VENDOR_SHARED_LIBRARIES)/modules \ ROOTFS_DIR=$(ANDROID_BUILD_TOP)/$(PRODUCT_OUT)/system \ SDK_CFGFILE=$(SDK_CFGFILE) $(WIFI_CFG) ANDROID_BUILD=y install $(MAKE) -C $(SDK_DIR)/source/component/wifi/drv \ SDK_CFGFILE=$(SDK_CFGFILE) $(WIFI_CFG) cleanALL_DEFAULT_INSTALLED_MODULES += wifi.PHONY: wifi#----------------------------------------------------------------------# Compile BLUETOOTH Drivers#----------------------------------------------------------------------ifeq ($(BOARD_BLUETOOTH_DEVICE_REALTEK),y)BLUETOOTH_DIR := $(ANDROID_BUILD_TOP)/device/hisilicon/bigfish/bluetooth/rtkbt/driverendififeq ($(BOARD_BLUETOOTH_DEVICE_MT7668U),y)BLUETOOTH_DIR := $(ANDROID_BUILD_TOP)/device/hisilicon/bigfish/bluetooth/mt7668u/driverendififeq ($(BOARD_BLUETOOTH_DEVICE_REALTEK),y)bluetooth: kernel $(MAKE) ARCH=$(TARGET_ARCH) CROSS_COMPILE=$(CROSS_COMPILE_TOOLCHAIN) \ -C $(BLUETOOTH_DIR) \ KERNEL_VERSION=$(HISI_LINUX_KERNEL) \ LINUX_DIR=$(ANDROID_BUILD_TOP)/$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ \ ANDROID_PRODUCT_OUT=$(ANDROID_BUILD_TOP)/$(PRODUCT_OUT) \ SDK_CFGFILE=$(SDK_CFGFILE) if [ ! -d $(ANDROID_BUILD_TOP)/$(TARGET_OUT_VENDOR_SHARED_LIBRARIES)/modules ]; then \ mkdir -p $(ANDROID_BUILD_TOP)/$(TARGET_OUT_VENDOR_SHARED_LIBRARIES)/modules; \ fi cp $(BLUETOOTH_DIR)/btusb.ko $(ANDROID_BUILD_TOP)/$(TARGET_OUT_VENDOR_SHARED_LIBRARIES)/modules/btusb.ko $(MAKE) ARCH=$(TARGET_ARCH) CROSS_COMPILE=$(CROSS_COMPILE_TOOLCHAIN) \ -C $(BLUETOOTH_DIR) \ KERNEL_VERSION=$(HISI_LINUX_KERNEL) \ SDK_CFGFILE=$(SDK_CFGFILE) cleanALL_DEFAULT_INSTALLED_MODULES += bluetoothendififeq ($(BOARD_BLUETOOTH_DEVICE_MT7668U),y)bluetooth: kernel $(MAKE) ARCH=$(TARGET_ARCH) CROSS_COMPILE=$(CROSS_COMPILE_TOOLCHAIN) \ -C $(BLUETOOTH_DIR) \ KERNEL_VERSION=$(HISI_LINUX_KERNEL) \ LINUX_DIR=$(ANDROID_BUILD_TOP)/$(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ \ ANDROID_PRODUCT_OUT=$(ANDROID_BUILD_TOP)/$(PRODUCT_OUT) \ SDK_CFGFILE=$(SDK_CFGFILE) if [ ! -d $(ANDROID_BUILD_TOP)/$(TARGET_OUT_VENDOR_SHARED_LIBRARIES)/modules ]; then \ mkdir -p $(ANDROID_BUILD_TOP)/$(TARGET_OUT_VENDOR_SHARED_LIBRARIES)/modules; \ fi cp $(BLUETOOTH_DIR)/btmtk_usb.ko $(ANDROID_BUILD_TOP)/$(TARGET_OUT_VENDOR_SHARED_LIBRARIES)/modules/btusb.ko $(MAKE) ARCH=$(TARGET_ARCH) CROSS_COMPILE=$(CROSS_COMPILE_TOOLCHAIN) \ -C $(BLUETOOTH_DIR) \ KERNEL_VERSION=$(HISI_LINUX_KERNEL) \ SDK_CFGFILE=$(SDK_CFGFILE) cleanALL_DEFAULT_INSTALLED_MODULES += bluetoothendif.PHONY: wifi bluetooth
Makefile
目录:android/device/hisilicon/bigfish/bluetooth/mt7668u/driver/Makefile
USB_CFILES := \ btmtk_usb_main.c \ btmtk_usb_fifo.c
将对应的驱动编译模块加入到objects集合中来
目录:android/device/hisilicon/bigfish/sdk/source/component/wifi/drv/usb_mt7668u/Makefile
ifeq ($(CFG_HI_WIFI_DEVICE_MT7668U),y)LOCAL_MODULE += mt7668u.koLOCAL_MODULE_SRC = wlan.mt76x8.mp2.20180615LOCAL_MODULE_PATH += $(BUILD_DIR)/$(LOCAL_MODULE_SRC)/mt7668u.koLOCAL_PREALLOC_PATH += $(BUILD_DIR)/$(LOCAL_MODULE_SRC)/mt7668u_prealloc.koLOCAL_MODULE_BIN_DIR = $(BUILD_DIR)/$(LOCAL_MODULE_SRC)/bin/mt7668LOCAL_MODULE_CFG_DIR = $(BUILD_DIR)/$(LOCAL_MODULE_SRC)/wlan_cfg/mt7668LOCAL_MODULE_BIN += $(LOCAL_MODULE_BIN_DIR)/EEPROM_MT7668.bin \ $(LOCAL_MODULE_BIN_DIR)/EEPROM_MT7668_e1.bin \ $(LOCAL_MODULE_BIN_DIR)/mt7668_patch_e1_hdr.bin \ $(LOCAL_MODULE_BIN_DIR)/mt7668_patch_e2_hdr.bin \ $(LOCAL_MODULE_BIN_DIR)/WIFI_RAM_CODE2_USB_MT7668.bin \ $(LOCAL_MODULE_BIN_DIR)/WIFI_RAM_CODE_MT7668.binLOCAL_MODULE_CFG += $(LOCAL_MODULE_CFG_DIR)/TxPwrLimit_MT76x8.dat \ $(LOCAL_MODULE_CFG_DIR)/wifi.cfg
更多相关文章
- 总结项目编译遇到的几个问题(Android(安卓)Studio Mac系统)
- beagleboard 启动 android 内核
- java.lang.RuntimeException: Unable to instantiate activity C
- Android(安卓)Studio修改项目名(快速)
- Android(安卓)Studio 的六种依赖
- android -------- 安装APK报错:Installation error: INSTALL_FAIL
- 初级学习android的相关准备工作和学习的流程
- Android(安卓)Studio编译提示警告xxx已过时
- Android(安卓)java.lang.NoClassDefFoundError的一种解决方法