RTL8723BU移植

    xiaoxiao2023-11-21  5

    硬件平台:IMX6Q+RTL8723BU(蓝牙4.0+WIFI) 软件操作系统:Android 4.2 rtl8723bu驱动版本: rtl8723BU_WiFi_linux_v4.3.9.3_13200.20150106_BTCOEX20140929-5443.tar.gz

    解压rtl8723bu驱动 到”/root/IMX6Q_android4.2.2/kernel_imx/drivers/net/wireless”, 重命名为rtl8723bu 修改IMX6Q_android4.2.2/kernel_imx/drivers/net/wireless/Makefile 添加:

    obj-$(CONFIG_RTL8723BU) += rtl8723bu/

    修改IMX6Q_android4.2.2/kernel_imx/drivers/net/wireless/Kconfig 添加 source “drivers/net/wireless/rtl8723bu/Kconfig”

    修改rtl8723bu驱动Makefile文件,支持IMX6Q

    diff -Npur a/Makefile b/Makefile --- a/Makefile 2015-01-06 16:37:13.000000000 +0800 +++ b/Makefile 2016-08-15 15:10:28.698828578 +0800 @@ -70,7 +70,7 @@ CONFIG_AP_WOWLAN = n ######### Notify SDIO Host Keep Power During Syspend ########## CONFIG_RTW_SDIO_PM_KEEP_POWER = y ###################### Platform Related ####################### -CONFIG_PLATFORM_I386_PC = y +CONFIG_PLATFORM_I386_PC = n CONFIG_PLATFORM_ANDROID_X86 = n CONFIG_PLATFORM_ANDROID_INTEL_X86 = n CONFIG_PLATFORM_JB_X86 = n @@ -115,6 +115,9 @@ CONFIG_PLATFORM_ARM_WMT = n CONFIG_PLATFORM_TI_DM365 = n CONFIG_PLATFORM_MOZART = n CONFIG_PLATFORM_RTK119X = n +CONFIG_PLATFORM_NOVATEK_NT72668 = n +CONFIG_PLATFORM_HISILICON = n +CONFIG_PLATFORM_FSL_IMX6Q = y ############################################################### CONFIG_DRVEXT_MODULE = n @@ -1048,6 +1051,17 @@ KSRC := /home/android_sdk/nvidia/tegra-1 MODULE_NAME := wlan endif +ifeq ($(CONFIG_PLATFORM_FSL_IMX6Q), y) +EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN +EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN +EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE +EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT +EXTRA_CFLAGS += -DCONFIG_P2P_IPS +ARCH := arm +CROSS_COMPILE := /root/IMX6Q_android4.2.2/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- +KSRC := /root/IMX6Q_android4.2.2/kernel_imx +MODULE_NAME := 8723bu +endif ifeq ($(CONFIG_PLATFORM_TEGRA4_DALMORE), y) EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN # default setting for Android 4.1, 4.2

    配置内核,添加支持rtl8723bu WIFI部分 BT部分

    修改Android代码,支持RTL8723BU (BT+WIFI) 修改device/fsl/imx6/etc/init.rc

    diff -Npur a/device/fsl/imx6/etc/init.rc b/device/fsl/imx6/etc/init.rc --- a/device/fsl/imx6/etc/init.rc 2016-04-20 00:36:51.000000000 +0800 +++ b/device/fsl/imx6/etc/init.rc 2016-06-03 19:35:24.000000000 +0800 @@ -111,6 +111,7 @@ loglevel 3 write /proc/sys/kernel/kptr_restrict 2 write /proc/sys/kernel/dmesg_restrict 1 write /proc/sys/vm/mmap_min_addr 32768 + write /proc/sys/net/ipv4/ping_group_range "0 2147483647" write /proc/sys/kernel/sched_rt_runtime_us 950000 write /proc/sys/kernel/sched_rt_period_us 1000000 @@ -139,6 +140,11 @@ loglevel 3 write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_runtime_us 700000 write /dev/cpuctl/apps/bg_non_interactive/cpu.rt_period_us 1000000 +# qtaguid will limit access to specific data based on group memberships. +# net_bw_acct grants impersonation of socket owners. +# net_bw_stats grants access to other apps' detailed tagged-socket stats. + chown root net_bw_acct /proc/net/xt_qtaguid/ctrl + chown root net_bw_stats /proc/net/xt_qtaguid/stats # Allow everybody to read the xt_qtaguid resource tracking misc dev. # This is needed by any process that uses socket tagging. chmod 0644 /dev/xt_qtaguid @@ -216,12 +222,16 @@ on post-fs-data mkdir /data/misc/vpn 0770 system vpn mkdir /data/misc/systemkeys 0700 system system # give system access to wpa_supplicant.conf for backup and restore - mkdir /data/misc/wifi 0770 wifi system - chmod 0770 /data/misc/wifi + mkdir /data/misc/wifi 0770 wifi wifi + mkdir /data/misc/wifi/sockets 0770 wifi wifi + mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi + mkdir /data/misc/dhcp 0770 dhcp dhcp + chown dhcp system /data/misc/dhcp chmod 0660 /data/misc/wifi/wpa_supplicant.conf chmod 0775 /data/misc/wifi/ipconfig.txt chmod 0775 /system/etc/dhcpcd/dhcpcd-run-hooks mkdir /data/local 0751 root root + mkdir /data/misc/media 0700 media media # For security reasons, /data/local/tmp should always be empty. # Do not place files or directories in /data/local/tmp @@ -235,9 +245,6 @@ on post-fs-data mkdir /data/property 0700 root root mkdir /data/ssh 0750 root shell mkdir /data/ssh/empty 0700 root root - mkdir /data/system 0775 system system - mkdir /data/system/wpa_supplicant 0771 wifi wifi - chmod 0771 /data/system/wpa_supplicant # create dalvik-cache, so as to enforce our permissions mkdir /data/dalvik-cache 0771 system system @@ -264,6 +271,36 @@ on post-fs-data # Set indication (checked by vold) that we have finished this action setprop vold.post_fs_data_done 1 +#wifi + mkdir /data/system 0775 system system + mkdir /data/system/wpa_supplicant 0771 wifi wifi + chmod 0771 /data/system/wpa_supplicant + symlink /data/misc/wifi/wpa_supplicant /data/system/wpa_supplicant + + setprop wifi.supp_delay_para 800 + setprop wifi.supplicant_scan_interval 10 + setprop wifi.wapi.supported true + setprop wifi.interface wlan0 + setprop wlan.driver.status ok + 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/wpa_supplicant.conf + 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/wpa_supplicant.conf + chown wifi wifi /data/misc/wifi + chmod 0666 /data/misc/wifi/wpa_supplicant.conf + mkdir /data/system/wpa_supplicant + chmod 0777 /data/system/wpa_supplicant + chmod 0777 /wlan0 + #chown wifi system /data/system/wpa_supplicant + chown wifi system /wlan0 + mkdir /data/misc/dhcp 0777 system system + chmod 0770 /data/misc/dhcp + chown dhcp dhcp /data/misc/dhcp + chown root system /data on boot # basic network init @@ -324,12 +361,6 @@ on boot chown system system /sys/class/leds/red/device/grpfreq chown system system /sys/class/leds/red/device/grppwm chown system system /sys/class/leds/red/device/blink - chown system system /sys/class/leds/red/brightness - chown system system /sys/class/leds/green/brightness - chown system system /sys/class/leds/blue/brightness - chown system system /sys/class/leds/red/device/grpfreq - chown system system /sys/class/leds/red/device/grppwm - chown system system /sys/class/leds/red/device/blink chown system system /sys/class/timed_output/vibrator/enable chown system system /sys/module/sco/parameters/disable_esco chown system system /sys/kernel/ipv4/tcp_wmem_min @@ -344,6 +375,7 @@ on boot # ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208 setprop net.tcp.buffersize.wifi 524288,1048576,2097152,262144,524288,1048576 + setprop net.tcp.buffersize.ethernet 524288,2097152,4194304,524288,2097152,4194304 setprop net.tcp.buffersize.lte 524288,1048576,2097152,262144,524288,1048576 setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208 setprop net.tcp.buffersize.hspa 4094,87380,262144,4096,16384,262144 @@ -373,10 +405,8 @@ on boot # Prepare for wifi setprop wifi.interface wlan0 setprop wifi.ap.interface wlan0 - mkdir /data/misc/wifi/sockets 0770 wifi system - mkdir /data/misc/dhcp 0770 dhcp dhcp - chown dhcp dhcp /data/misc/dhcp +# write /sys/bus/usb/devices/2-1.4/bConfigurationValue 1 chmod 777 /dev/ttyUSB0 chmod 777 /dev/ttyUSB2 @@ -394,9 +424,9 @@ on boot write /sys/bus/platform/drivers/fsl-ehci/fsl-ehci.1/power/wakeup disabled # serial no, vendor id,etc configure - write /sys/class/android_usb/android0/iManufacturer $ro.product.manufacturer - write /sys/class/android_usb/android0/iProduct $ro.product.model - write /sys/class/android_usb/android0/iSerial $ro.serialno + write /sys/class/android_usb/android0/iSerial ${ro.serialno} + write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer} + write /sys/class/android_usb/android0/iProduct ${ro.product.model} # Prepare for RIL setprop gsm.ril.delay 15 @@ -560,20 +590,7 @@ service bootanim /system/bin/bootanimati disabled oneshot -service dbus /system/bin/dbus-daemon --system --nofork - class main - socket dbus stream 660 bluetooth bluetooth - user bluetooth - group bluetooth net_bt_admin - -service bluetoothd /system/bin/bluetoothd -n - class main - socket bluetooth stream 660 bluetooth bluetooth - socket dbus_bluetooth stream 660 bluetooth bluetooth - # init.rc does not yet support applying capabilities, so run as root and - # let bluetoothd drop uid to bluetooth with the right linux capabilities - group bluetooth net_bt_admin misc - disabled + service installd /system/bin/installd class main @@ -630,32 +647,43 @@ service mdnsd /system/bin/mdnsd disabled oneshot -service dhcpcd_wlan0 /system/bin/dhcpcd -ABKL +service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL class main disabled oneshot -service dhcpcd_p2p /system/bin/dhcpcd -ABKL +service dhcpcd_p2p /system/bin/dhcpcd -aABKL class main disabled oneshot service dhcpcd_eth0 /system/bin/dhcpcd -ABKL - class late_start + class main disabled oneshot -service dhcpcd_eth1 /system/bin/dhcpcd -ABKL - class late_start +service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL + class main disabled oneshot -service hostapd /system/bin/hostapd /data/misc/wifi/hostapd.conf - socket hostapd_wlan0 dgram 660 root wifi - user root - group wifi +service iprenew_wlan0 /system/bin/dhcpcd -n + class main + disabled + oneshot +service iprenew_p2p /system/bin/dhcpcd -n + class main + disabled oneshot + +service iprenew_eth0 /system/bin/dhcpcd -n + class main + disabled + oneshot +service iprenew_bt-pan /system/bin/dhcpcd -n + class main disabled + oneshot service ril-daemon /system/bin/rild -l /system/lib/libhuawei-ril.so class main

    修改device/fsl/imx6/etc/ueventd.freescale.rc

    diff -Npur a/device/fsl/imx6/etc/ueventd.freescale.rc b/device/fsl/imx6/etc/ueventd.freescale.rc --- a/device/fsl/imx6/etc/ueventd.freescale.rc 2016-01-14 10:04:15.000000000 +0800 +++ b/device/fsl/imx6/etc/ueventd.freescale.rc 2016-06-01 16:12:29.000000000 +0800 @@ -1,5 +1,6 @@ /dev/pmem_gpu 0660 system graphics /dev/irtouch 0666 root root +/dev/rtk_btusb 0660 bluetooth bluetooth /dev/snd/* 0664 system audio /dev/ttyUSB* 0640 radio radio /dev/ttyACM* 0640 radio radio

    修改device/fsl/imx6/imx6.mk

    diff -Npur a/device/fsl/imx6/imx6.mk b/device/fsl/imx6/imx6.mk --- a/device/fsl/imx6/imx6.mk 2016-05-06 00:20:01.000000000 +0800 +++ b/device/fsl/imx6/imx6.mk 2016-06-01 17:52:32.000000000 +0800 @@ -19,6 +19,8 @@ PRODUCT_PACKAGES += \ Email \ FSLOta \ CactusPlayer \ + WfdSink \ + wfd \ ethernet \ VideoEditor \ FSLProfileApp \ @@ -35,13 +37,13 @@ PRODUCT_PACKAGES += \ ip-up-ppp0 \ ip-down-ppp0 \ wpa_supplicant \ + rtl_wpa_supplicant \ wpa_supplicant.conf \ - wpa_supplicant_p2p.conf \ + p2p_supplicant_overlay.conf \ + wpa_supplicant_overlay.conf \ dispd \ ts_calibrator \ libion \ - MarvellWirelessDaemon \ - libMarvellWireless \ display_mode_fb0.conf \ display_mode_fb2.conf \ display_mode_fb4.conf @@ -134,9 +136,6 @@ PRODUCT_PACKAGES += \ iwlwifi-6000-4.ucode \ iwlwifi-5000-5.ucode \ iwlagn.ko -#MARVELL sd8787 wifi firmware -PRODUCT_PACKAGES += \ - sd8787_uapsta.bin \ # gps related lib PRODUCT_PACKAGES += \ @@ -307,17 +306,8 @@ PRODUCT_COPY_FILES += \ device/fsl/common/input/Dell_Dell_USB_Keyboard.idc:system/usr/idc/Dell_Dell_USB_Keyboard.idc \ device/fsl/common/input/eGalax_Touch_Screen.idc:system/usr/idc/eGalax_Touch_Screen.idc \ device/fsl/common/input/eGalax_Touch_Screen.idc:system/usr/idc/HannStar_P1003_Touchscreen.idc \ - device/fsl/common/input/eGalax_Touch_Screen.idc:system/usr/idc/Vendor_0eef_Product_725e.idc \ - device/fsl/common/input/eGalax_Touch_Screen.idc:system/usr/idc/Vendor_6615_Product_0001.idc \ device/fsl/common/input/eGalax_Touch_Screen.idc:system/usr/idc/Novatek_NT11003_Touch_Screen.idc \ - device/fsl/common/input/eGalax_Touch_Screen.idc:system/usr/idc/Vendor_0eef_Product_0001.idc \ device/fsl/common/input/eGalax_Touch_Screen.idc:system/usr/idc/ft5x0x_ts.idc \ - device/fsl/common/input/Vendor_6615_Product_0080.idc:system/usr/idc/Vendor_6615_Product_0080.idc \ - device/fsl/common/input/Vendor_6615_Product_0081.idc:system/usr/idc/Vendor_6615_Product_0081.idc \ - device/fsl/common/input/Vendor_6615_Product_0081.idc:system/usr/idc/Vendor_14e1_Product_3500.idc \ - device/fsl/common/input/PenMount_6000_USB_TouchScreen.idc:system/usr/idc/PenMount_6000_USB_TouchScreen.idc \ - device/fsl/common/input/ilitek_hid.idc:system/usr/idc/ilitek_hid.idc \ - device/fsl/common/input/eGalaxTouch_VirtualDevice.idc:system/usr/idc/eGalaxTouch_VirtualDevice.idc \ device/fsl/imx6/etc/init.rc:root/init.rc \ device/fsl/imx6/etc/apns-conf.xml:system/etc/apns-conf.xml \ device/fsl/imx6/etc/init.usb.rc:root/init.freescale.usb.rc \

    修改device/fsl/sabresd_6dq/bluetooth/bdroid_buildcfg.h

    diff -Npur a/device/fsl/sabresd_6dq/bluetooth/bdroid_buildcfg.h b/device/fsl/sabresd_6dq/bluetooth/bdroid_buildcfg.h --- a/device/fsl/sabresd_6dq/bluetooth/bdroid_buildcfg.h 2015-02-06 23:22:50.000000000 +0800 +++ b/device/fsl/sabresd_6dq/bluetooth/bdroid_buildcfg.h 2016-06-01 16:12:29.000000000 +0800 @@ -24,10 +24,9 @@ // Networking, Capturing, Object Transfer // MAJOR CLASS: COMPUTER // MINOR CLASS: PALM SIZE PC/PDA -#define BTA_DM_COD {0x1A, 0x01, 0x14} +#define BTA_DM_COD {0x5A, 0x01, 0x1C} #define BTIF_HF_SERVICES (BTA_HSP_SERVICE_MASK) #define BTIF_HF_SERVICE_NAMES { BTIF_HSAG_SERVICE_NAME } -#define PAN_NAP_DISABLED TRUE #endif

    修改device/fsl/sabresd_6dq/BoardConfig.mk

    diff -Npur a/device/fsl/sabresd_6dq/BoardConfig.mk b/device/fsl/sabresd_6dq/BoardConfig.mk --- a/device/fsl/sabresd_6dq/BoardConfig.mk 2016-05-06 07:44:52.000000000 +0800 +++ b/device/fsl/sabresd_6dq/BoardConfig.mk 2016-06-01 16:12:29.000000000 +0800 @@ -3,6 +3,7 @@ # include device/fsl/imx6/soc/imx6dq.mk +#include device/fsl/imx6/imx6.mk include device/fsl/sabresd_6dq/build_id.mk include device/fsl/imx6/BoardConfigCommon.mk include device/fsl-proprietary/gpu-viv/fsl-gpu.mk @@ -16,76 +17,25 @@ PRODUCT_MODEL := SABRESD-MX6DQ # Wifi # BOARD_WLAN_VENDOR := ATHEROS - -#BOARD_WIFI_VENDOR := realtek -BOARD_WLAN_DEVICE := SD8XXX -# for atheros vendor -# ifeq ($(BOARD_WLAN_VENDOR),ATHEROS) -ifeq ($(BOARD_WLAN_DEVICE),ATHEROS) -BOARD_WLAN_DEVICE := ar6003 -BOARD_HAS_ATH_WLAN := true -WPA_SUPPLICANT_VERSION := VER_0_8_ATHEROS -WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/ath6kl_sdio.ko" -WIFI_DRIVER_MODULE_NAME := "ath6kl_sdio" -WIFI_DRIVER_MODULE_ARG := "suspend_mode=3 wow_mode=2 ar6k_clock=26000000 ath6kl_p2p=1" -WIFI_DRIVER_P2P_MODULE_ARG := "suspend_mode=3 wow_mode=2 ar6k_clock=26000000 ath6kl_p2p=1 debug_mask=0x2413" -WIFI_SDIO_IF_DRIVER_MODULE_PATH := "/system/lib/modules/cfg80211.ko" -WIFI_SDIO_IF_DRIVER_MODULE_NAME := "cfg80211" -WIFI_SDIO_IF_DRIVER_MODULE_ARG := "" -WIFI_COMPAT_MODULE_PATH := "/system/lib/modules/compat.ko" -WIFI_COMPAT_MODULE_NAME := "compat" -WIFI_COMPAT_MODULE_ARG := "" -else ifeq ($(BOARD_WLAN_DEVICE), SD8XXX) -#TARGET_KERNEL_MODULES := \ - kernel_imx/drivers/net/wireless/sd8787/wlan_src/mlan.ko:system/lib/modules/mlan.ko \ - kernel_imx/drivers/net/wireless/sd8787/wlan_src/sd8xxx.ko:system/lib/modules/sd8xxx.ko \ - kernel_imx/drivers/net/wireless/sd8787/mbtc_src/mbt8xxx.ko:system/lib/modules/mbt8xxx.ko -BOARD_WPA_SUPPLICANT_DRIVER := NL80211 -WPA_SUPPLICANT_VERSION := VER_0_8_MARVELL -BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_mrvl -BOARD_ENABLE_MARVELL_WIFI := true -BOARD_HAVE_BLUETOOTH := true -BOARD_HAVE_BLUETOOTH_MRVL := true -##BOARD_HAVE_BLUETOOTH_DUN := true -##BOARD_ENABLE_MARVELL_BLUETOOTH := true -#BOARD_ENABLE_MARVELL_EAP_SIM := true -BOARD_HOSTAPD_DRIVER := NL80211 -BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_mrvl -SD8787_CAL_ON_BOARD := true -FM_NOT_USES_RECORD := true -FM_USES_DIGITAL_MODE := false -endif -#for intel vendor -# ifeq ($(BOARD_WLAN_VENDOR),INTEL) -ifeq ($(BOARD_WLAN_DEVICE),INTEL) -BOARD_HOSTAPD_PRIVATE_LIB ?= private_lib_driver_cmd -BOARD_WPA_SUPPLICANT_PRIVATE_LIB ?= private_lib_driver_cmd -WPA_SUPPLICANT_VERSION := VER_0_8_X -HOSTAPD_VERSION := VER_0_8_X -BOARD_WPA_SUPPLICANT_PRIVATE_LIB := private_lib_driver_cmd_intel -WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/iwlagn.ko" -WIFI_DRIVER_MODULE_NAME := "iwlagn" -WIFI_DRIVER_MODULE_PATH ?= auto -endif +BOARD_HAVE_WIFI := true +BOARD_WIFI_VENDOR := realtek ifeq ($(BOARD_WIFI_VENDOR), realtek) +TARGET_KERNEL_MODULES := \ + device/fsl/sabresd_6dq/bluetooth/rtl8723b_fw:system/etc/firmware/rtl8723b_fw \ + device/fsl/sabresd_6dq/bluetooth/rtl8723bu_config:system/etc/firmware/rtl8723bu_config \ + kernel_imx/drivers/net/wireless/rtl8723bu/8723bu.ko:system/lib/modules/8723bu.ko \ + kernel_imx/drivers/bluetooth/rtk_btusb.ko:system/lib/modules/rtk_btusb.ko + WPA_SUPPLICANT_VERSION := VER_0_8_X BOARD_WPA_SUPPLICANT_DRIVER := NL80211 CONFIG_DRIVER_WEXT :=y BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl BOARD_HOSTAPD_DRIVER := NL80211 BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl -BOARD_WLAN_DEVICE := rtl8192cu -#BOARD_WLAN_DEVICE := rtl8192du -#BOARD_WLAN_DEVICE := rtl8192ce -#BOARD_WLAN_DEVICE := rtl8192de -#BOARD_WLAN_DEVICE := rtl8723as -#BOARD_WLAN_DEVICE := rtl8723au -#BOARD_WLAN_DEVICE := rtl8189es -#BOARD_WLAN_DEVICE := rtl8723bs -#BOARD_WLAN_DEVICE := rtl8723bu -WIFI_DRIVER_MODULE_NAME:= "8723bs" -WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/8723bs.ko" +BOARD_WLAN_DEVICE := rtl8723bu +WIFI_DRIVER_MODULE_NAME:= "8723bu" +WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/8723bu.ko" WIFI_DRIVER_MODULE_ARG := "ifname=wlan0 if2name=p2p0" WIFI_FIRMWARE_LOADER := "" WIFI_DRIVER_FW_PATH_STA := "" @@ -99,8 +49,8 @@ WIFI_TEST_INTERFACE := "sta" BOARD_MODEM_VENDOR := AMAZON -BOARD_HAVE_HARDWARE_GPS := true -USE_ATHR_GPS_HARDWARE := true +BOARD_HAVE_HARDWARE_GPS := false +USE_ATHR_GPS_HARDWARE := false USE_QEMU_GPS_HARDWARE := false #for accelerator sensor, need to define sensor type here @@ -138,10 +88,9 @@ BOARD_KERNEL_CMDLINE += mtdparts=gpmi-n endif # atheros 3k BT -ifeq ($(BOARD_HAVE_BLUETOOTH_MRVL),) -BOARD_USE_AR3K_BLUETOOTH := true -BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/fsl/sabresd_6dq/bluetooth -endif +BOARD_HAVE_BLUETOOTH := true +BOARD_HAVE_BLUETOOTH_RTK := true +BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR ?= device/fsl/sabresd_6dq/bluetooth USE_ION_ALLOCATOR := false USE_GPU_ALLOCATOR := true @@ -152,6 +101,10 @@ IMX_CAMERA_HAL_V2 := true # define frame buffer count NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 +PRODUCT_PROPERTY_OVERRIDES += \ + frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \ + frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \ + wifi.interface=wlan0 TARGET_BOOTLOADER_CONFIG := 6q:mx6q_sabresd_android_config 6dl:mx6dl_sabresd_android_config

    修改device/fsl/sabresd_6dq/device.mk diff -Npur a/device/fsl/sabresd_6dq/device.mk b/device/fsl/sabresd_6dq/device.mk — a/device/fsl/sabresd_6dq/device.mk 1970-01-01 08:00:00.000000000 +0800 +++ b/device/fsl/sabresd_6dq/device.mk 2016-06-01 16:12:29.000000000 +0800 @@ -0,0 +1,5 @@ +… + +#Realtek add start +$(call inherit-product, device/fsl/sabresd_6dq/realtek/bt/firmware/rtl8723b/device-rtl.mk) +#realtek add end

    修改device/fsl/sabresd_6dq/init.freescale.rc

    diff -Npur a/device/fsl/sabresd_6dq/init.freescale.rc b/device/fsl/sabresd_6dq/init.freescale.rc --- a/device/fsl/sabresd_6dq/init.freescale.rc 1970-01-01 08:00:00.000000000 +0800 +++ b/device/fsl/sabresd_6dq/init.freescale.rc 2016-06-01 16:12:29.000000000 +0800 @@ -0,0 +1,228 @@ +import init.${ro.hardware}.usb.rc + +on init + start watchdogd + + # See storage config details at http://source.android.com/tech/storage/ + mkdir /mnt/shell/emulated 0700 shell shell + mkdir /storage/emulated 0555 root root + + export EXTERNAL_STORAGE /storage/emulated/legacy + export EMULATED_STORAGE_SOURCE /mnt/shell/emulated + export EMULATED_STORAGE_TARGET /storage/emulated + + # Support legacy paths + symlink /storage/emulated/legacy /sdcard + symlink /storage/emulated/legacy /mnt/sdcard + symlink /storage/emulated/legacy /storage/sdcard0 + symlink /mnt/shell/emulated/0 /storage/emulated/legacy + +on boot + + # Set permission for IIM node + symlink /dev/mxs_viim /dev/mxc_mem + + # Set GPS serial and reset GPIO pin + write /sys/class/gpio/export 60 + write /sys/class/gpio/gpio60/direction "out" + write /sys/class/gpio/gpio60/value 1 + + # Enable Tethering in the Settings + setprop ro.tether.denied false + + # 3D acceleration property + setprop debug.sf.showfps 0 + setprop debug.sf.enable_hgl 1 + setprop debug.egl.hw 1 + + setprop hwc.stretch.filter 1 + setprop hwc.enable_dither 1 + + # fsl omx graphic manager media framework property + setprop media.omxgm.enable-player 1 + setprop media.omxgm.enable-record 1 + setprop media.omxgm.enable-scan 1 + setprop rw.VIDEO_RENDER_NAME video_render.surface + + #Define the config for dual camera + setprop camera.disable_zsl_mode 1 + #For landscape mode, orient is 0 + #For portrait mode, orient is 90 + #the android before honycomb are all in portrait mode + #setprop back_camera_name ov5640_mipi + setprop back_camera_name ov5640_camera + setprop back_camera_orient 0 + #setprop front_camera_name uvc,ov5642_camera,ov5640_camera + setprop front_camera_name uvc + setprop front_camera_orient 0 + + # Set OpenGLES version + setprop ro.opengles.version 131072 + + # Set rotation to 270 to cofigure as portrait mode + setprop ro.sf.hwrotation 0 + + # Set the density to 160dpi, default 128dpi is not good + setprop ro.sf.lcd_density 160 + # Set extsd access permission + setprop persist.sampling_profiler 1 +# change for FSL specific service + chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq + chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq + chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor + chown root system /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq + chmod 0440 /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq + chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies + chown root system /sys/devices/system/cpu/cpu0/online + chmod 0664 /sys/devices/system/cpu/cpu0/online + chown root system /sys/devices/system/cpu/cpu1/online + chmod 0664 /sys/devices/system/cpu/cpu1/online + chown root system /sys/devices/system/cpu/cpu2/online + chmod 0664 /sys/devices/system/cpu/cpu2/online + chown root system /sys/devices/system/cpu/cpu3/online + chmod 0664 /sys/devices/system/cpu/cpu3/online + + mkdir /system/etc/wifi 0770 wifi wifi + chmod 0770 /system/etc/wifi + chmod 0660 /system/etc/wifi/wpa_supplicant.conf + chown wifi wifi /system/etc/wifi/wpa_supplicant.conf + #wpa_supplicant control socket for android wifi.c (android private socket) + mkdir /data/misc/wifi 0770 wifi wifi + mkdir /data/misc/wifi/sockets 0770 wifi wifi + chmod 0770 /data/misc/wifi + chmod 0660 /data/misc/wifi/wpa_supplicant.conf + chown wifi wifi /data/misc/wifi + chown wifi wifi /data/misc/wifi/wpa_supplicant.conf + + + chmod 0777 /dev/ttymxc0 + chmod 0777 /dev/ttymxc1 + chmod 0777 /dev/ttymxc2 + chmod 0777 /dev/ttymxc3 + chmod 0777 /dev/ttymxc4 + + + # prepare for ril + setprop gsm.ril.delay 15 + setprop ro.ril.wake_lock_timeout 300 + + # Default backlight device + setprop hw.backlight.dev "pwm-backlight.0" + # Chmod/chown FSL specific sys entry + chown system system /sys/class/backlight/pwm-backlight.0/brightness + chmod 0660 /sys/class/backlight/pwm-backlight.0/brightness + + # Set light sensor sysfs path and light sensor threshold lux value + setprop ro.hardware.lightsensor "/sys/class/i2c-dev/i2c-2/device/2-0044/" + setprop ro.lightsensor.threshold 20 + + # No bluetooth hardware present + setprop hw.bluetooth 0 + setprop wlan.interface wlan0 + setprop wlan.driver.status "ok" + + setprop hw.bluetooth 1 + # bluetooth + # change back to bluetooth from system + chown bluetooth net_bt_stack /data/misc/Bluetooth + mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack + + # Add for bluetooth + insmod /system/lib/modules/rtk_btusb.ko + chmod 0660 /dev/rtk_btusb + chown bluetooth net_bt_stack /dev/rtk_btusb + + # bluetooth MAC address programming + chown bluetooth net_bt_stack ro.bt.bdaddr_path + chown bluetooth net_bt_stack /system/etc/bluetooth + chown bluetooth net_bt_stack /data/misc/bluetooth + setprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr" + +# mount the debugfs + mount debugfs none /sys/kernel/debug/ + +# Set watchdog timer to 30 seconds and pet it every 10 seconds to get a 20 second margin + service watchdogd /sbin/watchdogd 10 20 + class core + +service p2p_supplicant /system/bin/wpa_supplicant \ + -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ + -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \ + -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 + class late_start + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service rtw_suppl_con /system/bin/rtl_wpa_supplicant \ + -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \ + -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \ + -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 + class late_start + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service wpa_supplicant /system/bin/wpa_supplicant \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ + -I/system/etc/wifi/wpa_supplicant_overlay.conf \ + -O/data/misc/wifi/sockets \ + -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 + socket wpa_wlan0 dgram 660 wifi wifi + class late_start + disabled + oneshot + +service rtw_suppl /system/bin/wpa_supplicant -dd -iwlan0 -Dnl80211 \ + -c/data/misc/wifi/wpa_supplicant.conf + socket wpa_wlan0 dgram 660 wifi wifi + class main + disabled + oneshot + + +service dhcpcd_wlan0 /system/bin/dhcpcd -aABKL + class main + disabled + oneshot + +service iprenew_wlan0 /system/bin/dhcpcd -n + class main + disabled + oneshot + +# magd daemon +service magd /system/bin/magd + class main + user system + group input + oneshot + +# Orion InG +#service ing /system/bin/ingsvcd -c /system/etc/gps/Orion.ini +# socket athrkv9988 stream 666 system system +# socket athrshmsocket stream 666 system system +# socket athrsupl59991 stream 666 system system +# class late_start +# user root +# group gps +# oneshot + + + + + + + +on fs +# mount ext4 partitions + mount_all /fstab.freescale

    修改device/fsl/sabresd_6dq/init.rc

    diff -Npur a/device/fsl/sabresd_6dq/init.rc b/device/fsl/sabresd_6dq/init.rc --- a/device/fsl/sabresd_6dq/init.rc 2016-04-21 17:03:07.000000000 +0800 +++ b/device/fsl/sabresd_6dq/init.rc 2016-06-03 19:35:00.000000000 +0800 @@ -45,14 +45,16 @@ on boot setprop rw.VIDEO_RENDER_NAME video_render.surface #Define the config for dual camera - setprop camera.disable_zsl_mode 1 + #setprop camera.disable_zsl_mode 1 #For landscape mode, orient is 0 #For portrait mode, orient is 90 #the android before honycomb are all in portrait mode - setprop back_camera_name uvc,ov5642_camera,ov5640_camera,ov5640_mipi - setprop back_camera_orient 0 - setprop front_camera_name uvc,ov5642_camera,ov5640_camera - setprop front_camera_orient 0 + #setprop back_camera_name ov5640_mipi + #setprop back_camera_name ov5640_camera + #setprop back_camera_orient 0 + #setprop front_camera_name uvc,ov5642_camera,ov5640_camera + #setprop front_camera_name uvc + #setprop front_camera_orient 0 # Set OpenGLES version setprop ro.opengles.version 131072 @@ -62,6 +64,8 @@ on boot # Set the density to 160dpi, default 128dpi is not good setprop ro.sf.lcd_density 160 + # Set extsd access permission + setprop persist.sampling_profiler 1 # change for FSL specific service chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq @@ -82,13 +86,14 @@ on boot chmod 0664 /sys/devices/system/cpu/cpu3/online - chmod 0777 /dev/ttymxc0 chmod 0777 /dev/ttymxc1 chmod 0777 /dev/ttymxc2 chmod 0777 /dev/ttymxc3 chmod 0777 /dev/ttymxc4 # prepare for ril setprop gsm.ril.delay 15 setprop ro.ril.wake_lock_timeout 300 @@ -104,82 +109,89 @@ on boot setprop ro.lightsensor.threshold 20 # No bluetooth hardware present + setprop hw.bluetooth 0 setprop wlan.interface wlan0 + setprop wlan.driver.status "ok" + + setprop hw.bluetooth 1 + # bluetooth + # change back to bluetooth from system + chown bluetooth net_bt_stack /data/misc/Bluetooth + mkdir /data/misc/bluedroid 0770 bluetooth net_bt_stack + + # Add for bluetooth + insmod /system/lib/modules/rtk_btusb.ko + chmod 0660 /dev/rtk_btusb + chown bluetooth net_bt_stack /dev/rtk_btusb + + # bluetooth MAC address programming + chown bluetooth net_bt_stack ro.bt.bdaddr_path + chown bluetooth net_bt_stack /system/etc/bluetooth + chown bluetooth net_bt_stack /data/misc/bluetooth + setprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr" # mount the debugfs mount debugfs none /sys/kernel/debug/ - # chmod 0777 system/lib/modules/irtouchusb-dt.ko - #insmod system/lib/modules/irtouchusb-dt.ko +# Set watchdog timer to 30 seconds and pet it every 10 seconds to get a 20 second margin + service watchdogd /sbin/watchdogd 10 20 + class core -service mwirelessd /system/bin/MarvellWirelessDaemon - class main - -# this service is for marvell wifi 8787 -service p2p_supplicant /system/bin/wpa_supplicant \ - -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf -N \ - -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf - class late_start - socket wpa_wlan0 dgram 660 wifi wifi - disabled - oneshot +# Orion InG +#service ing /system/bin/ingsvcd -c /system/etc/gps/Orion.ini +# socket athrkv9988 stream 666 system system +# socket athrshmsocket stream 666 system system +# socket athrsupl59991 stream 666 system system +# class late_start +# user root +# group gps +# oneshot -# this is for rtl8723 -#service rtw_suppl_con /system/bin/wpa_supplicant \ -# -ip2p0 -Dnl80211 -c /data/misc/wifi/p2p_supplicant.conf -e/data/misc/wifi/entropy.bin -N \ -# -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -# class main -# socket wpa_wlan0 dgram 660 wifi wifi -# disabled -# oneshot - -#service rtw_suppl /system/bin/wpa_supplicant -iwlan0 -Dnl80211 -# -c/data/misc/wifi/wpa_supplicant.conf -# socket wpa_wlan0 dgram 660 wifi wifi -# class main -# disabled -# oneshot -# magd daemon -service magd /system/bin/magd - class main - user system - group input - oneshot - -# Orion InG -service ing /system/bin/ingsvcd -c /system/etc/gps/Orion.ini - socket athrkv9988 stream 666 system system - socket athrshmsocket stream 666 system system - socket athrsupl59991 stream 666 system system - class late_start - user root - group gps - oneshot +on fs +# mount ext4 partitions + mount_all /fstab.freescale -service iprenew_wlan0 /system/bin/dhcpcd -n - class main - disabled - oneshot +service rtw_suppl_con /system/bin/wpa_supplicant \ + -ip2p0 -Dnl80211 -c /data/misc/wifi/p2p_supplicant.conf -e/data/misc/wifi/entropy.bin -N \ + -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf + class main + socket wpa_wlan0 dgram 660 wifi wifi + disabled + oneshot + +service rtw_suppl /system/bin/wpa_supplicant -iwlan0 -Dnl80211 + -c/data/misc/wifi/wpa_supplicant.conf + socket wpa_wlan0 dgram 660 wifi wifi + class main + disabled + oneshot -service iprenew_p2p /system/bin/dhcpcd -n +service dhcpcd_wlan0 /system/bin/dhcpcd -aABKL class main disabled oneshot -service init-setup /system/bin/insmod.sh - user root - group root - disabled - oneshot +service dhcpcd_p2p /system/bin/dhcpcd -aABKL + class main + disabled + oneshot +service iprenew_wlan0 /system/bin/dhcpcd -n + class main + disabled + oneshot -on property:sys.boot_completed=1 - start init-setup +service iprenew_p2p /system/bin/dhcpcd -n + class main + disabled + oneshot -setprop sys.emulated.battery 1 +# magd daemon +service magd /system/bin/magd + class main + user system + group input + oneshot -on fs -# mount ext4 partitions - mount_all /fstab.freescale

    修改 device/fsl/sabresd_6dq/overlay/frameworks/base/core/res/res/values/config.xml

    diff -Npur a/device/fsl/sabresd_6dq/overlay/frameworks/base/core/res/res/values/config.xml b/device/fsl/sabresd_6dq/overlay/frameworks/base/core/res/res/values/config.xml --- a/device/fsl/sabresd_6dq/overlay/frameworks/base/core/res/res/values/config.xml 2015-02-06 23:22:50.000000000 +0800 +++ b/device/fsl/sabresd_6dq/overlay/frameworks/base/core/res/res/values/config.xml 2016-06-01 16:12:29.000000000 +0800 @@ -37,13 +37,9 @@ <!-- 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. --> - <integer-array translatable="false" name="config_tether_upstream_types"> - <item>0</item> - <item>1</item> - <item>5</item> - <item>7</item> - <item>9</item> - </integer-array> + <string-array translatable="false" name="config_tether_bluetooth_regexs"> + <item>"bt-pan"</item> + </string-array> <!-- Flag indicating whether we should enable the automatic brightness in Settings. config_hardware_automatic_brightness_available is not set, so we will use software implementation --> @@ -73,7 +69,6 @@ <item>"mobile_fota,10,0,3,60000,true"</item> <item>"mobile_ims,11,0,3,60000,true"</item> <item>"mobile_cbs,12,0,3,60000,true"</item> - <item>"wifi_p2p,13,1,0,-1,true"</item> <item>"bluetooth,7,7,2,-1,true"</item> <item>"ethernet,9,9,2,-1,true"</item> </string-array>

    修改device/fsl/sabresd_6dq/realtek/bt/firmware/rtl8723a/device-rtl.mk

    diff -Npur a/device/fsl/sabresd_6dq/realtek/bt/firmware/rtl8723a/device-rtl.mk b/device/fsl/sabresd_6dq/realtek/bt/firmware/rtl8723a/device-rtl.mk --- a/device/fsl/sabresd_6dq/realtek/bt/firmware/rtl8723a/device-rtl.mk 1970-01-01 08:00:00.000000000 +0800 +++ b/device/fsl/sabresd_6dq/realtek/bt/firmware/rtl8723a/device-rtl.mk 2016-06-01 16:12:30.000000000 +0800 @@ -0,0 +1,4 @@ +RTK_BT_FIRMWARE_DIR := rtl8723a +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/$(RTK_BT_FIRMWARE_DIR)_fw:system/etc/firmware/rtl8723a_fw \ + $(LOCAL_PATH)/$(RTK_BT_FIRMWARE_DIR)_config:system/etc/firmware/rtl8723a_config

    修改hardware/realtek/bt/libbt-vendor/Android.mk

    diff -Npur a/hardware/realtek/bt/libbt-vendor/Android.mk b/hardware/realtek/bt/libbt-vendor/Android.mk --- a/hardware/realtek/bt/libbt-vendor/Android.mk 1970-01-01 08:00:00.000000000 +0800 +++ b/hardware/realtek/bt/libbt-vendor/Android.mk 2013-07-08 12:28:42.000000000 +0800 @@ -0,0 +1,29 @@ +LOCAL_PATH := $(call my-dir) + +ifneq ($(BOARD_HAVE_BLUETOOTH_RTK),) + +include $(CLEAR_VARS) + +BDROID_DIR := $(TOP_DIR)external/bluetooth/bluedroid + +LOCAL_SRC_FILES := \ + src/bt_vendor_rtk.c + +LOCAL_C_INCLUDES += \ + $(LOCAL_PATH)/include \ + $(BDROID_DIR)/hci/include + +LOCAL_SHARED_LIBRARIES := \ + libcutils + +LOCAL_MODULE := libbt-vendor +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := SHARED_LIBRARIES +LOCAL_MODULE_OWNER := hci +LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_SHARED_LIBRARIES) + +include $(LOCAL_PATH)/vnd_buildcfg.mk + +include $(BUILD_SHARED_LIBRARY) + +endif # BOARD_HAVE_BLUETOOTH_RTK

    修改hardware/realtek/bt/libbt-vendor/include/bt_vendor_rtk.h

    diff -Npur a/hardware/realtek/bt/libbt-vendor/include/bt_vendor_rtk.h b/hardware/realtek/bt/libbt-vendor/include/bt_vendor_rtk.h --- a/hardware/realtek/bt/libbt-vendor/include/bt_vendor_rtk.h 1970-01-01 08:00:00.000000000 +0800 +++ b/hardware/realtek/bt/libbt-vendor/include/bt_vendor_rtk.h 2016-05-29 15:14:55.000000000 +0800 @@ -0,0 +1,64 @@ +/****************************************************************************** + * + * Copyright (C) 2009-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * Filename: bt_vendor_rtk.h + * + * Description: A wrapper header file of bt_vendor_lib.h + * + * Contains definitions specific for interfacing with Broadcom + * Bluetooth chipsets + * + ******************************************************************************/ + + +#ifndef BT_VENDOR_RTK_H +#define BT_VENDOR_RTK_H + +#include "bt_vendor_lib.h" +#include "vnd_buildcfg.h" + +/****************************************************************************** +** Constants & Macros +******************************************************************************/ + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef TRUE +#define TRUE (!FALSE) +#endif + +/* Device port name where Bluetooth controller attached */ +#ifndef BLUETOOTH_UART_DEVICE_PORT +#define BLUETOOTH_UART_DEVICE_PORT "/dev/ttyO1" /* maguro */ +#endif + +/****************************************************************************** +** Extern variables and functions +******************************************************************************/ +void userial_vendor_init(void); +int userial_vendor_open(void); +void userial_vendor_close(void); + +extern bt_vendor_callbacks_t *bt_vendor_cbacks; + +#endif /* BT_VENDOR_RTK_H */ +

    修改hardware/realtek/bt/libbt-vendor/include/vnd_dalmore.txt、hardware/realtek/bt/libbt-vendor/include/vnd_freescale.txt、hardware/realtek/bt/libbt-vendor/include/vnd_generic.txt、hardware/realtek/bt/libbt-vendor/include/vnd_generic_x86.txt

    diff -Npur a/hardware/realtek/bt/libbt-vendor/include/vnd_dalmore.txt b/hardware/realtek/bt/libbt-vendor/include/vnd_dalmore.txt --- a/hardware/realtek/bt/libbt-vendor/include/vnd_dalmore.txt 1970-01-01 08:00:00.000000000 +0800 +++ b/hardware/realtek/bt/libbt-vendor/include/vnd_dalmore.txt 2016-05-28 16:51:45.000000000 +0800 @@ -0,0 +1,2 @@ +BLUETOOTH_UART_DEVICE_PORT = "/dev/rtk_btusb" +BTVND_DBG = FALSE diff -Npur a/hardware/realtek/bt/libbt-vendor/include/vnd_freescale.txt b/hardware/realtek/bt/libbt-vendor/include/vnd_freescale.txt --- a/hardware/realtek/bt/libbt-vendor/include/vnd_freescale.txt 1970-01-01 08:00:00.000000000 +0800 +++ b/hardware/realtek/bt/libbt-vendor/include/vnd_freescale.txt 2016-05-28 16:52:14.000000000 +0800 @@ -0,0 +1,2 @@ +BLUETOOTH_UART_DEVICE_PORT = "/dev/rtk_btusb" +BTVND_DBG = FALSE diff -Npur a/hardware/realtek/bt/libbt-vendor/include/vnd_generic.txt b/hardware/realtek/bt/libbt-vendor/include/vnd_generic.txt --- a/hardware/realtek/bt/libbt-vendor/include/vnd_generic.txt 1970-01-01 08:00:00.000000000 +0800 +++ b/hardware/realtek/bt/libbt-vendor/include/vnd_generic.txt 2016-05-29 15:12:45.000000000 +0800 @@ -0,0 +1,2 @@ +BLUETOOTH_UART_DEVICE_PORT = "/dev/rtk_btusb" +BTVND_DBG = FALSE diff -Npur a/hardware/realtek/bt/libbt-vendor/include/vnd_generic_x86.txt b/hardware/realtek/bt/libbt-vendor/include/vnd_generic_x86.txt --- a/hardware/realtek/bt/libbt-vendor/include/vnd_generic_x86.txt 1970-01-01 08:00:00.000000000 +0800 +++ b/hardware/realtek/bt/libbt-vendor/include/vnd_generic_x86.txt 2013-07-08 12:28:42.000000000 +0800 @@ -0,0 +1,8 @@ +BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyO1" +FW_PATCHFILE_LOCATION = "/vendor/firmware/" +LPM_IDLE_TIMEOUT_MULTIPLE = 5 +SCO_USE_I2S_INTERFACE = TRUE +BTVND_DBG = FALSE +BTHW_DBG = TRUE +VNDUSERIAL_DBG = FALSE +UPIO_DBG = FALSE

    修改hardware/realtek/bt/libbt-vendor/src/bt_vendor_rtk.c

    diff -Npur a/hardware/realtek/bt/libbt-vendor/src/bt_vendor_rtk.c b/hardware/realtek/bt/libbt-vendor/src/bt_vendor_rtk.c --- a/hardware/realtek/bt/libbt-vendor/src/bt_vendor_rtk.c 1970-01-01 08:00:00.000000000 +0800 +++ b/hardware/realtek/bt/libbt-vendor/src/bt_vendor_rtk.c 2013-07-08 12:28:42.000000000 +0800 @@ -0,0 +1,240 @@ +/****************************************************************************** + * + * Copyright (C) 2009-2012 Broadcom Corporation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + ******************************************************************************/ + +/****************************************************************************** + * + * Filename: bt_vendor_rtk.c + * + * Description: Broadcom vendor specific library implementation + * + ******************************************************************************/ + +#define LOG_TAG "bt_vendor" + +#include <fcntl.h> +#include <errno.h> +#include <utils/Log.h> +#include "bt_vendor_rtk.h" + +#ifndef BTVND_DBG +#define BTVND_DBG FALSE +#endif + +#if (BTVND_DBG == TRUE) +#define BTVNDDBG(param, ...) {ALOGD(param, ## __VA_ARGS__);} +#else +#define BTVNDDBG(param, ...) {} +#endif + +/****************************************************************************** +** Local type definitions +******************************************************************************/ +#define VND_PORT_NAME_MAXLEN 256 +/* vendor serial control block */ +typedef struct +{ + int fd; /* fd to Bluetooth device */ + uint16_t dev_id; + char port_name[VND_PORT_NAME_MAXLEN]; +} vnd_userial_cb_t; + +/****************************************************************************** +** Variables +******************************************************************************/ + +bt_vendor_callbacks_t *bt_vendor_cbacks = NULL; +uint8_t vnd_local_bd_addr[6]={0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; +static vnd_userial_cb_t vnd_userial; + +/***************************************************************************** +** +** BLUETOOTH VENDOR INTERFACE LIBRARY FUNCTIONS +** +*****************************************************************************/ + +static int init(const bt_vendor_callbacks_t* p_cb, unsigned char *local_bdaddr) +{ + ALOGI("init"); + + if (p_cb == NULL) + { + ALOGE("init failed with no user callbacks!"); + return -1; + } + + userial_vendor_init(); + + /* store reference to user callbacks */ + bt_vendor_cbacks = (bt_vendor_callbacks_t *) p_cb; + + /* This is handed over from the stack */ + memcpy(vnd_local_bd_addr, local_bdaddr, 6); + + return 0; +} + + +/** Requested operations */ +static int op(bt_vendor_opcode_t opcode, void *param) +{ + int retval = 0; + + BTVNDDBG("op for %d", opcode); + + switch(opcode) + { + case BT_VND_OP_POWER_CTRL: + { + return 0; + } + break; + + case BT_VND_OP_FW_CFG: + { + bt_vendor_cbacks->fwcfg_cb(BT_VND_OP_RESULT_SUCCESS); + } + break; + + case BT_VND_OP_SCO_CFG: + { + retval = -1; + } + break; + + case BT_VND_OP_USERIAL_OPEN: + { + int (*fd_array)[] = (int (*)[]) param; + int fd, idx; + fd = userial_vendor_open(); + if (fd != -1) + { + for (idx=0; idx < CH_MAX; idx++) + (*fd_array)[idx] = fd; + + retval = 1; + } + /* retval contains numbers of open fd of HCI channels */ + } + break; + + case BT_VND_OP_USERIAL_CLOSE: + { + userial_vendor_close(); + } + break; + + case BT_VND_OP_GET_LPM_IDLE_TIMEOUT: + { + uint32_t *timeout_ms = (uint32_t *) param; + *timeout_ms = 250; + } + break; + + case BT_VND_OP_LPM_SET_MODE: + { + if (bt_vendor_cbacks) + bt_vendor_cbacks->lpm_cb(BT_VND_OP_RESULT_SUCCESS); + } + break; + + case BT_VND_OP_LPM_WAKE_SET_STATE: + break; + } + + return retval; +} + +/******************************************************************************* +** +** Function userial_vendor_init +** +** Description Initialize userial vendor-specific control block +** +** Returns None +** +*******************************************************************************/ +void userial_vendor_init(void) +{ + vnd_userial.fd = -1; + vnd_userial.dev_id = 0; + snprintf(vnd_userial.port_name, VND_PORT_NAME_MAXLEN, "%s", \ + BLUETOOTH_UART_DEVICE_PORT); +} + +/******************************************************************************* +** +** Function userial_vendor_open +** +** Description Open the serial port with the given configuration +** +** Returns device fd +** +*******************************************************************************/ +int userial_vendor_open(void) +{ + ALOGI("userial vendor open: opening %s", vnd_userial.port_name); + + if ((vnd_userial.fd = open(vnd_userial.port_name, O_RDWR)) == -1) + { + ALOGE("userial vendor open: unable to open %s: %s", vnd_userial.port_name, strerror(errno)); + return -1; + } + + ALOGI("device fd = %d open", vnd_userial.fd); + + return vnd_userial.fd; +} + +/******************************************************************************* +** +** Function userial_vendor_close +** +** Description Conduct vendor-specific close work +** +** Returns None +** +*******************************************************************************/ +void userial_vendor_close(void) +{ + int result; + + if (vnd_userial.fd == -1) + return; + + ALOGI("device fd = %d close", vnd_userial.fd); + + if ((result = close(vnd_userial.fd)) < 0) + ALOGE( "close(fd:%d) FAILED result:%d", vnd_userial.fd, result); + + vnd_userial.fd = -1; +} + +/** Closes the interface */ +static void cleanup( void ) +{ + BTVNDDBG("cleanup"); + bt_vendor_cbacks = NULL; +} + +// Entry point of DLib +const bt_vendor_interface_t BLUETOOTH_VENDOR_LIB_INTERFACE = { + sizeof(bt_vendor_interface_t), + init, + op, + cleanup +};

    修改hardware/realtek/bt/libbt-vendor/vnd_buildcfg.mk

    diff -Npur a/hardware/realtek/bt/libbt-vendor/vnd_buildcfg.mk b/hardware/realtek/bt/libbt-vendor/vnd_buildcfg.mk --- a/hardware/realtek/bt/libbt-vendor/vnd_buildcfg.mk 1970-01-01 08:00:00.000000000 +0800 +++ b/hardware/realtek/bt/libbt-vendor/vnd_buildcfg.mk 2016-05-31 17:28:46.000000000 +0800 @@ -0,0 +1,16 @@ +intermediates := $(local-intermediates-dir) + +SRC := $(call my-dir)/include/$(addprefix vnd_, $(addsuffix .txt,$(basename $(TARGET_DEVICE)))) +ifeq (,$(wildcard $(SRC))) +# configuration file does not exist. Use default one +SRC := $(call my-dir)/include/vnd_freescale.txt +endif +GEN := $(intermediates)/vnd_buildcfg.h +TOOL := $(TOP_DIR)external/bluetooth/bluedroid/tools/gen-buildcfg.sh + +$(GEN): PRIVATE_PATH := $(call my-dir) +$(GEN): PRIVATE_CUSTOM_TOOL = $(TOOL) $< $@ +$(GEN): $(SRC) $(TOOL) + $(transform-generated-source) + +LOCAL_GENERATED_SOURCES += $(GEN)

    修改hardware/realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c

    diff -Npur a/hardware/realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c b/hardware/realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c --- a/hardware/realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c 2016-04-20 01:10:31.000000000 +0800 +++ b/hardware/realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c 2013-02-08 14:43:51.000000000 +0800 @@ -681,7 +681,7 @@ int wifi_start_supplicant(int p2p_suppor snprintf(supplicant_prop_name, PROPERTY_KEY_MAX, SUPP_PROP_NAME, supplicant_name); } - wifi_stop_supplicant(p2p_supported); + wifi_stop_supplicant(); wifi_close_supplicant_connection(NULL); wifi_close_supplicant_connection("sec"); @@ -767,7 +767,7 @@ int wifi_start_supplicant(int p2p_suppor return -1; } -int wifi_stop_supplicant(int p2p_supported) +int wifi_stop_supplicant() { char supp_status[PROPERTY_VALUE_MAX] = {'\0'}; int count = 50; /* wait at most 5 seconds for completion */

    生成环境

    root@zpzyf:~/b# cat env.sh #!/bin/bash ROOT_DIR=$PWD export ARCH=arm export CROSS_COMPILE=${ROOT_DIR}/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- JAVA_HOME=/usr/lib/jvm/jdk1.6.0_30 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH KERNEL_DIR=${ROOT_DIR}/kernel_imx UBOOT_DIR=${ROOT_DIR}/bootable/bootloader/uboot-imx root@zpzyf:~/b# source env.sh

    编译 source build/envsetup.sh lunch sabresd_6dq-user

    make -j8

    通过以上修改,可以正常访问蓝牙和WIFI。

    转载请注明原文地址: https://ju.6miu.com/read-1284174.html
    最新回复(0)