AIC8800 USB Porting Guide v1 1 20220526.zh-CN - en
AIC8800 USB Porting Guide v1 1 20220526.zh-CN - en
com
Revision: 1.1
2022/05/26
transplantation
You can compare the following files to confirm whether any files are missing.
aic8800_porting_package\USB\driver_fw\aic
1. Place the aic driver package under kernel/drivers/net/wireless/ and modify kernel/
drivers/net/wireless/Kconfig and kernel/drivers/net/wireless/Makefile
Modify kernel/drivers/net/wireless/Kconfig
obj-$(CONFIG_WLAN_VENDOR_MEDIATEK) += mediatek/
obj-$(CONFIG_WLAN_VENDOR_RALINK) += ralink/ obj-$
(CONFIG_WLAN_VENDOR_REALTEK) += realtek/ obj-$
(CONFIG_WLAN_VENDOR_RSI) += rsi/
obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$
(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$
(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ obj-$
(CONFIG_WLAN_VENDOR_QUANTENNA) += quantenna/ obj-$
(CONFIG_AIC_WLAN_SUPPORT) += aic8800/
Modify kernel/drivers/net/wireless/Makefile
config BT_HCIBTUSB_RTL
bool "Realtek protocol support"
depends on BT_HCIBTUSB
select BT_RTL
default y
help
The Realtek protocol support enables firmware and configuration
download support for Realtek Bluetooth controllers.
config BT_AICBTUSB
tristate "AIC HCI USB driver"
depends on USB
help
AIC Bluetooth HCI USB driver
config BT_RTKBTUSB
tristate "RTK HCI USB driver"
depends on USB
help
RTK Bluetooth HCI USB driver
config BT_HCIBTSDIO
tristate "HCI SDIO driver"
depends on MMC
help
Bluetooth HCI SDIO driver.
This driver is required if you want to use Bluetooth device with SDIO
interface.
Say Y here to compile support for Bluetooth SDIO devices into the kernel
or say M to compile it as module (btsdio).
config BT_HCIUART
kernel/drivers/bluetooth/Kconfig
obj-$(CONFIG_BT_HCIBTUSB) + = btusb.o
obj-$(CONFIG_BT_HCIBTSDIO) += btsdio.o
+= aic_btusb.o
obj-$(CONFIG_BT_AICBTUSB) obj-$
(CONFIG_BT_RTKBTUSB) += rtk_usb.o
kernel/drivers/bluetooth/Makefile
Modify the kernel config (or use make menuconfig) to the following parameters
#
# Bluetooth device drivers
#
# CONFIG_BT_HCIBTUSB is not set
CONFIG_BT_AICBTUSB=m
# CONFIG_BT_RTKBTUSB is not set
# CONFIG_BT_HCIBTSDIO is not set
CONFIG_BT_HCIUART=y
CONFIG_BT_HCIUART_H4
.
.
.
# CONFIG_RTL8822BS is not set
# CONFIG_MVL88W8977 is not set
CONFIG_AIC_WLAN_SUPPORT=y
CONFIG_AIC8800_WLAN_SUPPORT=m
CONFIG_AIC_LOADFW_SUPPORT=m
# CONFIG_MAC80211_HWSIM is not set
# CONFIG_USB_NET_RNDIS_WLAN is
When the AIC8800 is powered on (for EVB board, please press the button to power on), the USB will detect
Bus 003 Device 007: ID a69c:8801 At this point the module firmware is loaded, and then
you can load aic8800_fdrv.ko and aic_btusb.ko
Bluetooth porting
Bluetooth HAL
PRODUCT_PACKAGES += \
libbt-vendor \
android.hardware.bluetooth@1.0-impl \
android.hardware.bluetooth@1.0-service \
android.hardware.bluetooth@1.0-service.rc
$(LOCAL_PATH)/init.box.samba.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/
init.box.samba.rc \
device/rockchip/common/cifsmanager.sh:system/bin/cifsmanager.sh
Modify android/device/rockchip/common/device.mk
# for BT
/dev/vflash 0660 bluetooth net_bt_stack
/dev/ttyS0 0660 bluetooth net_bt_stack
/dev/ttyS1 0660 bluetooth net_bt_stack
# /dev/ttyS2 0660 bluetooth net_bt_stack
/dev/rtk_btusb 0660 bluetooth net_bt_stack
/dev/aic_btusb 0660 bluetooth net_bt_stack
# for serial
/dev/ttyS4 0660 system system
# for radio
/dev/ttyUSB0 0660 system radio
Modify android/device/rockchip/common/ueventd.rockchip.rc
BOARD_HAVE_BLUETOOTH_RTK := false
BOARD_HAVE_BLUETOOTH_AIC := true
Modify android/device/rockchip/common/wifi_bt_common.mk
Android Port
You can choose the currently developed platform, main control, and system for comparison. For example, if you want to transplant RK3229 to
Android10, you can go to the for_Rockchip/3229/Android10 directory in the patch package and select the difference between orig and mod.
After the kernel porting, Bluetooth porting and Android porting are completed, compile the SDK to use the AIC8800 Wifi and Bluetooth
functions. Enjoy!
Q&A
Q: There was a problem with the GMS test.
A: You need to confirm whether wifi-hal has been transplanted. You can compare the orig and mod in the transplant package to confirm.