![]() |
不羁的饺子 · jpa的@DynamicUpdate失效源于 ...· 8 月前 · |
![]() |
爱看球的香菜 · This application ...· 9 月前 · |
![]() |
玉树临风的电梯 · 【岁月留声(Java)】org.spring ...· 11 月前 · |
![]() |
大力的饺子 · python - ...· 1 年前 · |
![]() |
憨厚的登山鞋
1 年前 |
在本地跑 GroundingDINO 代码 ( github )
首先down下来代码:
git clone https://github.com/IDEA-Research/GroundingDINO.git
然后跟着 readme 走,先下载预训练参数放到 ./weight 文件夹:
mkdir weights
cd weights
wget -q https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth
然后新开一个 py 文件,复制 readme 上的代码运行:
from groundingdino.util.inference import load_model, load_image, predict, annotate
import cv2
model = load_model("groundingdino/config/GroundingDINO_SwinT_OGC.py", "weights/groundingdino_swint_ogc.pth")
IMAGE_PATH = "weights/dog-3.jpeg"
TEXT_PROMPT = "chair . person . dog ."
BOX_TRESHOLD = 0.35
TEXT_TRESHOLD = 0.25
image_source, image = load_image(IMAGE_PATH)
boxes, logits, phrases = predict(
model=model,
image=image,
caption=TEXT_PROMPT,
box_threshold=BOX_TRESHOLD,
text_threshold=TEXT_TRESHOLD
annotated_frame = annotate(image_source=image_source, boxes=boxes, logits=logits, phrases=phrases)
cv2.imwrite("annotated_image.jpg", annotated_frame)
然后报错和 debug,这个错误都是普适性错误,第二次犯了,所以记录下来,防止再犯
NameError: name ‘_C’ is not defined
运行
pip3 install -q -e .
之前跑另一个模型的时候也遇到这个问题,勉强记得是因为没有编译模型。down 下来的代码有个 setup.py
文件,于是我尝试运行:
python setup.py
但是报错:error: no commands supplied
然后发现后面应该加上 build 或者 install,所以我重新运行:
python setup.py install
python setup.py build
但是还是不行,还是报错
查到大家在讨论这个问题:NameError: name ‘_C’ is not defined
说应该设置环境变量 CUDA_HOME,原因是,查 setup 代码:
if CUDA_HOME is not None and (torch.cuda.is_available() or "TORCH_CUDA_ARCH_LIST" in os.environ):
print("Compiling with CUDA")
extension = CUDAExtension
sources += source_cuda
define_macros += [("WITH_CUDA", None)]
extra_compile_args["nvcc"] = [
"-DCUDA_HAS_FP16=1",
"-D__CUDA_NO_HALF_OPERATORS__",
"-D__CUDA_NO_HALF_CONVERSIONS__",
"-D__CUDA_NO_HALF2_OPERATORS__",
但是确实打印了 Compiling with CUDA,但是还是没有那个重要的 _C
然后重新看了下 readme 怎么写的,发现有一步是:pip3 install -q -e .
这步我当时跳过了,因为我本地有一个已经配置好的环境,需要的包都装好了,想着不用 install 了反而把已经配置好的版本弄乱了,没想到就是这句话决定了一切 orz
结论:要遵循 readme 写的来做,不然人家为啥那么写呢。
NameError: name '_C' is not defined
今天安装gpu版本的torch,直接走清华源下下来安装报错,后通过conda install了所有的包后,命令行进入python后import torch无误,编译器中import报错NameError: name ‘_C’ is not defined,重启编译器即可。
1、打开AP6212的BT,关闭rtl8723bs的BT:
[ 3.141273] Bluetooth: HCI UART driver ver 2.2
[ 3.146210] Bluetooth: HCI H4 protocol initialized
[ 3.151563] Bluetooth: HCI BCSP protocol initialized
[ 3.157154] usbcore: registered new interface driver btusb
[ 3.163282] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[ 3.169599] Bluetooth: BlueSleep Mode Driver Ver 1.1
[ 3.175402] Bluetooth: get rtl8723bs rtl8723bs_bt_host_wake gpio failed
[ 3.953017] Bluetooth: RFCOMM TTY layer initialized
[ 3.958456] Bluetooth: RFCOMM socket layer initialized
[ 3.964183] Bluetooth: RFCOMM ver 1.11
[ 3.968340] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 3.968638] [mmc]: sdc2 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 3.968734] [mmc]: mclk 0xf1c20090 0xc100000b
[ 3.989421] Bluetooth: BNEP filters: protocol multicast
[ 3.995242] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 4.001921] L2TP core driver, V2.0
[ 4.005706] PPPoL2TP kernel driver, V2.0
[ 4.010070] L2TP IP encapsulation support (L2TPv3)
[ 4.015468] L2TP netlink interface
[ 4.019264] L2TP ethernet pseudowire support (L2TPv3)
[ 4.023860] [mmc]: sdc2 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing MMC-HS(SDR20) dt B
[ 4.023929] [mmc]: mclk 0xf1c20090 0xc100000b
[ 4.040272] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 4.048780] ThumbEE CPU extension supported.
[ 4.053550] Registering SWP/SWPB emulation handler
[ 4.059269] [rfkill]: rfkill set power 1
[ 4.063652] gpio ap6xxx_bt_regon set val 0, act val 0
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r$ ll
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$ ./build.sh config
Welcome to mkscript setup progress
All available chips:
0. sun8iw5p1
Choice: 0
All available platforms:
0. android
1. dragonboard
2. linux
Choice: 0
All available kernel:
0. linux-3.4
Choice: 0
All available boards:
0. evb
1. maple
2. redwood
3. y2
4. y3
Choice: 4
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$ cd linux-3.4/
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4$ make ARCH=arm menuconfig
[*] Networking support --->
<*> Bluetooth subsystem support --->
Bluetooth device drivers --->
< > Broadcom Bluetooth Low Power Manager Support
<*> Realtek Bluesleep driver support
<*> Broadcom Bluetooth Low Power Manager Support
< > An inverter between bt hostwake pin and cpu (NEW)
< > Realtek Bluesleep driver support
2、(这个不修改:)
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\overlay\frameworks\base\core\res\res\values\config.xml
<!-- 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.*" -->
<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>
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\astar_y3.mk
# ap6181/6210/6330 sdio wifi fw and nvram
#$(call inherit-product-if-exists, hardware/broadcom/wlan/firmware/ap6181/device-bcm.mk)
#$(call inherit-product-if-exists, hardware/broadcom/wlan/firmware/ap6210/device-bcm.mk)
$(call inherit-product-if-exists, hardware/broadcom/wlan/firmware/ap6212/device-bcm.mk)
#$(call inherit-product-if-exists, hardware/broadcom/wlan/firmware/ap6330/device-bcm.mk)
#rtl8723bs bt fw and config
#$(call inherit-product, hardware/realtek/bluetooth/rtl8723bs/firmware/rtlbtfw_cfg.mk)
# camera config for camera detector
#PRODUCT_COPY_FILES += \
# device/softwinner/astar-y3/hawkview/sensor_list_cfg.ini:system/etc/hawkview/sensor_list_cfg.ini
#add gms features
#PRODUCT_COPY_FILES += \
# frameworks/native/data/etc/android.hardware.faketouch.xml:system/etc/permissions/android.hardware.faketouch.xml \
# frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
# frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml
# 3G Data Card Packages
#PRODUCT_PACKAGES += \
# u3gmonitor \
# chat \
# rild \
# pppd
# 3G Data Card Configuration Flie
#PRODUCT_COPY_FILES += \
# device/softwinner/polaris-common/rild/ip-down:system/etc/ppp/ip-down \
# device/softwinner/polaris-common/rild/ip-up:system/etc/ppp/ip-up \
# device/softwinner/polaris-common/rild/3g_dongle.cfg:system/etc/3g_dongle.cfg \
# device/softwinner/polaris-common/rild/usb_modeswitch:system/bin/usb_modeswitch \
# device/softwinner/polaris-common/rild/call-pppd:system/xbin/call-pppd \
# device/softwinner/polaris-common/rild/usb_modeswitch.sh:system/xbin/usb_modeswitch.sh \
# device/softwinner/polaris-common/rild/apns-conf_sdk.xml:system/etc/apns-conf.xml \
# device/softwinner/polaris-common/rild/libsoftwinner-ril.so:system/lib/libsoftwinner-ril.so
#PRODUCT_COPY_FILES += \
# device/softwinner/polaris-common/rild/init.3gdongle.rc:root/init.sunxi.3gdongle.rc
# 3G Data Card usb modeswitch File
#PRODUCT_COPY_FILES += \
# $(call find-copy-subdir-files,*,device/softwinner/polaris-common/rild/usb_modeswitch.d,system/etc/usb_modeswitch.d)
PRODUCT_PROPERTY_OVERRIDES += \
ro.sw.embeded.telephony = false
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.timezone=Asia/Shanghai \
persist.sys.language=zh \
persist.sys.country=CN
PRODUCT_PACKAGES += Bluetooth
#PRODUCT_PROPERTY_OVERRIDES += \
# ro.product.8723b_bt.used=true
#GPS Feature
#PRODUCT_PACKAGES += gps.polaris
#BOARD_USES_GPS_TYPE := simulator
#PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.location.xml:system/etc/permissions/android.hardware.location.xml
# evb logger
PRODUCT_COPY_FILES += \
device/softwinner/astar-y3/tools/logger.sh:system/bin/logger.sh
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.usb.config=mass_storage,adb \
ro.adb.secure=0
ro.udisk.lable=Polaris \
ro.font.scale=1.0 \
ro.hwa.force=false \
rw.logger=0 \
ro.sys.bootfast=true \
debug.hwc.showfps=0 \
debug.hwui.render_dirty_regions=false
#ro.sys.storage_type = emulated \
#for gms
#PRODUCT_PROPERTY_OVERRIDES += \
# ro.sys.mutedrm=true \
# ro.adb.secure=1
PRODUCT_PROPERTY_OVERRIDES += \
ro.sf.lcd_density=213 \
ro.product.firmware=v2.0
$(call inherit-product-if-exists, device/softwinner/astar-y3/modules/modules.mk)
DEVICE_PACKAGE_OVERLAYS := device/softwinner/astar-y3/overlay
PRODUCT_CHARACTERISTICS := tablet
# Overrides
PRODUCT_AAPT_CONFIG := xlarge hdpi xhdpi large
PRODUCT_AAPT_PREF_CONFIG := xhdpi
PRODUCT_BRAND := Allwinner
PRODUCT_NAME := astar_y3
PRODUCT_DEVICE := astar-y3
PRODUCT_MODEL := QUAD-CORE A33 y3
PRODUCT_MANUFACTURER := softwinner
#include device/softwinner/polaris-common/prebuild/google/products/gms_base.mk
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\BoardConfig.mk
# wifi and bt configuration
# 1. Wifi Configuration
# 1.1 realtek wifi support
# 1.1 realtek wifi configuration
#BOARD_WIFI_VENDOR := realtek
ifeq ($(BOARD_WIFI_VENDOR), realtek)
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl
SW_BOARD_USR_WIFI := rtl8188eu
BOARD_WLAN_DEVICE := rtl8188eu
#SW_BOARD_USR_WIFI := rtl8723au
#BOARD_WLAN_DEVICE := rtl8723au
#SW_BOARD_USR_WIFI := rtl8723bs
#BOARD_WLAN_DEVICE := rtl8723bs
endif
# 1.2 broadcom wifi support
BOARD_WIFI_VENDOR := broadcom
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"
#SW_BOARD_USR_WIFI := AP6181
#SW_BOARD_USR_WIFI := AP6210
#WIFI_DRIVER_FW_PATH_STA := "/system/vendor/modules/fw_bcm40181a2.bin"
#WIFI_DRIVER_FW_PATH_P2P := "/system/vendor/modules/fw_bcm40181a2_p2p.bin"
#WIFI_DRIVER_FW_PATH_AP := "/system/vendor/modules/fw_bcm40181a2_apsta.bin"
# 2017/6/21 15:11 wenyuanbo configure ap6212 use ap6210
SW_BOARD_USR_WIFI := AP6212
WIFI_DRIVER_FW_PATH_STA := "/system/vendor/modules/fw_bcm43438a0.bin"
WIFI_DRIVER_FW_PATH_P2P := "/system/vendor/modules/fw_bcm43438a0_p2p.bin"
WIFI_DRIVER_FW_PATH_AP := "/system/vendor/modules/fw_bcm43438a0_apsta.bin"
#SW_BOARD_USR_WIFI := AP6330
#WIFI_DRIVER_FW_PATH_STA := "/system/vendor/modules/fw_bcm40183b2_ag.bin"
#WIFI_DRIVER_FW_PATH_P2P := "/system/vendor/modules/fw_bcm40183b2_ag_p2p.bin"
#WIFI_DRIVER_FW_PATH_AP := "/system/vendor/modules/fw_bcm40183b2_ag_apsta.bin"
endif
#1.3 eag wifi config
#BOARD_WIFI_VENDOR := eagle
ifeq ($(BOARD_WIFI_VENDOR), eagle)
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_eagle
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_eagle
SW_BOARD_USR_WIFI := esp8089
BOARD_WLAN_DEVICE := esp8089
endif
# 2. Bluetooth Configuration
# make sure BOARD_HAVE_BLUETOOTH is true for every bt vendor
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := true
#SW_BOARD_HAVE_BLUETOOTH_NAME := ap6210
SW_BOARD_HAVE_BLUETOOTH_NAME := ap6212
#SW_BOARD_HAVE_BLUETOOTH_NAME := ap6330
#BOARD_HAVE_BLUETOOTH_RTK := true
#BLUETOOTH_HCI_USE_RTK_H5 := true
#SW_BOARD_HAVE_BLUETOOTH_NAME := rtl8723bs
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\init.sun8i.rc
on early-fs
mount_all /fstab.sun8i
setprop ro.crypto.fuse_sdcard true
insmod /system/vendor/modules/disp.ko
insmod /system/vendor/modules/lcd.ko
insmod /system/vendor/modules/mali.ko
insmod /system/vendor/modules/leds-sunxi.ko
insmod /system/vendor/modules/bcmdhd.ko
insmod /system/vendor/modules/bcm_btlpm.ko
#2G or 3G init.rc
# import init.sunxi.3gdongle.rc
## 1. realtek & eagle wifi service
## 1.1 realtek & eagle wifi sta service
#service wpa_supplicant /system/bin/wpa_supplicant \
# -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
# -O/data/misc/wifi/sockets \
# -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
# # we will start as root and wpa_supplicant will switch to user wifi
# # after setting up the capabilities required for WEXT
# # user wifi
# # group wifi inet keystore
# class main
# socket wpa_wlan0 dgram 660 wifi wifi
# disabled
# oneshot
## 1.2 realtek & eagle wifi sta p2p concurrent service
#service p2p_supplicant /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 \
# -O/data/misc/wifi/sockets \
# -g@android:wpa_wlan0
# class main
# socket wpa_wlan0 dgram 660 wifi wifi
# disabled
# oneshot
# 2. broadcom wifi service
# 2.1 broadcom wifi station and softap
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
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
# 2.2 broadcom wifi sta p2p concurrent service
service p2p_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 -N \
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
-I/system/etc/wifi/p2p_supplicant_overlay.conf \
-puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin \
-g@android:wpa_wlan0
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
R:\wyb\ap6212a0_a33_sc3817r\android\frameworks\base\packages\SettingsProvider\res\values\defaults.xml
<integer name="def_screen_off_timeout">1800000</integer>
<bool name="def_lockscreen_disabled">true</bool>
R:\wyb\ap6212a0_a33_sc3817r\android\frameworks\base\services\java\com\android\server\BatteryService.java
// private static final boolean DEBUG = false;
private static final boolean DEBUG = true;
private void sendIntentLocked() {
// Pack up the values and broadcast them to everyone
final Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED);
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY
| Intent.FLAG_RECEIVER_REPLACE_PENDING);
int icon = getIconLocked(mBatteryProps.batteryLevel);
intent.putExtra(BatteryManager.EXTRA_STATUS, mBatteryProps.batteryStatus);
intent.putExtra(BatteryManager.EXTRA_HEALTH, mBatteryProps.batteryHealth);
intent.putExtra(BatteryManager.EXTRA_PRESENT, mBatteryProps.batteryPresent);
//intent.putExtra(BatteryManager.EXTRA_LEVEL, mBatteryProps.batteryLevel);
intent.putExtra(BatteryManager.EXTRA_LEVEL, 100);
intent.putExtra(BatteryManager.EXTRA_SCALE, BATTERY_SCALE);
intent.putExtra(BatteryManager.EXTRA_ICON_SMALL, icon);
intent.putExtra(BatteryManager.EXTRA_PLUGGED, mPlugType);
//intent.putExtra(BatteryManager.EXTRA_VOLTAGE, mBatteryProps.batteryVoltage);
intent.putExtra(BatteryManager.EXTRA_VOLTAGE, 4200);
intent.putExtra(BatteryManager.EXTRA_TEMPERATURE, mBatteryProps.batteryTemperature);
intent.putExtra(BatteryManager.EXTRA_TECHNOLOGY, mBatteryProps.batteryTechnology);
intent.putExtra(BatteryManager.EXTRA_INVALID_CHARGER, mInvalidCharger);
if (DEBUG) {
Slog.d(TAG, "2016/12/05 10:41 wenyuanbo **** Sending ACTION_BATTERY_CHANGED. level:" + mBatteryProps.batteryLevel +
", scale:" + BATTERY_SCALE + ", status:" + mBatteryProps.batteryStatus +
", health:" + mBatteryProps.batteryHealth + ", present:" + mBatteryProps.batteryPresent +
", voltage: " + mBatteryProps.batteryVoltage +
", temperature: " + mBatteryProps.batteryTemperature +
", technology: " + mBatteryProps.batteryTechnology +
", AC powered:" + mBatteryProps.chargerAcOnline + ", USB powered:" + mBatteryProps.chargerUsbOnline +
", Wireless powered:" + mBatteryProps.chargerWirelessOnline +
", icon:" + icon + ", invalid charger:" + mInvalidCharger);
mHandler.post(new Runnable() {
@Override
public void run() {
ActivityManagerNative.broadcastStickyIntent(intent, null, UserHandle.USER_ALL);
9、(直接拷贝同目录下的ap6210:)
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\conf\softwinner\ap6212\Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := bt_vendor.conf
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/bluetooth
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\conf\softwinner\ap6212\bt_vendor.conf
# UART device port where Bluetooth controller is attached
UartPort = /dev/ttyS1
# Firmware patch file location
FwPatchFilePath = /system/vendor/modules/
# Firmware Name
FwPatchFileName = bcm43438a0.hcd
10、新增:vnd_astar-y3-ap6212.txt,直接拷贝:vnd_astar-y2-ap6210.txt
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\include\vnd_astar-y3-ap6212.txt
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\include\vnd_astar-y2-ap6210.txt
BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyS1"
FW_PATCHFILE_LOCATION = "/system/vendor/modules/"
LPM_IDLE_TIMEOUT_MULTIPLE = 5
UART_TARGET_BAUD_RATE = 1500000
BT_WAKE_VIA_PROC = TRUE
#LPM_SLEEP_MODE = FALSE
BTVND_DBG = TRUE
BTHW_DBG = TRUE
VNDUSERIAL_DBG = TRUE
UPIO_DBG = TRUE
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\src\userial_vendor.c
//#ifdef USE_AP6210_BT_MODULE
#if defined(USE_AP6210_BT_MODULE) || defined(USE_AP6212_BT_MODULE)
/* PATCH for AP6210. Will detect CTS(module side) to select transport mode*/
ALOGE("userial vendor open: USE AP6210 BT MODULE.");
usleep(100000);
close(vnd_userial.fd);
if ((vnd_userial.fd = open(vnd_userial.port_name, O_RDWR)) == -1)
ALOGE("userial vendor open: unable to open %s", vnd_userial.port_name);
return -1;
#endif //USE_AP6210_BT_MODULE
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\Android.mk
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6210)
LOCAL_CFLAGS += -DUSE_AP6210_BT_MODULE
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6212)
LOCAL_CFLAGS += -DUSE_AP6212_BT_MODULE
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6330)
include $(LOCAL_PATH)/conf/softwinner/ap6330/Android.mk
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6210)
include $(LOCAL_PATH)/conf/softwinner/ap6210/Android.mk
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6212)
include $(LOCAL_PATH)/conf/softwinner/ap6212/Android.mk
endif
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\vnd_buildcfg.mk
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6210)
SRC := $(call my-dir)/include/$(addprefix vnd_, $(addsuffix -ap6210.txt,$(basename $(TARGET_DEVICE))))
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6212)
SRC := $(call my-dir)/include/$(addprefix vnd_, $(addsuffix -ap6212.txt,$(basename $(TARGET_DEVICE))))
endif
14、(这些AP6212的WIFI的bin文件和BT的hcd文件来自全志R16的SDK,当然也可以找正基原厂/代理商索取:)
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\bcm43438a0.hcd
(根据ap6210修改:)
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\device-bcm.mk
# 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.
########################
-include hardware/broadcom/wlan/bcmdhd/config/config-bcm.mk
PRODUCT_COPY_FILES += \
hardware/broadcom/wlan/firmware/ap6212/fw_bcm43438a0.bin:system/vendor/modules/fw_bcm43438a0.bin \
hardware/broadcom/wlan/firmware/ap6212/fw_bcm43438a0_apsta.bin:system/vendor/modules/fw_bcm43438a0_apsta.bin \
hardware/broadcom/wlan/firmware/ap6212/fw_bcm43438a0_p2p.bin:system/vendor/modules/fw_bcm43438a0_p2p.bin \
hardware/broadcom/wlan/firmware/ap6212/nvram_ap6212.txt:system/vendor/modules/nvram_ap6212.txt \
hardware/broadcom/wlan/firmware/ap6212/bcm43438a0.hcd:system/vendor/modules/bcm43438a0.hcd
#hardware/broadcom/wlan/firmware/ap6212/config.txt:system/vendor/modules/config.txt
########################
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\fw_bcm43438a0.bin
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\fw_bcm43438a0_apsta.bin
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\fw_bcm43438a0_p2p.bin
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\nvram_ap6212.txt
15、(可选修改:)
R:\wyb\ap6212a0_a33_sc3817r\android\packages\apps\Camera2\src\com\android\camera\CameraActivity.java
private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
int Level = intent.getIntExtra("level", 0);
int Scale = intent.getIntExtra("scale", 100);
Log.w(TAG, "2016/11/29 19:54 &&&& wenyuanbo battery Level" + Level);
*Logic:
*1.the battery level is lower then 5%.
*2.if in camera, make sure that not in the snapshot progress.
*3.if in videocamera, make sure that not in the videorecording progress.
*4.everytime starting the camera activity, the battery level is broadcasted,
* if meeting the conditions above, give a dialog, press it and finish the activity.
*5.if the conditions are not satisfied when started, play for a moment, in the camera acitvity
* or video camera activity, the conditiosn are satisfied, also give a dialog for finishing the activity.
*by fuqiang.
if(Level < 5)
Runnable runnable_close_camera = new Runnable() {
@Override
public void run() {
//close the camera.
// CameraActivity.this.finish();
Log.w(TAG, "2016/11/29 18:20 **** wenyuanbo battery Level" + Level);
showLocationDialog();
*Logic:
*1.the battery level is lhigher then 5% and lower than 15%.
*2.if in camera, make sure that not in the snapshot progress.
*3.if in videocamera, make sure that not in the videorecording progress.
*4.whether in camera or in videocamera, make sure that the flash mode is supported.
*5.everytime starting the camera activity, the battery level is broadcasted,
* if meeting the conditions above, forbidden the flash(gray icon), give a dialog to notise user.
*6.if the conditions are not satisfied when started, play for a moment, in the camera acitvity
* or video camera activity, the conditiosn are satisfied, forbidden the flash and give a notice dialog.
*7.the dialog is only given once for each camera activity starting.
*by fuqiang.
else if(Level < 16)
//close the flash mode.
if (mIsLowBatteryDialogShown == false)
mRotateDialog.showAlertDialog(
getString(R.string.warning),
getString(R.string.low_battery_15),
null, null,
getString(R.string.close), null);
mIsLowBatteryDialogShown = true;
16、(可选:)
R:\wyb\ap6212a0_a33_sc3817r\lichee\tools\pack\chips\sun8iw5p1\configs\default\env.cfg
bootdelay=3
loglevel=8
R:\wyb\ap6212a0_a33_sc3817r\lichee\tools\pack\chips\sun8iw5p1\configs\y3\sys_config.fex
[power_sply]
dcdc1_vol = 3000
dcdc2_vol = 1100
dcdc3_vol = 1200
dcdc4_vol = 0
dcdc5_vol = 1500
aldo1_vol = 3300
aldo2_vol = 2500
aldo3_vol = 3000
dldo1_vol = 3300
dldo2_vol = 3300
dldo3_vol = 2800
;gpio0_vol = 2800
ldoio0_vol = 2800
;----------------------------------------------------------------------------------
;uart configuration
;uart_used = uart x enable
;uart_type = 2:2 wire,4:4 wire,8:8 wire, full function
;----------------------------------------------------------------------------------
[uart0]
uart_used = 1
uart_port = 0
uart_type = 2
uart_tx = port:PF02<3><1><default><default>
uart_rx = port:PF04<3><1><default><default>
[uart1]
uart_used = 1
uart_port = 1
uart_type = 4
uart_tx = port:PG06<2><1><default><default>
uart_rx = port:PG07<2><1><default><default>
uart_rts = port:PG08<2><1><default><default>
uart_cts = port:PG09<2><1><default><default>
[uart2]
uart_used = 1
uart_type = 4
uart_tx = port:PB00<2><1><default><default>
uart_rx = port:PB01<2><1><default><default>
uart_rts = port:PB02<2><1><default><default>
uart_cts = port:PB03<2><1><default><default>
[uart3]
uart_used = 0
uart_type = 4
uart_tx = port:PH06<3><1><default><default>
uart_rx = port:PH07<3><1><default><default>
uart_rts = port:PH08<3><1><default><default>
uart_cts = port:PH09<3><1><default><default>
[uart4]
uart_used = 0
uart_port = 4
uart_type = 2
uart_tx = port:PA04<2><1><default><default>
uart_rx = port:PA05<2><1><default><default>
uart_rts = port:PA06<2><1><default><default>
uart_cts = port:PA07<2><1><default><default>
;----------------------------------------------------------------------------------
;capacitor tp configuration
;ctp_twi_id : twi controller ID
;ctp_twi_addr : I2C slave address, 7bit
;ctp_screen_max_x/_y : resolution of touch panel
;ctp_revert_x/_y_flag : whether need to revert x/y
;ctp_exchange_x_y_flag: whether need to exchange the value of x and y
;ctp_int_port : port for tp's interrupt signal
;ctp_wakeup : port for wakeup tp
;----------------------------------------------------------------------------------
[ctp_para]
ctp_used = 1
ctp_name = "gt82x"
ctp_twi_id = 0
ctp_twi_addr = 0x5d
ctp_screen_max_x = 1280
ctp_screen_max_y = 800
ctp_revert_x_flag = 1
ctp_revert_y_flag = 1
ctp_exchange_x_y_flag = 1
ctp_int_port = port:PL04<4><default><default><default>
ctp_wakeup = port:PL03<1><default><default><1>
ctp_power_ldo =
ctp_power_ldo_vol =
ctp_power_io =
;--------------------------------------------------------------------------------
; CTP automatic detection configuration
;ctp_detect_used --- Whether startup automatic inspection function. 1:used,0:unused
;Module name postposition 1 said detection, 0 means no detection.
;--------------------------------------------------------------------------------
[ctp_list_para]
ctp_det_used = 1
ft5x_ts = 1
gt82x = 1
gslX680 = 1
gslX680new = 0
gt9xx_ts = 1
gt9xxf_ts = 0
tu_ts = 0
gt818_ts = 1
zet622x = 1
aw5306_ts = 1
icn83xx_ts = 0
[lcd0_para]
lcd_used = 1
lcd_driver_name = "default_lcd"
lcd_if = 3
lcd_x = 1280
lcd_y = 800
lcd_width = 150
lcd_height = 94
lcd_dclk_freq = 71
lcd_pwm_used = 1
lcd_pwm_ch = 0
lcd_pwm_freq = 50000
lcd_pwm_pol = 1
lcd_hbp = 20
lcd_ht = 1418
lcd_hspw = 10
lcd_vbp = 10
lcd_vt = 830
lcd_vspw = 5
lcd_lvds_if = 0
lcd_lvds_colordepth = 1
lcd_lvds_mode = 0
lcd_frm = 1
lcd_gamma_en = 0
lcd_bright_curve_en = 0
lcd_cmap_en = 0
deu_mode = 0
lcdgamma4iep = 22
smart_color = 90
lcd_bl_en = port:PD13<1><0><default><1>
;ap6xxx_wl_regon = port:PL06<1><default><default><0>
;lcd_bl_en = port:PL06<1><0><default><1>
lcd_power = "axp22_dc1sw"
lcdd0 = port:PD18<3><0><default><default>
lcdd1 = port:PD19<3><0><default><default>
lcdd2 = port:PD20<3><0><default><default>
lcdd3 = port:PD21<3><0><default><default>
lcdd4 = port:PD22<3><0><default><default>
lcdd5 = port:PD23<3><0><default><default>
lcdd6 = port:PD24<3><0><default><default>
lcdd7 = port:PD25<3><0><default><default>
lcdd8 = port:PD26<3><0><default><default>
lcdd9 = port:PD27<3><0><default><default>
;----------------------------------------------------------------------------------
;pwm config
;----------------------------------------------------------------------------------
[pwm0_para]
pwm_used = 0
pwm_positive = port:PH00<2><0><default><default>
[pwm1_para]
pwm_used = 1
pwm_positive = port:PH01<2><0><default><default>
;--------------------------------------------------------------------------------
;wifi configuration
;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)
;wifi_mod_sel: 0- none, 1- ap6181, 2- ap6210(wifi+bt),
; 3 - rtl8188eu, 4- rtl8723au(wifi+bt),
; 5 - rtl8723bs, 6- esp8089
;--------------------------------------------------------------------------------
[wifi_para]
wifi_used = 1
wifi_sdc_id = 1
wifi_usbc_id = 1
wifi_usbc_type = 1
wifi_mod_sel = 2
wifi_power = "axp22_dldo1"
wifi_power_ext1 = "axp22_dldo2"
wifi_power_ext2 = "axp22_aldo1"
wifi_power_switch =
;wifi_power_switch = port:power0<1><0><default><0>
; 1 - ap6181 sdio wifi gpio config
;ap6xxx_wl_regon = port:PL06<1><default><default><0>
;ap6xxx_wl_host_wake = port:PL07<4><default><default><0>
;ap6xxx_lpo_use_apclk = 1
; 2 - ap6210 sdio wifi gpio config
ap6xxx_wl_regon = port:PL06<1><default><default><0>
;ap6xxx_wl_regon = port:PD13<1><default><default><0>
ap6xxx_wl_host_wake = port:PL07<4><default><default><0>
ap6xxx_bt_regon = port:PL08<1><default><default><0>
ap6xxx_bt_wake = port:PL10<1><default><default><0>
ap6xxx_bt_host_wake = port:PL09<4><default><default><0>
ap6xxx_lpo_use_apclk = 1
; 3 - rtl8188eu usb wifi gpio conifg
; 4 - rtl8723au usb wifi + bt
; 5 - rtl8723bs sdio wifi + bt
;rtl8723bs_chip_en = port:PL11<1><default><default><0>
;rtl8723bs_wl_regon = port:PL06<1><default><default><0>
;rtl8723bs_wl_host_wake = port:PL07<4><default><default><0>
;rtl8723bs_bt_regon = port:PL08<1><default><default><0>
;rtl8723bs_bt_wake = port:PL10<1><default><default><0>
;rtl8723bs_bt_host_wake = port:PL09<4><default><default><0>
;rtl8723bs_lpo_use_apclk = 0
; 6 - eagle sdio wifi
;esp_wl_chip_en = port:PL03<1><default><default><0>
;esp_wl_rst = port:PL02<1><default><default><0>
;--------------------------------------------------------------------------------
;blue tooth
;bt_used ---- blue tooth used (0- no used, 1- used)
;bt_uard_id ---- uart index
;--------------------------------------------------------------------------------
[bt_para]
bt_used = 1
bt_uart_id = 1
power_start = 3
pmu_temp_enable = 0
在设置→WLAN(打开之后):
shell@astar-y3:/ $
shell@astar-y3:/ $ [ 469.609956] init: computing context for service '/system/bin/wpa_supplicant'
[ 469.618386] init: starting 'p2p_supplicant'
[ 469.625739] init: Created socket '/dev/socket/wpa_wlan0' with mode '660', user '1010', group '1010'
[ 469.673379] init: waitpid returned pid 2065, status = 0000ff00
[ 469.679923] init: process 'p2p_supplicant', pid 2065 exited
[ 476.197334] sndpcm_unmute,line:1099
[ 451.464755] CPU1: Booted secondary processor
[ 478.459403] CPU1: shutdown
[ 478.462947] [hotplug]: cpu(0) try to kill cpu(1)
[ 478.468478] [hotplug]: cpu1 is killed! .
shell@astar-y3:/ $
分析启动的log:
[ 17.526849] gpio ap6xxx_wl_regon set val 1, act val 1
[ 17.632508] [ap6xxx]: sdio wifi power state: on
[ 17.637576] [mmc]: sdc1 set ios: clk 0Hz bm PP pm UP vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.637751] =========== WLAN placed in POWER ON ========
[ 17.654651] [mmc]: sdc1 card_power_on start...
[ 17.659576] [mmc]: sdc1 power_supply is null
[ 17.664322] [mmc]: sdc1 card_power_on ok
[ 17.680039] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.690275] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 17.772361] [mmc]: *** sunxi_mci_dump_errinfo(L773): smc 1 err, cmd 52, RTO !!
[ 17.781309] [mmc]: *** sunxi_mci_dump_errinfo(L773): smc 1 err, cmd 52, RTO !!
[ 17.789448] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.799714] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 17.862032] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.872262] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 17.933953] [mmc]: *** sunxi_mci_dump_errinfo(L773): smc 1 err, cmd 8, RTO !!
[ 17.941997] *******************Try sdio*******************
[ 17.948400] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.958630] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 18.027775] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 18.035416] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 18.043087] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 18.051920] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 18.145287] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[ 18.155436] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 18.215346] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[ 18.225736] [mmc]: mclk 0xf1c2008c 0x8100000b
[ 18.285675] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 18.296021] [mmc]: mclk 0xf1c2008c 0x8140030b
[ 18.357915] mmc1: new high speed SDIO card at address 0001
[ 18.364532] bcmsdh_register: Linux Kernel SDIO/MMC Driver
[ 18.364575] *******************sdio init ok*******************
[ 18.377207] bcm_wlan_get_oob_irq enter.
[ 18.381537] gpio [359] map to virq [7] ok
[ 18.388851] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x0 pkg:0x4
[ 18.396019] dhdsdio_probe_attach: unsupported chip: 0xa9a6
[ 18.402155] dhdsdio_probe: dhdsdio_probe_attach failed
[ 18.407899] bcmsdh_probe: device attach failed
[ 18.412981]
[ 18.412984] Dongle Host Driver, version 1.88.45.3 (r420671)
[ 18.412989] Compiled in drivers/net/wireless/bcmdhd on Jun 26 2017 at 12:06:39
[ 18.428835] dhd_module_init: sdio_register_driver timeout or error
[ 18.435928] gpio ap6xxx_wl_regon set val 0, act val 0
[ 18.541549] [ap6xxx]: sdio wifi power state: off
[ 18.546679] =========== WLAN placed in POWER OFF ========
[ 18.546915] mmc1: card 0001 removed
[ 18.546995] [mmc]: mmc not poweroff notifiy
[ 18.547007] [mmc]: sdc1 set ios: clk 0Hz bm OD pm OFF vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 18.547160] [mmc]: sdc1 card_power_off start...
[ 18.547166] [mmc]: sdc1 power_supply is null
[ 18.547173] [mmc]: sdc1 card_power_off ok
[ 18.631655] init: command 'insmod' r=-1
[ 18.636066] init: command 'insmod' r=-1
[ 18.658010] fs_mgr: swapon failed for /dev/block/zram0
[ 18.663804] init: command 'swapon_all' r=-1
[ 18.668504] init: processing action 0x58e70 (console_init)
[ 18.675396] init: width = 1280
[ 18.678788] init: height = 800
[ 18.682224] init: s.st_size = 3145728
[ 18.686308] init: logo match failed!fbsize = 4096000
[ 18.718811] init: command 'console_init' r=0
[ 18.723628] init: processing action 0x55bf0 (fs)
[ 18.730640] init: command 'mkdir' r=-2
[ 18.741901] init: command 'insmod' r=0
[ 18.752227] init: command 'insmod' r=0
[ 18.756491] init: command 'insmod' r=-1
[ 18.771211] init: command 'insmod' r=0
[ 18.779731] init: command 'insmod' r=0
[ 18.791739] init: command 'insmod' r=0
[ 18.803941] init: command 'insmod' r=0
[ 18.816178] init: command 'insmod' r=0
19、查找:(dhdsdio_probe_attach: unsupported chip: 0xa9a6)
rootroot@rootroot-E400:~$ cd wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd/
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$ grep "unsupported chip" . -R
./dhd_sdio.c: DHD_ERROR(("%s: unsupported chip: 0xx\n",
./sbutils.c: SI_ERROR(("sb_chip2numcores: unsupported chip 0x%x\n",
匹配到二进制文件 ./dhd_sdio.o
匹配到二进制文件 ./bcmdhd.o
匹配到二进制文件 ./bcmdhd.ko
匹配到二进制文件 ./sbutils.o
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
1、打开AP6212的BT,关闭rtl8723bs的BT:
[ 3.141273] Bluetooth: HCI UART driver ver 2.2
[ 3.146210] Bluetooth: HCI H4 protocol initialized
[ 3.151563] Bluetooth: HCI BCSP protocol initialized
[ 3.157154] usbcore: registered new interface driver btusb
[ 3.163282] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[ 3.169599] Bluetooth: BlueSleep Mode Driver Ver 1.1
[ 3.175402] Bluetooth: get rtl8723bs rtl8723bs_bt_host_wake gpio failed
[ 3.953017] Bluetooth: RFCOMM TTY layer initialized
[ 3.958456] Bluetooth: RFCOMM socket layer initialized
[ 3.964183] Bluetooth: RFCOMM ver 1.11
[ 3.968340] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 3.968638] [mmc]: sdc2 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 3.968734] [mmc]: mclk 0xf1c20090 0xc100000b
[ 3.989421] Bluetooth: BNEP filters: protocol multicast
[ 3.995242] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 4.001921] L2TP core driver, V2.0
[ 4.005706] PPPoL2TP kernel driver, V2.0
[ 4.010070] L2TP IP encapsulation support (L2TPv3)
[ 4.015468] L2TP netlink interface
[ 4.019264] L2TP ethernet pseudowire support (L2TPv3)
[ 4.023860] [mmc]: sdc2 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing MMC-HS(SDR20) dt B
[ 4.023929] [mmc]: mclk 0xf1c20090 0xc100000b
[ 4.040272] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 4.048780] ThumbEE CPU extension supported.
[ 4.053550] Registering SWP/SWPB emulation handler
[ 4.059269] [rfkill]: rfkill set power 1
[ 4.063652] gpio ap6xxx_bt_regon set val 0, act val 0
正常启动的BT加载:
[ 3.207764] Bluetooth: HCI UART driver ver 2.2
[ 3.212725] Bluetooth: HCI H4 protocol initialized
[ 3.218045] Bluetooth: HCI BCSP protocol initialized
[ 3.223671] usbcore: registered new interface driver btusb
[ 3.229766] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[ 3.236243] Bluetooth: MSM Sleep Mode Driver Ver 1.2
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r$ ll
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$ ./build.sh config
Welcome to mkscript setup progress
All available chips:
0. sun8iw5p1
Choice: 0
All available platforms:
0. android
1. dragonboard
2. linux
Choice: 0
All available kernel:
0. linux-3.4
Choice: 0
All available boards:
0. evb
1. maple
2. redwood
3. y2
4. y3
Choice: 4
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$ cd linux-3.4/
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4$ make ARCH=arm menuconfig
[*] Networking support --->
Bluetooth subsystem support --->
Bluetooth device drivers --->
Broadcom Bluetooth Low Power Manager Support
Realtek Bluesleep driver support
Broadcom Bluetooth Low Power Manager Support
An inverter between bt hostwake pin and cpu (NEW)
Realtek Bluesleep driver support
2、(这个不修改:)
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\overlay\frameworks\base\core\res\res\values\config.xml
"wlan0"
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\astar_y3.mk
# ap6181/6210/6330 sdio wifi fw and nvram
#$(call inherit-product-if-exists, hardware/broadcom/wlan/firmware/ap6181/device-bcm.mk)
#$(call inherit-product-if-exists, hardware/broadcom/wlan/firmware/ap6210/device-bcm.mk)
$(call inherit-product-if-exists, hardware/broadcom/wlan/firmware/ap6212/device-bcm.mk)
#$(call inherit-product-if-exists, hardware/broadcom/wlan/firmware/ap6330/device-bcm.mk)
#rtl8723bs bt fw and config
#$(call inherit-product, hardware/realtek/bluetooth/rtl8723bs/firmware/rtlbtfw_cfg.mk)
# camera config for camera detector
#PRODUCT_COPY_FILES += \
# device/softwinner/astar-y3/hawkview/sensor_list_cfg.ini:system/etc/hawkview/sensor_list_cfg.ini
#add gms features
#PRODUCT_COPY_FILES += \
# frameworks/native/data/etc/android.hardware.faketouch.xml:system/etc/permissions/android.hardware.faketouch.xml \
# frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
# frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml
# 3G Data Card Packages
#PRODUCT_PACKAGES += \
# u3gmonitor \
# chat \
# rild \
# pppd
# 3G Data Card Configuration Flie
#PRODUCT_COPY_FILES += \
# device/softwinner/polaris-common/rild/ip-down:system/etc/ppp/ip-down \
# device/softwinner/polaris-common/rild/ip-up:system/etc/ppp/ip-up \
# device/softwinner/polaris-common/rild/3g_dongle.cfg:system/etc/3g_dongle.cfg \
# device/softwinner/polaris-common/rild/usb_modeswitch:system/bin/usb_modeswitch \
# device/softwinner/polaris-common/rild/call-pppd:system/xbin/call-pppd \
# device/softwinner/polaris-common/rild/usb_modeswitch.sh:system/xbin/usb_modeswitch.sh \
# device/softwinner/polaris-common/rild/apns-conf_sdk.xml:system/etc/apns-conf.xml \
# device/softwinner/polaris-common/rild/libsoftwinner-ril.so:system/lib/libsoftwinner-ril.so
#PRODUCT_COPY_FILES += \
# device/softwinner/polaris-common/rild/init.3gdongle.rc:root/init.sunxi.3gdongle.rc
# 3G Data Card usb modeswitch File
#PRODUCT_COPY_FILES += \
# $(call find-copy-subdir-files,*,device/softwinner/polaris-common/rild/usb_modeswitch.d,system/etc/usb_modeswitch.d)
PRODUCT_PROPERTY_OVERRIDES += \
ro.sw.embeded.telephony = false
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.timezone=Asia/Shanghai \
persist.sys.language=zh \
persist.sys.country=CN
PRODUCT_PACKAGES += Bluetooth
#PRODUCT_PROPERTY_OVERRIDES += \
# ro.product.8723b_bt.used=true
#GPS Feature
#PRODUCT_PACKAGES += gps.polaris
#BOARD_USES_GPS_TYPE := simulator
#PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.location.xml:system/etc/permissions/android.hardware.location.xml
# evb logger
PRODUCT_COPY_FILES += \
device/softwinner/astar-y3/tools/logger.sh:system/bin/logger.sh
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.usb.config=mass_storage,adb \
ro.adb.secure=0
ro.udisk.lable=Polaris \
ro.font.scale=1.0 \
ro.hwa.force=false \
rw.logger=0 \
ro.sys.bootfast=true \
debug.hwc.showfps=0 \
debug.hwui.render_dirty_regions=false
#ro.sys.storage_type = emulated \
#for gms
#PRODUCT_PROPERTY_OVERRIDES += \
# ro.sys.mutedrm=true \
# ro.adb.secure=1
PRODUCT_PROPERTY_OVERRIDES += \
ro.sf.lcd_density=213 \
ro.product.firmware=v2.0
$(call inherit-product-if-exists, device/softwinner/astar-y3/modules/modules.mk)
DEVICE_PACKAGE_OVERLAYS := device/softwinner/astar-y3/overlay
PRODUCT_CHARACTERISTICS := tablet
# Overrides
PRODUCT_AAPT_CONFIG := xlarge hdpi xhdpi large
PRODUCT_AAPT_PREF_CONFIG := xhdpi
PRODUCT_BRAND := Allwinner
PRODUCT_NAME := astar_y3
PRODUCT_DEVICE := astar-y3
PRODUCT_MODEL := QUAD-CORE A33 y3
PRODUCT_MANUFACTURER := softwinner
#include device/softwinner/polaris-common/prebuild/google/products/gms_base.mk
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\BoardConfig.mk
# wifi and bt configuration
# 1. Wifi Configuration
# 1.1 realtek wifi support
# 1.1 realtek wifi configuration
#BOARD_WIFI_VENDOR := realtek
ifeq ($(BOARD_WIFI_VENDOR), realtek)
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl
SW_BOARD_USR_WIFI := rtl8188eu
BOARD_WLAN_DEVICE := rtl8188eu
#SW_BOARD_USR_WIFI := rtl8723au
#BOARD_WLAN_DEVICE := rtl8723au
#SW_BOARD_USR_WIFI := rtl8723bs
#BOARD_WLAN_DEVICE := rtl8723bs
endif
# 1.2 broadcom wifi support
BOARD_WIFI_VENDOR := broadcom
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"
#SW_BOARD_USR_WIFI := AP6181
#SW_BOARD_USR_WIFI := AP6210
#WIFI_DRIVER_FW_PATH_STA := "/system/vendor/modules/fw_bcm40181a2.bin"
#WIFI_DRIVER_FW_PATH_P2P := "/system/vendor/modules/fw_bcm40181a2_p2p.bin"
#WIFI_DRIVER_FW_PATH_AP := "/system/vendor/modules/fw_bcm40181a2_apsta.bin"
# 2017/6/21 15:11 wenyuanbo configure ap6212 use ap6210
SW_BOARD_USR_WIFI := AP6212
WIFI_DRIVER_FW_PATH_STA := "/system/vendor/modules/fw_bcm43438a0.bin"
WIFI_DRIVER_FW_PATH_P2P := "/system/vendor/modules/fw_bcm43438a0_p2p.bin"
WIFI_DRIVER_FW_PATH_AP := "/system/vendor/modules/fw_bcm43438a0_apsta.bin"
#SW_BOARD_USR_WIFI := AP6330
#WIFI_DRIVER_FW_PATH_STA := "/system/vendor/modules/fw_bcm40183b2_ag.bin"
#WIFI_DRIVER_FW_PATH_P2P := "/system/vendor/modules/fw_bcm40183b2_ag_p2p.bin"
#WIFI_DRIVER_FW_PATH_AP := "/system/vendor/modules/fw_bcm40183b2_ag_apsta.bin"
endif
#1.3 eag wifi config
#BOARD_WIFI_VENDOR := eagle
ifeq ($(BOARD_WIFI_VENDOR), eagle)
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_eagle
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_eagle
SW_BOARD_USR_WIFI := esp8089
BOARD_WLAN_DEVICE := esp8089
endif
# 2. Bluetooth Configuration
# make sure BOARD_HAVE_BLUETOOTH is true for every bt vendor
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_BCM := true
#SW_BOARD_HAVE_BLUETOOTH_NAME := ap6210
SW_BOARD_HAVE_BLUETOOTH_NAME := ap6212
#SW_BOARD_HAVE_BLUETOOTH_NAME := ap6330
#BOARD_HAVE_BLUETOOTH_RTK := true
#BLUETOOTH_HCI_USE_RTK_H5 := true
#SW_BOARD_HAVE_BLUETOOTH_NAME := rtl8723bs
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\init.sun8i.rc
on early-fs
mount_all /fstab.sun8i
setprop ro.crypto.fuse_sdcard true
insmod /system/vendor/modules/disp.ko
insmod /system/vendor/modules/lcd.ko
insmod /system/vendor/modules/mali.ko
insmod /system/vendor/modules/leds-sunxi.ko
insmod /system/vendor/modules/bcmdhd.ko
insmod /system/vendor/modules/bcm_btlpm.ko
#2G or 3G init.rc
# import init.sunxi.3gdongle.rc
## 1. realtek & eagle wifi service
## 1.1 realtek & eagle wifi sta service
#service wpa_supplicant /system/bin/wpa_supplicant \
# -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
# -O/data/misc/wifi/sockets \
# -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
# # we will start as root and wpa_supplicant will switch to user wifi
# # after setting up the capabilities required for WEXT
# # user wifi
# # group wifi inet keystore
# class main
# socket wpa_wlan0 dgram 660 wifi wifi
# disabled
# oneshot
## 1.2 realtek & eagle wifi sta p2p concurrent service
#service p2p_supplicant /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 \
# -O/data/misc/wifi/sockets \
# -g@android:wpa_wlan0
# class main
# socket wpa_wlan0 dgram 660 wifi wifi
# disabled
# oneshot
# 2. broadcom wifi service
# 2.1 broadcom wifi station and softap
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
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
# 2.2 broadcom wifi sta p2p concurrent service
service p2p_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 -N \
-ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
-I/system/etc/wifi/p2p_supplicant_overlay.conf \
-puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin \
-g@android:wpa_wlan0
# we will start as root and wpa_supplicant will switch to user wifi
# after setting up the capabilities required for WEXT
# user wifi
# group wifi inet keystore
class main
socket wpa_wlan0 dgram 660 wifi wifi
disabled
oneshot
R:\wyb\ap6212a0_a33_sc3817r\android\frameworks\base\packages\SettingsProvider\res\values\defaults.xml
1800000
R:\wyb\ap6212a0_a33_sc3817r\android\frameworks\base\services\java\com\android\server\BatteryService.java
// private static final boolean DEBUG = false;
private static final boolean DEBUG = true;
private void sendIntentLocked() {
// Pack up the values and broadcast them to everyone
final Intent intent = new Intent(Intent.ACTION_BATTERY_CHANGED);
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY
| Intent.FLAG_RECEIVER_REPLACE_PENDING);
int icon = getIconLocked(mBatteryProps.batteryLevel);
intent.putExtra(BatteryManager.EXTRA_STATUS, mBatteryProps.batteryStatus);
intent.putExtra(BatteryManager.EXTRA_HEALTH, mBatteryProps.batteryHealth);
intent.putExtra(BatteryManager.EXTRA_PRESENT, mBatteryProps.batteryPresent);
//intent.putExtra(BatteryManager.EXTRA_LEVEL, mBatteryProps.batteryLevel);
intent.putExtra(BatteryManager.EXTRA_LEVEL, 100);
intent.putExtra(BatteryManager.EXTRA_SCALE, BATTERY_SCALE);
intent.putExtra(BatteryManager.EXTRA_ICON_SMALL, icon);
intent.putExtra(BatteryManager.EXTRA_PLUGGED, mPlugType);
//intent.putExtra(BatteryManager.EXTRA_VOLTAGE, mBatteryProps.batteryVoltage);
intent.putExtra(BatteryManager.EXTRA_VOLTAGE, 4200);
intent.putExtra(BatteryManager.EXTRA_TEMPERATURE, mBatteryProps.batteryTemperature);
intent.putExtra(BatteryManager.EXTRA_TECHNOLOGY, mBatteryProps.batteryTechnology);
intent.putExtra(BatteryManager.EXTRA_INVALID_CHARGER, mInvalidCharger);
if (DEBUG) {
Slog.d(TAG, "2016/12/05 10:41 wenyuanbo **** Sending ACTION_BATTERY_CHANGED. level:" + mBatteryProps.batteryLevel +
", scale:" + BATTERY_SCALE + ", status:" + mBatteryProps.batteryStatus +
", health:" + mBatteryProps.batteryHealth + ", present:" + mBatteryProps.batteryPresent +
", voltage: " + mBatteryProps.batteryVoltage +
", temperature: " + mBatteryProps.batteryTemperature +
", technology: " + mBatteryProps.batteryTechnology +
", AC powered:" + mBatteryProps.chargerAcOnline + ", USB powered:" + mBatteryProps.chargerUsbOnline +
", Wireless powered:" + mBatteryProps.chargerWirelessOnline +
", icon:" + icon + ", invalid charger:" + mInvalidCharger);
mHandler.post(new Runnable() {
@Override
public void run() {
ActivityManagerNative.broadcastStickyIntent(intent, null, UserHandle.USER_ALL);
9、(直接拷贝同目录下的ap6210:)
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\conf\softwinner\ap6212\Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := bt_vendor.conf
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/bluetooth
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES := $(LOCAL_MODULE)
include $(BUILD_PREBUILT)
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\conf\softwinner\ap6212\bt_vendor.conf
# UART device port where Bluetooth controller is attached
UartPort = /dev/ttyS1
# Firmware patch file location
FwPatchFilePath = /system/vendor/modules/
# Firmware Name
FwPatchFileName = bcm43438a0.hcd
10、新增:vnd_astar-y3-ap6212.txt,直接拷贝:vnd_astar-y2-ap6210.txt
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\include\vnd_astar-y3-ap6212.txt
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\include\vnd_astar-y2-ap6210.txt
BLUETOOTH_UART_DEVICE_PORT = "/dev/ttyS1"
FW_PATCHFILE_LOCATION = "/system/vendor/modules/"
LPM_IDLE_TIMEOUT_MULTIPLE = 5
UART_TARGET_BAUD_RATE = 1500000
BT_WAKE_VIA_PROC = TRUE
#LPM_SLEEP_MODE = FALSE
BTVND_DBG = TRUE
BTHW_DBG = TRUE
VNDUSERIAL_DBG = TRUE
UPIO_DBG = TRUE
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\src\userial_vendor.c
//#ifdef USE_AP6210_BT_MODULE
#if defined(USE_AP6210_BT_MODULE) || defined(USE_AP6212_BT_MODULE)
/* PATCH for AP6210. Will detect CTS(module side) to select transport mode*/
ALOGE("userial vendor open: USE AP6210 BT MODULE.");
usleep(100000);
close(vnd_userial.fd);
if ((vnd_userial.fd = open(vnd_userial.port_name, O_RDWR)) == -1)
ALOGE("userial vendor open: unable to open %s", vnd_userial.port_name);
return -1;
#endif //USE_AP6210_BT_MODULE
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\Android.mk
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6210)
LOCAL_CFLAGS += -DUSE_AP6210_BT_MODULE
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6212)
LOCAL_CFLAGS += -DUSE_AP6212_BT_MODULE
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6330)
include $(LOCAL_PATH)/conf/softwinner/ap6330/Android.mk
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6210)
include $(LOCAL_PATH)/conf/softwinner/ap6210/Android.mk
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6212)
include $(LOCAL_PATH)/conf/softwinner/ap6212/Android.mk
endif
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\libbt\vnd_buildcfg.mk
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6210)
SRC := $(call my-dir)/include/$(addprefix vnd_, $(addsuffix -ap6210.txt,$(basename $(TARGET_DEVICE))))
endif
ifeq ($(SW_BOARD_HAVE_BLUETOOTH_NAME), ap6212)
SRC := $(call my-dir)/include/$(addprefix vnd_, $(addsuffix -ap6212.txt,$(basename $(TARGET_DEVICE))))
endif
14、(这些AP6212的WIFI的bin文件和BT的hcd文件来自全志R16的SDK,当然也可以找正基原厂/代理商索取:)
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\bcm43438a0.hcd
(根据ap6210修改:)
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\device-bcm.mk
# 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.
########################
-include hardware/broadcom/wlan/bcmdhd/config/config-bcm.mk
PRODUCT_COPY_FILES += \
hardware/broadcom/wlan/firmware/ap6212/fw_bcm43438a0.bin:system/vendor/modules/fw_bcm43438a0.bin \
hardware/broadcom/wlan/firmware/ap6212/fw_bcm43438a0_apsta.bin:system/vendor/modules/fw_bcm43438a0_apsta.bin \
hardware/broadcom/wlan/firmware/ap6212/fw_bcm43438a0_p2p.bin:system/vendor/modules/fw_bcm43438a0_p2p.bin \
hardware/broadcom/wlan/firmware/ap6212/nvram_ap6212.txt:system/vendor/modules/nvram_ap6212.txt \
hardware/broadcom/wlan/firmware/ap6212/bcm43438a0.hcd:system/vendor/modules/bcm43438a0.hcd
#hardware/broadcom/wlan/firmware/ap6212/config.txt:system/vendor/modules/config.txt
########################
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\fw_bcm43438a0.bin
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\fw_bcm43438a0_apsta.bin
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\fw_bcm43438a0_p2p.bin
R:\wyb\ap6212a0_a33_sc3817r\android\hardware\broadcom\wlan\firmware\ap6212\nvram_ap6212.txt
15、(可选修改:)
R:\wyb\ap6212a0_a33_sc3817r\android\packages\apps\Camera2\src\com\android\camera\CameraActivity.java
private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (Intent.ACTION_BATTERY_CHANGED.equals(action)) {
int Level = intent.getIntExtra("level", 0);
int Scale = intent.getIntExtra("scale", 100);
Log.w(TAG, "2016/11/29 19:54 &&&& wenyuanbo battery Level" + Level);
*Logic:
*1.the battery level is lower then 5%.
*2.if in camera, make sure that not in the snapshot progress.
*3.if in videocamera, make sure that not in the videorecording progress.
*4.everytime starting the camera activity, the battery level is broadcasted,
* if meeting the conditions above, give a dialog, press it and finish the activity.
*5.if the conditions are not satisfied when started, play for a moment, in the camera acitvity
* or video camera activity, the conditiosn are satisfied, also give a dialog for finishing the activity.
*by fuqiang.
if(Level < 5)
Runnable runnable_close_camera = new Runnable() {
@Override
public void run() {
//close the camera.
// CameraActivity.this.finish();
Log.w(TAG, "2016/11/29 18:20 **** wenyuanbo battery Level" + Level);
showLocationDialog();
*Logic:
*1.the battery level is lhigher then 5% and lower than 15%.
*2.if in camera, make sure that not in the snapshot progress.
*3.if in videocamera, make sure that not in the videorecording progress.
*4.whether in camera or in videocamera, make sure that the flash mode is supported.
*5.everytime starting the camera activity, the battery level is broadcasted,
* if meeting the conditions above, forbidden the flash(gray icon), give a dialog to notise user.
*6.if the conditions are not satisfied when started, play for a moment, in the camera acitvity
* or video camera activity, the conditiosn are satisfied, forbidden the flash and give a notice dialog.
*7.the dialog is only given once for each camera activity starting.
*by fuqiang.
else if(Level < 16)
//close the flash mode.
if (mIsLowBatteryDialogShown == false)
mRotateDialog.showAlertDialog(
getString(R.string.warning),
getString(R.string.low_battery_15),
null, null,
getString(R.string.close), null);
mIsLowBatteryDialogShown = true;
16、(可选:)
R:\wyb\ap6212a0_a33_sc3817r\lichee\tools\pack\chips\sun8iw5p1\configs\default\env.cfg
bootdelay=3
loglevel=8
R:\wyb\ap6212a0_a33_sc3817r\lichee\tools\pack\chips\sun8iw5p1\configs\y3\sys_config.fex
[power_sply]
dcdc1_vol = 3000
dcdc2_vol = 1100
dcdc3_vol = 1200
dcdc4_vol = 0
dcdc5_vol = 1500
aldo1_vol = 3300
aldo2_vol = 2500
aldo3_vol = 3000
dldo1_vol = 3300
dldo2_vol = 3300
dldo3_vol = 2800
;gpio0_vol = 2800
ldoio0_vol = 2800
;----------------------------------------------------------------------------------
;uart configuration
;uart_used = uart x enable
;uart_type = 2:2 wire,4:4 wire,8:8 wire, full function
;----------------------------------------------------------------------------------
[uart0]
uart_used = 1
uart_port = 0
uart_type = 2
uart_tx = port:PF02
uart_rx = port:PF04
[uart1]
uart_used = 1
uart_port = 1
uart_type = 4
uart_tx = port:PG06
uart_rx = port:PG07
uart_rts = port:PG08
uart_cts = port:PG09
[uart2]
uart_used = 1
uart_type = 4
uart_tx = port:PB00
uart_rx = port:PB01
uart_rts = port:PB02
uart_cts = port:PB03
[uart3]
uart_used = 0
uart_type = 4
uart_tx = port:PH06
uart_rx = port:PH07
uart_rts = port:PH08
uart_cts = port:PH09
[uart4]
uart_used = 0
uart_port = 4
uart_type = 2
uart_tx = port:PA04
uart_rx = port:PA05
uart_rts = port:PA06
uart_cts = port:PA07
;----------------------------------------------------------------------------------
;capacitor tp configuration
;ctp_twi_id : twi controller ID
;ctp_twi_addr : I2C slave address, 7bit
;ctp_screen_max_x/_y : resolution of touch panel
;ctp_revert_x/_y_flag : whether need to revert x/y
;ctp_exchange_x_y_flag: whether need to exchange the value of x and y
;ctp_int_port : port for tp's interrupt signal
;ctp_wakeup : port for wakeup tp
;----------------------------------------------------------------------------------
[ctp_para]
ctp_used = 1
ctp_name = "gt82x"
ctp_twi_id = 0
ctp_twi_addr = 0x5d
ctp_screen_max_x = 1280
ctp_screen_max_y = 800
ctp_revert_x_flag = 1
ctp_revert_y_flag = 1
ctp_exchange_x_y_flag = 1
ctp_int_port = port:PL04
ctp_wakeup = port:PL03
ctp_power_ldo =
ctp_power_ldo_vol =
ctp_power_io =
;--------------------------------------------------------------------------------
; CTP automatic detection configuration
;ctp_detect_used --- Whether startup automatic inspection function. 1:used,0:unused
;Module name postposition 1 said detection, 0 means no detection.
;--------------------------------------------------------------------------------
[ctp_list_para]
ctp_det_used = 1
ft5x_ts = 1
gt82x = 1
gslX680 = 1
gslX680new = 0
gt9xx_ts = 1
gt9xxf_ts = 0
tu_ts = 0
gt818_ts = 1
zet622x = 1
aw5306_ts = 1
icn83xx_ts = 0
[lcd0_para]
lcd_used = 1
lcd_driver_name = "default_lcd"
lcd_if = 3
lcd_x = 1280
lcd_y = 800
lcd_width = 150
lcd_height = 94
lcd_dclk_freq = 71
lcd_pwm_used = 1
lcd_pwm_ch = 0
lcd_pwm_freq = 50000
lcd_pwm_pol = 1
lcd_hbp = 20
lcd_ht = 1418
lcd_hspw = 10
lcd_vbp = 10
lcd_vt = 830
lcd_vspw = 5
lcd_lvds_if = 0
lcd_lvds_colordepth = 1
lcd_lvds_mode = 0
lcd_frm = 1
lcd_gamma_en = 0
lcd_bright_curve_en = 0
lcd_cmap_en = 0
deu_mode = 0
lcdgamma4iep = 22
smart_color = 90
lcd_bl_en = port:PD13
;ap6xxx_wl_regon = port:PL06
;lcd_bl_en = port:PL06
lcd_power = "axp22_dc1sw"
lcdd0 = port:PD18
lcdd1 = port:PD19
lcdd2 = port:PD20
lcdd3 = port:PD21
lcdd4 = port:PD22
lcdd5 = port:PD23
lcdd6 = port:PD24
lcdd7 = port:PD25
lcdd8 = port:PD26
lcdd9 = port:PD27
;----------------------------------------------------------------------------------
;pwm config
;----------------------------------------------------------------------------------
[pwm0_para]
pwm_used = 0
pwm_positive = port:PH00
[pwm1_para]
pwm_used = 1
pwm_positive = port:PH01
;--------------------------------------------------------------------------------
;wifi configuration
;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)
;wifi_mod_sel: 0- none, 1- ap6181, 2- ap6210(wifi+bt),
; 3 - rtl8188eu, 4- rtl8723au(wifi+bt),
; 5 - rtl8723bs, 6- esp8089
;--------------------------------------------------------------------------------
[wifi_para]
wifi_used = 1
wifi_sdc_id = 1
wifi_usbc_id = 1
wifi_usbc_type = 1
wifi_mod_sel = 2
wifi_power = "axp22_dldo1"
wifi_power_ext1 = "axp22_dldo2"
wifi_power_ext2 = "axp22_aldo1"
wifi_power_switch =
;wifi_power_switch = port:power0
; 1 - ap6181 sdio wifi gpio config
;ap6xxx_wl_regon = port:PL06
;ap6xxx_wl_host_wake = port:PL07
;ap6xxx_lpo_use_apclk = 1
; 2 - ap6210 sdio wifi gpio config
ap6xxx_wl_regon = port:PL06
;ap6xxx_wl_regon = port:PD13
ap6xxx_wl_host_wake = port:PL07
ap6xxx_bt_regon = port:PL08
ap6xxx_bt_wake = port:PL10
ap6xxx_bt_host_wake = port:PL09
ap6xxx_lpo_use_apclk = 1
; 3 - rtl8188eu usb wifi gpio conifg
; 4 - rtl8723au usb wifi + bt
; 5 - rtl8723bs sdio wifi + bt
;rtl8723bs_chip_en = port:PL11
;rtl8723bs_wl_regon = port:PL06
;rtl8723bs_wl_host_wake = port:PL07
;rtl8723bs_bt_regon = port:PL08
;rtl8723bs_bt_wake = port:PL10
;rtl8723bs_bt_host_wake = port:PL09
;rtl8723bs_lpo_use_apclk = 0
; 6 - eagle sdio wifi
;esp_wl_chip_en = port:PL03
;esp_wl_rst = port:PL02
;--------------------------------------------------------------------------------
;blue tooth
;bt_used ---- blue tooth used (0- no used, 1- used)
;bt_uard_id ---- uart index
;--------------------------------------------------------------------------------
[bt_para]
bt_used = 1
bt_uart_id = 1
power_start = 3
pmu_temp_enable = 0
在设置→WLAN(打开之后):
shell@astar-y3:/ $
shell@astar-y3:/ $ [ 469.609956] init: computing context for service '/system/bin/wpa_supplicant'
[ 469.618386] init: starting 'p2p_supplicant'
[ 469.625739] init: Created socket '/dev/socket/wpa_wlan0' with mode '660', user '1010', group '1010'
[ 469.673379] init: waitpid returned pid 2065, status = 0000ff00
[ 469.679923] init: process 'p2p_supplicant', pid 2065 exited
[ 476.197334] sndpcm_unmute,line:1099
[ 451.464755] CPU1: Booted secondary processor
[ 478.459403] CPU1: shutdown
[ 478.462947] [hotplug]: cpu(0) try to kill cpu(1)
[ 478.468478] [hotplug]: cpu1 is killed! .
shell@astar-y3:/ $
分析启动的log:
[ 17.526849] gpio ap6xxx_wl_regon set val 1, act val 1
[ 17.632508] [ap6xxx]: sdio wifi power state: on
[ 17.637576] [mmc]: sdc1 set ios: clk 0Hz bm PP pm UP vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.637751] =========== WLAN placed in POWER ON ========
[ 17.654651] [mmc]: sdc1 card_power_on start...
[ 17.659576] [mmc]: sdc1 power_supply is null
[ 17.664322] [mmc]: sdc1 card_power_on ok
[ 17.680039] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.690275] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 17.772361] [mmc]: *** sunxi_mci_dump_errinfo(L773): smc 1 err, cmd 52, RTO !!
[ 17.781309] [mmc]: *** sunxi_mci_dump_errinfo(L773): smc 1 err, cmd 52, RTO !!
[ 17.789448] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.799714] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 17.862032] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.872262] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 17.933953] [mmc]: *** sunxi_mci_dump_errinfo(L773): smc 1 err, cmd 8, RTO !!
[ 17.941997] *******************Try sdio*******************
[ 17.948400] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 17.958630] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 18.027775] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 18.035416] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 18.043087] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 18.051920] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 18.145287] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[ 18.155436] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 18.215346] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[ 18.225736] [mmc]: mclk 0xf1c2008c 0x8100000b
[ 18.285675] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 18.296021] [mmc]: mclk 0xf1c2008c 0x8140030b
[ 18.357915] mmc1: new high speed SDIO card at address 0001
[ 18.364532] bcmsdh_register: Linux Kernel SDIO/MMC Driver
[ 18.364575] *******************sdio init ok*******************
[ 18.377207] bcm_wlan_get_oob_irq enter.
[ 18.381537] gpio [359] map to virq [7] ok
[ 18.388851] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x0 pkg:0x4
[ 18.396019] dhdsdio_probe_attach: unsupported chip: 0xa9a6
[ 18.402155] dhdsdio_probe: dhdsdio_probe_attach failed
[ 18.407899] bcmsdh_probe: device attach failed
[ 18.412981]
[ 18.412984] Dongle Host Driver, version 1.88.45.3 (r420671)
[ 18.412989] Compiled in drivers/net/wireless/bcmdhd on Jun 26 2017 at 12:06:39
[ 18.428835] dhd_module_init: sdio_register_driver timeout or error
[ 18.435928] gpio ap6xxx_wl_regon set val 0, act val 0
[ 18.541549] [ap6xxx]: sdio wifi power state: off
[ 18.546679] =========== WLAN placed in POWER OFF ========
[ 18.546915] mmc1: card 0001 removed
[ 18.546995] [mmc]: mmc not poweroff notifiy
[ 18.547007] [mmc]: sdc1 set ios: clk 0Hz bm OD pm OFF vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 18.547160] [mmc]: sdc1 card_power_off start...
[ 18.547166] [mmc]: sdc1 power_supply is null
[ 18.547173] [mmc]: sdc1 card_power_off ok
[ 18.631655] init: command 'insmod' r=-1
[ 18.636066] init: command 'insmod' r=-1
[ 18.658010] fs_mgr: swapon failed for /dev/block/zram0
[ 18.663804] init: command 'swapon_all' r=-1
[ 18.668504] init: processing action 0x58e70 (console_init)
[ 18.675396] init: width = 1280
[ 18.678788] init: height = 800
[ 18.682224] init: s.st_size = 3145728
[ 18.686308] init: logo match failed!fbsize = 4096000
[ 18.718811] init: command 'console_init' r=0
[ 18.723628] init: processing action 0x55bf0 (fs)
[ 18.730640] init: command 'mkdir' r=-2
[ 18.741901] init: command 'insmod' r=0
[ 18.752227] init: command 'insmod' r=0
[ 18.756491] init: command 'insmod' r=-1
[ 18.771211] init: command 'insmod' r=0
[ 18.779731] init: command 'insmod' r=0
[ 18.791739] init: command 'insmod' r=0
[ 18.803941] init: command 'insmod' r=0
[ 18.816178] init: command 'insmod' r=0
19、查找:(dhdsdio_probe_attach: unsupported chip: 0xa9a6)
rootroot@rootroot-E400:~$ cd wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd/
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$ grep "unsupported chip" . -R
./dhd_sdio.c: DHD_ERROR(("%s: unsupported chip: 0xx\n",
./sbutils.c: SI_ERROR(("sb_chip2numcores: unsupported chip 0x%x\n",
匹配到二进制文件 ./dhd_sdio.o
匹配到二进制文件 ./bcmdhd.o
匹配到二进制文件 ./bcmdhd.ko
匹配到二进制文件 ./sbutils.o
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
经过确认:
R:\wyb\ap6212a0_a33_sc3817r\lichee\linux-3.4\drivers\net\wireless\bcmdhd\dhd_sdio.c
static bool
dhdsdio_probe_attach(struct dhd_bus *bus, osl_t *osh, void *sdh, void *regsva,
uint16 devid)
bcmsdh_chipinfo(sdh, bus->sih->chip, bus->sih->chiprev);
if (!dhdsdio_chipmatch((uint16)bus->sih->chip)) {
DHD_ERROR(("%s: unsupported chip: 0xx\n",
__FUNCTION__, bus->sih->chip));
goto fail;
继续追踪:
static bool
dhdsdio_chipmatch(uint16 chipid)
if (chipid == BCM4325_CHIP_ID)
return TRUE;
if (chipid == BCM4329_CHIP_ID)
return TRUE;
if (chipid == BCM4315_CHIP_ID)
return TRUE;
if (chipid == BCM4319_CHIP_ID)
return TRUE;
if (chipid == BCM4336_CHIP_ID)
return TRUE;
if (chipid == BCM4330_CHIP_ID)
return TRUE;
if (chipid == BCM43237_CHIP_ID)
return TRUE;
if (chipid == BCM43362_CHIP_ID)
return TRUE;
if (chipid == BCM4314_CHIP_ID)
return TRUE;
if (chipid == BCM43242_CHIP_ID)
return TRUE;
if (chipid == BCM43340_CHIP_ID)
return TRUE;
if (chipid == BCM43341_CHIP_ID)
return TRUE;
if (chipid == BCM43143_CHIP_ID)
return TRUE;
if (chipid == BCM43342_CHIP_ID)
return TRUE;
if (chipid == BCM4334_CHIP_ID)
return TRUE;
if (chipid == BCM43239_CHIP_ID)
return TRUE;
if (chipid == BCM4324_CHIP_ID)
return TRUE;
if (chipid == BCM4335_CHIP_ID)
return TRUE;
if (chipid == BCM4339_CHIP_ID)
return TRUE;
if (chipid == BCM43349_CHIP_ID)
return TRUE;
if (chipid == BCM4345_CHIP_ID)
return TRUE;
if (chipid == BCM4350_CHIP_ID)
return TRUE;
if (chipid == BCM4354_CHIP_ID)
return TRUE;
if (chipid == BCM4356_CHIP_ID)
return TRUE;
if (chipid == BCM4358_CHIP_ID)
return TRUE;
if (chipid == BCM4371_CHIP_ID)
return TRUE;
if (chipid == BCM43430_CHIP_ID)
return TRUE;
if (BCM4349_CHIP(chipid))
return TRUE;
return FALSE;
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$ ll
总用量 40
drwxr-xr-x 7 rootroot rootroot 4096 6月 26 12:02 ./
drwx------ 6 rootroot rootroot 4096 6月 26 14:16 ../
drwxr-xr-x 10 rootroot rootroot 4096 9月 4 2014 brandy/
-rw-rw-r-- 1 rootroot rootroot 116 6月 26 12:02 .buildconfig
drwxr-xr-x 15 rootroot rootroot 4096 9月 4 2014 buildroot/
-r-xr-xr-x 1 rootroot rootroot 55 9月 4 2014 build.sh*
drwxr-xr-x 28 rootroot rootroot 4096 6月 26 14:30 linux-3.4/
drwxrwxr-x 3 rootroot rootroot 4096 6月 26 12:02 out/
-r--r--r-- 1 rootroot rootroot 232 9月 4 2014 README
drwxr-xr-x 7 rootroot rootroot 4096 6月 7 19:33 tools/
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$ ./build.sh config
Welcome to mkscript setup progress
All available chips:
0. sun8iw5p1
Choice: 0
All available platforms:
0. android
1. dragonboard
2. linux
Choice: 0
All available kernel:
0. linux-3.4
Choice: 0
All available boards:
0. evb
1. maple
2. redwood
3. y2
4. y3
Choice: 4
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$ ./build.sh
INFO: ----------------------------------------
INFO: build lichee ...
INFO: chip: sun8iw5p1
INFO: platform: android
INFO: kernel: linux-3.4
INFO: board: y3
INFO: output: out/sun8iw5p1/android/y3
INFO: ----------------------------------------
INFO: build buildroot ...
external toolchain has been installed
INFO: build buildroot OK.
INFO: build kernel ...
INFO: prepare toolchain ...
Building kernel
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: “include/generated/mach-types.h”是最新的。
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CC arch/arm/mach-sunxi/pm/standby/common.o
CC arch/arm/mach-sunxi/pm/standby/standby_clock.o
CC arch/arm/mach-sunxi/pm/standby/standby_ir.o
CC arch/arm/mach-sunxi/pm/standby/standby_key.o
CC arch/arm/mach-sunxi/pm/standby/standby_power.o
CC arch/arm/mach-sunxi/pm/standby/standby_twi.o
CC arch/arm/mach-sunxi/pm/standby/standby_usb.o
AS arch/arm/mach-sunxi/pm/standby/standby_delay.o
CC arch/arm/mach-sunxi/pm/standby/./arisc/standby_arisc.o
CC arch/arm/mach-sunxi/pm/standby/./arisc/arisc_hwmsgbox.o
CHK kernel/config_data.h
CC arch/arm/mach-sunxi/pm/standby/./arisc/arisc_hwspinlock.o
CC arch/arm/mach-sunxi/pm/standby/./arisc/arisc_message_manager.o
CC arch/arm/mach-sunxi/pm/standby/./../pm_debug.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_timing.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_mmu_pc.o
AS arch/arm/mach-sunxi/pm/standby/./../mem_mmu_pc_asm.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_serial.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_printk.o
AS arch/arm/mach-sunxi/pm/standby/./../mem_divlib.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_divlibc.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_int.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_tmr.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_tmstmp.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_clk.o
CC arch/arm/mach-sunxi/pm/standby/./../mem_hwspinlock.o
CC arch/arm/mach-sunxi/pm/standby/standby.o
rm -rf *.o arch/arm/mach-sunxi/pm/standby/../*.o
CC arch/arm/mach-sunxi/pm/standby/super/common.o
CC arch/arm/mach-sunxi/pm/standby/super/super_twi.o
CC [M] drivers/net/wireless/bcmdhd/dhd_sdio.o
AS arch/arm/mach-sunxi/pm/standby/super/super_delay.o
CC arch/arm/mach-sunxi/pm/standby/super/super_clock.o
CC arch/arm/mach-sunxi/pm/standby/super/super_power.o
CC arch/arm/mach-sunxi/pm/standby/super/super_cpus.o
AS arch/arm/mach-sunxi/pm/standby/super/resume/resume1.o
CC arch/arm/mach-sunxi/pm/standby/super/resume/resume_head.o
CC arch/arm/mach-sunxi/pm/standby/super/resume/resume1_c_part.o
CC arch/arm/mach-sunxi/pm/standby/../pm_debug.o
CC arch/arm/mach-sunxi/pm/standby/../mem_timing.o
CC arch/arm/mach-sunxi/pm/standby/../mem_mmu_pc.o
AS arch/arm/mach-sunxi/pm/standby/../mem_mmu_pc_asm.o
CC arch/arm/mach-sunxi/pm/standby/../mem_cpu.o
CC arch/arm/mach-sunxi/pm/standby/../mem_serial.o
CC arch/arm/mach-sunxi/pm/standby/../mem_printk.o
CC [M] drivers/net/wireless/bcmdhd/dhd_cdc.o
CC [M] drivers/net/wireless/bcmdhd/bcmsdh_linux.o
CC [M] drivers/net/wireless/bcmdhd/dhd_common.o
AS arch/arm/mach-sunxi/pm/standby/../mem_divlib.o
CC arch/arm/mach-sunxi/pm/standby/../mem_divlibc.o
drivers/net/wireless/bcmdhd/dhd_sdio.c: In function ‘dhdsdio_chipmatch’:
drivers/net/wireless/bcmdhd/dhd_sdio.c:6936:16: error: ‘BCM43430_CHIP_ID’ undeclared (first use in this function)
drivers/net/wireless/bcmdhd/dhd_sdio.c:6936:16: note: each undeclared identifier is reported only once for each function it appears in
CC arch/arm/mach-sunxi/pm/standby/../mem_int.o
make[4]: *** [drivers/net/wireless/bcmdhd/dhd_sdio.o] 错误 1
make[4]: *** 正在等待未完成的任务....
CC arch/arm/mach-sunxi/pm/standby/../mem_tmr.o
CC arch/arm/mach-sunxi/pm/standby/../mem_tmstmp.o
CC arch/arm/mach-sunxi/pm/standby/../mem_hwspinlock.o
CC arch/arm/mach-sunxi/pm/standby/../mem_clk.o
Source file is open
Destination file is created.
Source file is open
Destination file is open.
temp value is 400.
soure_file size is 9496.
destination_file size is 0x2800.
check sum generated is 0x68D92007.
Everything is ok.
rm -rf *.o arch/arm/mach-sunxi/pm/standby/../*.o
CC arch/arm/mach-sunxi/pm/mem_mapping.o
CC arch/arm/mach-sunxi/pm/mem_divlibc.o
CC arch/arm/mach-sunxi/pm/mem_cpu.o
AS arch/arm/mach-sunxi/pm/mem_cpu_asm.o
AS arch/arm/mach-sunxi/pm/mem_mmu_pc_asm.o
CC arch/arm/mach-sunxi/pm/mem_mmu_pc.o
CC arch/arm/mach-sunxi/pm/mem_int.o
CC arch/arm/mach-sunxi/pm/mem_clk.o
CC arch/arm/mach-sunxi/pm/mem_tmr.o
CC arch/arm/mach-sunxi/pm/mem_tmstmp.o
CC arch/arm/mach-sunxi/pm/mem_twi.o
CC arch/arm/mach-sunxi/pm/mem_gpio.o
CC arch/arm/mach-sunxi/pm/mem_sram.o
CC arch/arm/mach-sunxi/pm/mem_ccu.o
CC arch/arm/mach-sunxi/pm/mem_cci400.o
CC arch/arm/mach-sunxi/pm/mem_gtbus.o
CC arch/arm/mach-sunxi/pm/pm_debug.o
CC arch/arm/mach-sunxi/pm/mem_timing.o
CC arch/arm/mach-sunxi/pm/mem_hwspinlock.o
CC arch/arm/mach-sunxi/pm/pm.o
CC arch/arm/mach-sunxi/pm/extended_standby.o
CC arch/arm/mach-sunxi/pm/standby/super/super_power.o
CC arch/arm/mach-sunxi/pm/standby/super/super_twi.o
CC arch/arm/mach-sunxi/pm/standby/super/super_clock.o
AS arch/arm/mach-sunxi/pm/standby.o
AS arch/arm/mach-sunxi/pm/mem.o
LD arch/arm/mach-sunxi/pm/pm_tmp.o
LD arch/arm/mach-sunxi/pm/built-in.o
LD arch/arm/mach-sunxi/built-in.o
make[3]: *** [drivers/net/wireless/bcmdhd] 错误 2
make[2]: *** [drivers/net/wireless] 错误 2
make[1]: *** [drivers/net] 错误 2
make: *** [drivers] 错误 2
ERROR: build kernel Failed
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$
21、(dhdsdio_probe_attach: unsupported chip: 0xa9a6)
R:\wyb\ap6212a0_a33_sc3817r\lichee\linux-3.4\drivers\net\wireless\bcmdhd\include\bcmdevs.h
#define BCM4350_CHIP_ID 0x4350
#define BCM43430_CHIP_ID 43430 /* 43430 chipcommon chipid 0xa9a6 */
#define BCM4342_CHIP_ID 4342
可以编译通过了。
(查看属性:)
shell@astar-y3:/ $
shell@astar-y3:/ $ cd /system/vendor/modules/
shell@astar-y3:/system/vendor/modules $ ll bcm*
-rw-r--r-- root root 26020 2017-06-26 12:46 bcm43438a0.hcd
-rw-r--r-- root root 748856 2017-06-26 12:46 bcmdhd.ko
shell@astar-y3:/system/vendor/modules $
Microsoft Windows [版本 6.1.7600]
C:\Users\Administrator>cd R:\wyb\ap6212a0_a33_sc3817r\lichee\linux-3.4\drivers\n
et\wireless\bcmdhd
C:\Users\Administrator>r:
R:\wyb\ap6212a0_a33_sc3817r\lichee\linux-3.4\drivers\net\wireless\bcmdhd>adb remount
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
remount succeeded
R:\wyb\ap6212a0_a33_sc3817r\lichee\linux-3.4\drivers\net\wireless\bcmdhd>
R:\wyb\ap6212a0_a33_sc3817r\lichee\linux-3.4\drivers\net\wireless\bcmdhd>adb push bcmdhd.ko /system/vendor/modules/
1677 KB/s (748864 bytes in 0.436s)
R:\wyb\ap6212a0_a33_sc3817r\lichee\linux-3.4\drivers\net\wireless\bcmdhd>
继续查看属性:
shell@astar-y3:/system/vendor/modules $ ll bcm*
-rw-r--r-- root root 26020 2017-06-26 12:46 bcm43438a0.hcd
-rw-rw-rw- root root 748864 2017-06-26 14:34 bcmdhd.ko
shell@astar-y3:/system/vendor/modules $
shell@astar-y3:/system/vendor/modules $
shell@astar-y3:/system/vendor/modules $ chmod 644 bcmdhd.ko
Unable to chmod bcmdhd.ko: Operation not permitted
10|shell@astar-y3:/system/vendor/modules $
(必须在su下才能够修改属性:)
shell@astar-y3:/system/vendor/modules $ su
shell@astar-y3:/system/vendor/modules # chmod 644 bcmdhd.ko
shell@astar-y3:/system/vendor/modules #
shell@astar-y3:/system/vendor/modules # sync
shell@astar-y3:/system/vendor/modules # reboot
[ 0.658241] [wifi]: select wifi: ap6210 !!
[ 0.658587] [ap6xxx]: module power name axp22_dldo1
[ 0.658601] [ap6xxx]: module power ext1 name axp22_dldo2
[ 0.658613] [ap6xxx]: module power ext2 name axp22_aldo1
[ 0.658721] [ap6xxx]: get ap6xxx wifi_power_switch failed
[ 0.658731] [ap6xxx]: ap6xxx module power set by axp.
[ 0.658930] [ap6xxx]: first time
[ 0.659285] [ap6xxx]: regulator on.
[ 0.661306] [wifi_pm]: wifi gpio init is OK !!
(重启之后,WIFI模块要想办法配置为ap6212,现阶段借用的是AP6210!)
[ 8.517657] gpio ap6xxx_wl_regon set val 1, act val 1
[ 8.623325] [ap6xxx]: sdio wifi power state: on
[ 8.628389] [mmc]: sdc1 set ios: clk 0Hz bm PP pm UP vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 8.628566] =========== WLAN placed in POWER ON ========
[ 8.645459] [mmc]: sdc1 card_power_on start...
[ 8.650397] [mmc]: sdc1 power_supply is null
[ 8.655129] [mmc]: sdc1 card_power_on ok
[ 8.680031] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 8.690267] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 8.772360] [mmc]: *** sunxi_mci_dump_errinfo(L773): smc 1 err, cmd 52, RTO !!
[ 8.781316] [mmc]: *** sunxi_mci_dump_errinfo(L773): smc 1 err, cmd 52, RTO !!
[ 8.789448] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 8.799684] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 8.861971] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 8.872189] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 8.933887] [mmc]: *** sunxi_mci_dump_errinfo(L773): smc 1 err, cmd 8, RTO !!
[ 8.941921] *******************Try sdio*******************
[ 8.948329] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[ 8.958545] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 9.027690] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 9.035325] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 9.043192] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 9.052046] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 9.145358] [mmc]: sdc1 set ios: clk 400000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[ 9.155486] [mmc]: mclk 0xf1c2008c 0x8002000e
[ 9.215398] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 1 timing SD-HS(SDR25) dt B
[ 9.225785] [mmc]: mclk 0xf1c2008c 0x8100000b
[ 9.285721] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 9.296049] [mmc]: mclk 0xf1c2008c 0x8140030b
[ 9.357922] mmc1: new high speed SDIO card at address 0001
[ 9.364523] bcmsdh_register: Linux Kernel SDIO/MMC Driver
[ 9.364563] *******************sdio init ok*******************
[ 9.377203] bcm_wlan_get_oob_irq enter.
[ 9.381534] gpio [359] map to virq [7] ok
[ 9.388816] F1 signature OK, socitype:0x1 chip:0xa9a6 rev:0x0 pkg:0x4
[ 9.396740] DHD: dongle ram size is set to 524288(orig 524288) at 0x0
[ 9.404660] dhdsdio_probe: Disable prop_txstatus
[ 9.410903] wl_create_event_handler(): thread:wl_event_handler:5d started
[ 9.410914] tsk Enter, tsk = 0xddca13d8
[ 9.423788] p2p0: P2P Interface Registered
[ 9.428464] dhd_attach(): thread:dhd_watchdog_thread:5e started
[ 9.435144] dhd_attach(): thread:dhd_dpc:5f started
[ 9.440653] dhd_attach(): thread:dhd_sysioc:60 started
[ 9.447276] Broadcom Dongle Host Driver: register interface [wlan0] MAC: 00:90:4c:11:22:33
[ 9.456558]
[ 9.456561] Dongle Host Driver, version 1.88.45.3 (r420671)
[ 9.456565] Compiled in drivers/net/wireless/bcmdhd on Jun 26 2017 at 14:34:04
[ 9.472427] gpio ap6xxx_wl_regon set val 0, act val 0
[ 9.578054] [ap6xxx]: sdio wifi power state: off
[ 9.583186] =========== WLAN placed in RESET ========
(WIFI启动加载正常)
shell@astar-y3:/ $ lsmod
gt82x 9849 0 - Live 0x00000000
sunxi_schw 12559 0 - Live 0x00000000 (O)
cdc_ether 5099 0 - Live 0x00000000
rtl8150 9023 0 - Live 0x00000000
mcs7830 6292 0 - Live 0x00000000
qf9700 7805 0 - Live 0x00000000
asix 17150 0 - Live 0x00000000
usbnet 17700 4 cdc_ether,mcs7830,qf9700,asix, Live 0x00000000
sunxi_keyboard 3021 0 - Live 0x00000000
sw_device 13604 0 - Live 0x00000000
vfe_v4l2 445364 0 - Live 0x00000000
gc2035 12696 0 - Live 0x00000000
gc0308 10702 0 - Live 0x00000000
vfe_subdev 4523 3 vfe_v4l2,gc2035,gc0308, Live 0x00000000
vfe_os 4099 2 vfe_v4l2,vfe_subdev, Live 0x00000000
cci 21594 2 gc2035,gc0308, Live 0x00000000
videobuf_dma_contig 5535 1 vfe_v4l2, Live 0x00000000
videobuf_core 16520 2 vfe_v4l2,videobuf_dma_contig, Live 0x00000000
bcmdhd 556965 0 - Live 0x00000000
leds_sunxi 1351 0 - Live 0x00000000
mali 209914 20 - Live 0x00000000 (O)
lcd 38180 0 - Live 0x00000000
disp 993096 8 mali,lcd, Live 0x00000000
nand 280622 0 - Live 0x00000000 (O)
shell@astar-y3:/ $
(bcmdhd.ko这个驱动模块加载正常:)
(BT没有打开,但是不停地打印BT超时出错,不知道是何解?)
shell@astar-y3:/ $ [ 511.880344] [BT_LPM] bluesleep_tx_timer_expire: Tx timer expired
[ 511.887326] [BT_LPM] bluesleep_tx_timer_expire: Tx has been idle
由于此时WIFI出于记住上一次的状态的状态(打不开),所以需要重新刷镜像IMG,然后替换:bcmdhd.ko
shell@astar-y3:/ $
shell@astar-y3:/ $ lsmod
gt82x 9849 0 - Live 0x00000000
sunxi_schw 12559 0 - Live 0x00000000 (O)
cdc_ether 5099 0 - Live 0x00000000
rtl8150 9023 0 - Live 0x00000000
mcs7830 6292 0 - Live 0x00000000
qf9700 7805 0 - Live 0x00000000
asix 17150 0 - Live 0x00000000
usbnet 17700 4 cdc_ether,mcs7830,qf9700,asix, Live 0x00000000
sunxi_keyboard 3021 0 - Live 0x00000000
sw_device 13604 0 - Live 0x00000000
vfe_v4l2 445364 0 - Live 0x00000000
gc2035 12696 0 - Live 0x00000000
gc0308 10702 0 - Live 0x00000000
vfe_subdev 4523 3 vfe_v4l2,gc2035,gc0308, Live 0x00000000
vfe_os 4099 2 vfe_v4l2,vfe_subdev, Live 0x00000000
cci 21594 2 gc2035,gc0308, Live 0x00000000
videobuf_dma_contig 5535 1 vfe_v4l2, Live 0x00000000
videobuf_core 16520 2 vfe_v4l2,videobuf_dma_contig, Live 0x00000000
bcmdhd 556965 0 - Live 0x00000000
leds_sunxi 1351 0 - Live 0x00000000
mali 209914 15 - Live 0x00000000 (O)
lcd 38180 0 - Live 0x00000000
disp 993096 8 mali,lcd, Live 0x00000000
nand 280622 0 - Live 0x00000000 (O)
shell@astar-y3:/ $
shell@astar-y3:/ $
shell@astar-y3:/ $ [ 110.012176] init: computing context for service '/system/bin/wpa_supplicant'
[ 110.025400] init: starting 'p2p_supplicant'
[ 110.039886] init: Created socket '/dev/socket/wpa_wlan0' with mode '660', user '1010', group '1010'
[ 110.119751] dhd_conf_set_fw_name_by_chip: firmware_path=/system/vendor/modules/fw_bcm43438a0.bin
[ 110.140144]
[ 110.140153] Dongle Host Driver, version 1.88.45.3 (r420671)
[ 110.140158] Compiled in drivers/net/wireless/bcmdhd on Jun 26 2017 at 14:34:04
[ 110.173523] wl_android_wifi_on in 1
[ 110.177409] wl_android_wifi_on in 2: g_wifi_on=0
[ 110.200103] gpio ap6xxx_wl_regon set val 1, act val 1
[ 110.280025] [BT_LPM] bluesleep_tx_timer_expire: Tx timer expired
[ 110.286694] [BT_LPM] bluesleep_tx_timer_expire: Tx has been idle
[ 110.355684] [ap6xxx]: sdio wifi power state: on
[ 110.360930] =========== WLAN going back to live ========
[ 110.366925] sdio_reset_comm():
[ 110.370346] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 110.380773] [mmc]: mclk 0xf1c2008c 0x8140030b
[ 110.443029] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 110.454758] [mmc]: mclk 0xf1c2008c 0x8140030b
[ 110.516097] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 110.530958] [mmc]: mclk 0xf1c2008c 0x80430309
[ 110.592013] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 110.603518] [mmc]: mclk 0xf1c2008c 0x80030009
[ 110.681418] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[ 110.690726] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 110.700331] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[ 110.712218] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[ 110.894520] [mmc]: sdc1 set ios: clk 150000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 110.904933] [mmc]: mclk 0xf1c2008c 0x80030009
[ 110.964907] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 110.975514] [mmc]: mclk 0xf1c2008c 0x8100000b
[ 111.035618] [mmc]: sdc1 set ios: clk 50000000Hz bm PP pm ON vdd 3.3V width 4 timing SD-HS(SDR25) dt B
[ 111.046398] [mmc]: mclk 0xf1c2008c 0x8140030b
[ 111.108547]
[ 111.108566]
[ 111.108579] dhd_bus_devreset: == WLAN ON ==
[ 111.116882] dhd_bus_devreset called when dongle is not in reset
[ 111.123683] Will call dhd_bus_start instead
[ 111.128637] dhd_conf_set_fw_name_by_chip: firmware_path=/system/vendor/modules/fw_bcm43438a0.bin
[ 111.140963] dhd_conf_download_config: Ignore config file /system/vendor/modules/config.txt
[ 111.151802] Final fw_path=/system/vendor/modules/fw_bcm43438a0.bin
[ 111.158689] Final nv_path=/system/vendor/modules/nvram_ap6210.txt
[ 111.165542] Final conf_path=/system/vendor/modules/config.txt
[ 111.257577] dhdsdio_download_nvram: Open nvram file failed /system/vendor/modules/nvram_ap6210.txt
[ 111.268309] _dhdsdio_download_firmware: dongle nvram file download failed
[ 111.276022] dhd_bus_start: dhdsdio_probe_download failed. firmware = /system/vendor/modules/fw_bcm43438a0.bin nvram = /system/vendor/modules/nvram_ap6210.txt config = /system/vendor/modules/config.txt
[ 111.295979] dhd_bus_devreset: dhd_bus_start fail with -1
[ 111.304154] dhd_dev_reset: dhd_bus_devreset: -1
[ 111.309190] dhd_prot_ioctl : bus is down. we have nothing to do
[ 111.330328] dhd_bus_devreset: WLAN OFF DONE
[ 111.335225] gpio ap6xxx_wl_regon set val 0, act val 0
[ 111.472499] [ap6xxx]: sdio wifi power state: off
[ 111.477661] =========== WLAN placed in RESET ========
[ 111.483304] wl_android_wifi_on: Failed
[ 111.487473] wl_android_wifi_off in 1
[ 111.491478] wl_android_wifi_off in 2: g_wifi_on=0
[ 111.496711] wl_android_wifi_off out
[ 111.509335] init: waitpid returned pid 1211, status = 0000ff00
[ 111.516072] init: process 'p2p_supplicant', pid 1211 exited
shell@astar-y3:/ $
shell@astar-y3:/ $
24、定位问题:dhd_bus_devreset: dhd_bus_start fail with -1
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$ cd linux-3.4/drivers/net/wireless/bcmdhd/
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$ grep "dhd_bus_start fail with" . -R
./dhd_sdio.c: DHD_ERROR(("%s: dhd_bus_start fail with %d\n",
匹配到二进制文件 ./dhd_sdio.o
匹配到二进制文件 ./bcmdhd.o
匹配到二进制文件 ./bcmdhd.ko
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee$ cd linux-3.4/drivers/net/wireless/bcmdhd/
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$ grep "dhd_bus_start fail with" . -R
./dhd_sdio.c: DHD_ERROR(("%s: dhd_bus_start fail with %d\n",
匹配到二进制文件 ./dhd_sdio.o
匹配到二进制文件 ./bcmdhd.o
匹配到二进制文件 ./bcmdhd.ko
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
dhd_bus_devreset(dhd_pub_t *dhdp, uint8 flag)
dhd_conf_set_fw_name_by_chip(dhdp, fw_path, firmware_path);
if ((bcmerror = dhd_bus_start(dhdp)) != 0)
DHD_ERROR(("%s: dhd_bus_start fail with %d\n",
__FUNCTION__, bcmerror));
return bcmerror;
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$ grep dhd_bus_start . -R
./dhd_sdio.c: if ((ret = dhd_bus_start(bus->dhd)) != 0) {
./dhd_sdio.c: DHD_ERROR(("%s: dhd_bus_start failed\n", __FUNCTION__));
./dhd_sdio.c: DHD_ERROR(("Will call dhd_bus_start instead\n"));
./dhd_sdio.c: if ((bcmerror = dhd_bus_start(dhdp)) != 0)
./dhd_sdio.c: DHD_ERROR(("%s: dhd_bus_start fail with %d\n",
./dhd_sdio - 副本.c: if ((ret = dhd_bus_start(bus->dhd)) != 0) {
./dhd_sdio - 副本.c: DHD_ERROR(("%s: dhd_bus_start failed\n", __FUNCTION__));
./dhd_sdio - 副本.c: DHD_ERROR(("Will call dhd_bus_start instead\n"));
./dhd_sdio - 副本.c: if ((bcmerror = dhd_bus_start(dhdp)) != 0)
./dhd_sdio - 副本.c: DHD_ERROR(("%s: dhd_bus_start fail with %d\n",
./dhd_sdio - 副本 (2).c: if ((ret = dhd_bus_start(bus->dhd)) != 0) {
./dhd_sdio - 副本 (2).c: DHD_ERROR(("%s: dhd_bus_start failed\n", __FUNCTION__));
./dhd_sdio - 副本 (2).c: DHD_ERROR(("Will call dhd_bus_start instead\n"));
./dhd_sdio - 副本 (2).c: if ((bcmerror = dhd_bus_start(dhdp)) != 0)
./dhd_sdio - 副本 (2).c: DHD_ERROR(("%s: dhd_bus_start fail with %d\n",
./dhd.h:extern int dhd_bus_start(dhd_pub_t *dhdp);
./wl_android.c:/* Initialize g_wifi_on to 1 so dhd_bus_start will be called for the first
./dhd_linux.c: if ((ret = dhd_bus_start(&dhd->pub)) != 0) {
./dhd_linux.c: /* dhd_prot_init has been called in dhd_bus_start or wl_android_wifi_on */
./dhd_linux.c:dhd_bus_start(dhd_pub_t *dhdp)
rootroot@rootroot-E400:~/wyb/ap6212a0_a33_sc3817r/lichee/linux-3.4/drivers/net/wireless/bcmdhd$
定位到这里:
dhd_bus_start(dhd_pub_t *dhdp)
/* try to download image and nvram to the dongle */
if ((dhd->pub.busstate == DHD_BUS_DOWN) &&
(fw_path[0] != '\0') && (nv_path[0] != '\0')) {
#ifdef SHOW_NVRAM_TYPE
{ /* Show nvram type in the kernel log */
int i;
for (i = 0; nv_path[i] != '\0'; ++i) {
if (nv_path[i] == '.') {
break;
DHD_ERROR(("%s: nvram_type = [%s]\n", __FUNCTION__, &nv_path[i]));
#endif /* SHOW_NVRAM_TYPE */
/* wake lock moved to dhdsdio_download_firmware */
if (!(dhd_bus_download_firmware(dhd->pub.bus, dhd->pub.osh,
fw_path, nv_path, conf_path))) {
DHD_ERROR(("%s: dhdsdio_probe_download failed. firmware = %s nvram = %s config = %s\n",
__FUNCTION__, fw_path, nv_path, conf_path));
#ifdef DHDTHREAD
if (dhd->threads_only)
dhd_os_sdunlock(dhdp);
#endif /* DHDTHREAD */
// 2017/6/23 18:40 wenyuanbo download ap6212 fail not return error!!!!
//return -1;
return 0;
由于ap6212没有config.txt文件,下载肯定会出错,比对全志R16平台去AP6212的处理,关闭这里:
//return -1;
shell@astar-y3:/ $
shell@astar-y3:/ $ [ 110.012176] init: computing context for service '/system/bin/wpa_supplicant'
[ 110.025400] init: starting 'p2p_supplicant'
[ 110.039886] init: Created socket '/dev/socket/wpa_wlan0' with mode '660', user '1010', group '1010'
[ 110.119751] dhd_conf_set_fw_name_by_chip: firmware_path=/system/vendor/modules/fw_bcm43438a0.bin
[ 110.140144]
[ 110.140153] Dongle Host Driver, version 1.88.45.3 (r420671)
[ 110.140158] Compiled in drivers/net/wireless/bcmdhd on Jun 26 2017 at 14:34:04
[ 110.173523] wl_android_wifi_on in 1
[ 110.177409] wl_android_wifi_on in 2: g_wifi_on=0
[ 110.200103] gpio ap6xxx_wl_regon set val 1, act val 1
[ 110.280025] [BT_LPM] bluesleep_tx_timer_expire: Tx timer expired
[ 110.286694] [BT_LPM] bluesleep_tx_timer_expire: Tx has been idle
[ 110.355684] [ap6xxx]: sdio wifi power state: on
[ 110.3
最近在使用python写实验遇到这个问题:
NameError: name ‘xxx’ is not defined
在学习python或者在使用python的过程中这个问题大家肯定都遇到过,在这里我就这个问题总结以下几种情况:
错误NameError: name ‘xxx’ is not defined总结
情况一:要加双引号(" ")或者(’ ')而没加
情况二:字符缩进格式的问题
情况三:if __name__=='__main__' : 没有和class类进行对齐
情况四:NameError: na
NameError: name “ ” is not defined
问题一:name ‘name’ is not defined
"name"两端是双下划线"_",不是只有一个""。
问题二:name 'messagebox' is not defined
“ ” 内为某个数据库的子module。
在代码中加上如下语句:
from tkinter import mes...
在编辑代码时,如果需要采用非本代码所在文件夹下的代码文件的函数或者类时,那么需要添加该代码文件所在路径,否则会报“NameError: name 'XXX' is not defined”的错误,其实解决方案也非常简单,只要使用sys函数就可以解决:
比如在编写的代码中需要使用另外一个文件夹util内的代码文件Reader.py的一个函数 ,那么只用在头文件下输入如下语句:
import s...
![]() |
爱看球的香菜 · This application failed to start because no qt platform plugin could be initialized - CSDN文库 9 月前 |