10_LwM2M用户手册_V4.4.0.pdf
11_HTTP_HTTPS用户手册_V6.0.7.pdf
12_MQTT用户手册_V6.7.0.pdf
13_SSL用户手册_V5.3.0.pdf
14_TCP_IP用户手册_V5.0.0.pdf
15_扩展AT用户手册_4G系列_V1.5.0.pdf
16_ML307R_通信流程示例_V1.0.1.pdf
17_AT_Commands_Reference_Guide_4G_Series_V1.8.1.pdf
1_ML307R_硬件设计手册_AT版本适用_V1.0.1.pdf
2_硬件兼容性手册_ML307系列适用_V3.1.0.pdf
3_LBS用户手册_4G系列_V1.4.0.pdf
4_ML307R_拨号上网用户手册_V1.0.0.pdf
5_ML307R_维护诊断工具用户手册_V1.0.1.pdf
6_固件升级用户手册_V6.4.0.pdf
7_FTP用户手册_V3.1.0.pdf
8_ML307R_Android_RIL_驱动开发指导手册_V1.0.0.pdf
9_文件系统用户手册_4G系列_V3.4.0.pdf
请问安卓SDK如何控制屏幕亮度最小值,防止被用户设置全黑
https://whycan.com/t_11679.html
安卓SDK如何控制屏幕亮度最小值,防止被用户设置全黑
修改 device/softwinner/xxx-yyy/overlay/frameworks/base/core/res/res/values/config.xml
<integer name="config_screenBrightnessSettingMinimum">8</integer>
改成
<integer name="config_screenBrightnessSettingMinimum">12</integer>
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
客户反应 A133背光调节不够线性
frameworks/base/packages/SettingsLib/src/com/android/settingslib/display/BrightnessUtils.java
源代码:
public static final int convertGammaToLinear(int val, int min, int max) {
final float normalizedVal = MathUtils.norm(0, GAMMA_SPACE_MAX, val);
final float ret;
if (normalizedVal <= R) {
ret = MathUtils.sq(normalizedVal / R);
} else {
ret = MathUtils.exp((normalizedVal - C) / A) + B;
}
// HLG is normalized to the range [0, 12], so we need to re-normalize to the range [0, 1]
// in order to derive the correct setting value.
return Math.round(MathUtils.lerp(min, max, ret / 12));
}
添加调试后:
public static final int convertGammaToLinear(int val, int min, int max) {
final float normalizedVal = MathUtils.norm(0, GAMMA_SPACE_MAX, val);
final float ret;
if (normalizedVal <= R) {
ret = MathUtils.sq(normalizedVal / R);
} else {
ret = MathUtils.exp((normalizedVal - C) / A) + B;
}
int x = Math.round(MathUtils.lerp(min, max, ret / 12));
String message = String.format("----> linear min->%d, max=%d, val=%04d, x=%03d", min, max, val, x);
Log.e("AAAA", message);
// HLG is normalized to the range [0, 12], so we need to re-normalize to the range [0, 1]
// in order to derive the correct setting value.
return x;
}
从左拖到右:
12-20 21:04:52.384 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=000, x=012
12-20 21:04:52.386 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=081, x=013
12-20 21:04:52.561 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=095, x=013
12-20 21:04:52.577 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=194, x=015
12-20 21:04:52.595 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=289, x=018
12-20 21:04:52.612 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=384, x=023
12-20 21:04:52.627 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=440, x=027
12-20 21:04:52.645 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=507, x=032
12-20 21:04:52.661 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=564, x=037
12-20 21:04:52.679 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=620, x=044
12-20 21:04:52.695 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=677, x=054
12-20 21:04:52.711 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=729, x=065
12-20 21:04:52.727 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=781, x=081
12-20 21:04:52.745 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=838, x=104
12-20 21:04:52.761 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=876, x=124
12-20 21:04:52.777 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=909, x=145
12-20 21:04:52.796 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=938, x=167
12-20 21:04:52.811 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=980, x=205
12-20 21:04:52.828 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=1014, x=244
12-20 21:04:52.844 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=1023, x=255
12-20 21:04:53.085 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=1023, x=255
12-20 21:04:53.097 2237 2237 E AAAA : AAAA ----> linear min->12, max=255, val=1023, x=255
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
public boolean panelsEnabled() {
final int disabled1 = getDisabled1(DEFAULT_DISPLAY);
final int disabled2 = getDisabled2(DEFAULT_DISPLAY);
return (disabled1 & StatusBarManager.DISABLE_EXPAND) == 0
&& (disabled2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) == 0
&& !ONLY_CORE_APPS;
}
public boolean panelsEnabled() {
return false;
}
闲鱼淘了一块大彩串口屏,F1C600,7寸,GT911电容触摸
固件备份:dacai_read_a.bin.7z (首先排除melis系统,因为里面找不到MINFS关键字)
用 dd 命令提取ramfs.iso文件:
dd bs=1 if=input.bin of=ramfs.iso skip=$((0x4d134)) count=$((0x00019000))
用 extminfs 释放文件系统:
extminfs.exe "D:\ramfs.iso"
D:\work\sf-cabinet>tree MINFS_00 /F
卷 addon 的文件夹 PATH 列表
卷序列号为 000000C3 846D:812C
D:\WORK\SF-CABINET\MINFS_00
│ MINFS_analysis.txt
│
└─$Root
│ ramfs_ini.tmp
│ shell.zgj
│ shell.zgj.LZMA
│ startup.esh
│
├─drv
│ ir.drv
│ ir.drv.LZMA
│ key.drv
│ key.drv.LZMA
│ matrixkey.drv
│ matrixkey.drv.LZMA
│ monitor.drv
│ monitor.drv.LZMA
│ power.drv
│ power.drv.LZMA
│ power_cfg.ini
│ rtc.drv
│ rtc.drv.LZMA
│ spi.drv
│ spi.drv.LZMA
│ spinor.drv
│ spinor.drv.LZMA
│ twi.drv
│ twi.drv.LZMA
│
└─mod
slib.mod
slib.mod.LZMA
melis100.fex 是最终的flash烧录镜像,解包有难度。
但是还是让我找到了一个提取 rootfs.iso minfs 文件的办法
https://github.com/wrongbaud/sf-cabinet
仓库本站下载:sf-cabinet_20241209_git.7z
extminfs.exe "D:\work\F1C200S_Melis_V1.7_mdk\melis2.0-sdk-release\workspace\suniv\beetles\rootfs.iso"
D:\work\sf-cabinet>extminfs.exe "D:\work\F1C200S_Melis_V1.7_mdk\melis2.0-sdk-release\workspace\suniv\beetles\rootfs.iso"
MINFS tree will be saved to MINFS_00
MINFS image analysis will be saved to MINFS_00\MINFS_analysis.txt
这是A133 + AW869A 正常的日志
130|ceres-c3:/ #
130|ceres-c3:/ # logcat |grep bluetooth
08-23 21:00:06.855 2131 2131 I ServiceManagement: Registered android.hardware.bluetooth@1.0::IBluetoothHci/default (start delay of 390ms)
08-23 21:00:06.856 2131 2131 I ServiceManagement: Removing namespace from process name android.hardware.bluetooth@1.0-service to bluetooth@1.0-service.
08-23 21:00:06.857 2131 2131 I android.hardware.bluetooth@1.0-service: Registration complete for android.hardware.bluetooth@1.0::IBluetoothHci/default.
08-23 21:00:06.890 1988 1988 I hwservicemanager: getTransport: Cannot find entry android.hardware.bluetooth.audio@2.0::IBluetoothAudioProvidersFactory/default in either framework or device manifest.
08-23 21:00:06.891 2130 2130 E audiohalservice: Could not get passthrough implementation for android.hardware.bluetooth.audio@2.0::IBluetoothAudioProvidersFactory/default.
08-23 21:00:06.892 1988 1988 I hwservicemanager: getTransport: Cannot find entry android.hardware.bluetooth.a2dp@1.0::IBluetoothAudioOffload/default in either framework or device manifest.
08-23 21:00:06.892 2130 2130 E audiohalservice: Could not get passthrough implementation for android.hardware.bluetooth.a2dp@1.0::IBluetoothAudioOffload/default.
08-23 21:00:07.477 2138 2138 E light : light_open lights bluetooth failed: -22
08-23 21:00:10.683 2323 2323 I getprop : type=1400 audit(0.0:19): avc: denied { open } for path="/dev/__properties__/u:object_r:bluetooth_a2dp_offload_prop:s0" dev="tmpfs" ino=2245 scontext=u:r:shell:s0 tcontext=u:object_r:bluetooth_a2dp_offload_prop:s0 tclass=file permissive=1
08-23 21:00:10.683 2323 2323 I getprop : type=1400 audit(0.0:20): avc: denied { getattr } for path="/dev/__properties__/u:object_r:bluetooth_a2dp_offload_prop:s0" dev="tmpfs" ino=2245 scontext=u:r:shell:s0 tcontext=u:object_r:bluetooth_a2dp_offload_prop:s0 tclass=file permissive=1
08-23 21:00:10.683 2323 2323 I getprop : type=1400 audit(0.0:21): avc: denied { open } for path="/dev/__properties__/u:object_r:bluetooth_audio_hal_prop:s0" dev="tmpfs" ino=2246 scontext=u:r:shell:s0 tcontext=u:object_r:bluetooth_audio_hal_prop:s0 tclass=file permissive=1
08-23 21:00:10.683 2323 2323 I getprop : type=1400 audit(0.0:22): avc: denied { getattr } for path="/dev/__properties__/u:object_r:bluetooth_audio_hal_prop:s0" dev="tmpfs" ino=2246 scontext=u:r:shell:s0 tcontext=u:object_r:bluetooth_audio_hal_prop:s0 tclass=file permissive=1
08-23 21:00:10.683 2323 2323 I getprop : type=1400 audit(0.0:23): avc: denied { open } for path="/dev/__properties__/u:object_r:bluetooth_prop:s0" dev="tmpfs" ino=2247 scontext=u:r:shell:s0 tcontext=u:object_r:bluetooth_prop:s0 tclass=file permissive=1
08-23 21:00:10.683 2323 2323 I getprop : type=1400 audit(0.0:24): avc: denied { getattr } for path="/dev/__properties__/u:object_r:bluetooth_prop:s0" dev="tmpfs" ino=2247 scontext=u:r:shell:s0 tcontext=u:object_r:bluetooth_prop:s0 tclass=file permissive=1
08-23 21:00:10.690 2323 2323 I getprop : type=1400 audit(0.0:79): avc: denied { open } for path="/dev/__properties__/u:object_r:exported_bluetooth_prop:s0" dev="tmpfs" ino=2297 scontext=u:r:shell:s0 tcontext=u:object_r:exported_bluetooth_prop:s0 tclass=file permissive=1
08-23 21:00:10.690 2323 2323 I getprop : type=1400 audit(0.0:80): avc: denied { getattr } for path="/dev/__properties__/u:object_r:exported_bluetooth_prop:s0" dev="tmpfs" ino=2297 scontext=u:r:shell:s0 tcontext=u:object_r:exported_bluetooth_prop:s0 tclass=file permissive=1
08-23 21:00:12.052 2124 2124 W Zygote : Class not found for preloading: android.bluetooth.BluetoothA2dp$2
08-23 21:00:16.150 2428 2560 W PackageParser: Ignoring duplicate uses-permissions/uses-permissions-sdk-m: android.permission.READ_CONTACTS in package: com.android.bluetooth at: Binary XML file line #67
11-23 11:34:04.215 2126 2126 W Zygote : Class not found for preloading: android.bluetooth.BluetoothA2dp$2
11-23 11:34:04.264 2428 2428 D BluetoothManagerService: Stored bluetooth Name=QUAD-CORE A133 c3,Address=01:42:D9:21:DE:89
11-23 11:34:05.973 2428 2484 I ActivityManager: app.processName = com.android.bluetooth
11-23 11:34:05.973 2428 2484 I ActivityManager: Start proc 2815:com.android.bluetooth/1002 for service {com.android.bluetooth/com.android.bluetooth.btservice.AdapterService}
11-23 11:34:06.715 2815 2815 I : [1123/113406.715271:INFO:com_android_bluetooth_btservice_AdapterService.cpp(628)] hal_util_load_bt_library loaded HAL: btinterface=0x7c0cae5440, handle=0xe161d939f04fe2f3
11-23 11:34:06.793 2815 3020 I bt_btif_core: btif_init_bluetooth entered
11-23 11:34:06.794 2815 3020 I bt_stack_config: init attempt to load stack conf from /etc/bluetooth/bt_stack.conf
11-23 11:34:06.797 2815 3020 I bt_btif_core: btif_init_bluetooth finished
11-23 11:34:06.905 2815 2815 D BluetoothAdapterService: setAdapterService() - trying to set service to com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:07.597 2428 2428 D BluetoothManagerService: BluetoothServiceConnection: com.android.bluetooth.btservice.AdapterService
11-23 11:34:07.601 2428 2473 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@337c8b
11-23 11:34:07.608 2815 2836 D BluetoothAdapter: onBluetoothServiceUp: com.android.bluetooth.btservice.AdapterService$AdapterServiceBinder@d1c55c0
11-23 11:34:07.677 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:07.690 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:07.768 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:07.790 2131 2172 I android.hardware.bluetooth@1.0-impl: BluetoothHci::initialize()
11-23 11:34:07.800 2131 2172 E libbt_vendor: aicbt_load_stack_conf unable to open file '/vendor/etc/bluetooth/aicbt.conf': No such file or directory
11-23 11:34:07.800 2131 2172 E libbt_vendor: no config find from file '/vendor/etc/bluetooth/aicbt.conf'
11-23 11:34:07.804 2131 2172 D android.hardware.bluetooth@1.0-impl: Open vendor library loaded
11-23 11:34:07.800 2131 2131 I HwBinder:2131_1: type=1400 audit(0.0:130): avc: denied { create } for scontext=u:r:hal_bluetooth_default:s0 tcontext=u:r:hal_bluetooth_default:s0 tclass=udp_socket permissive=1
11-23 11:34:07.810 2131 2131 I HwBinder:2131_1: type=1400 audit(0.0:131): avc: denied { read } for name="/" dev="tmpfs" ino=7445 scontext=u:r:hal_bluetooth_default:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=1
11-23 11:34:07.987 2131 3256 D android.hardware.bluetooth@1.0-impl: OnFirmwareConfigured result: 0
11-23 11:34:07.987 2131 3256 I android.hardware.bluetooth@1.0-impl: Firmware configured in 0.083s
11-23 11:34:07.987 2131 3256 I android.hardware.bluetooth@1.0-impl: OnFirmwareConfigured: lpm_timeout_ms 3000
11-23 11:34:07.987 2131 3256 D android.hardware.bluetooth@1.0-impl: low_power_mode_cb result: 0
11-23 11:34:07.987 2131 3256 D android.hardware.bluetooth@1.0-impl: OnFirmwareConfigured Calling StartLowPowerWatchdog()
11-23 11:34:08.123 2131 3250 E aic_heartbeat: load_aicbt_heartbeat_conf unable to open file '/vendor/etc/bluetooth/aicbt_heartbeat.conf': No such file or directory
11-23 11:34:08.202 2815 3028 I bt_btif_core: btif_enable_bluetooth_evt entered: status 0
11-23 11:34:08.207 2815 3028 I bt_btif_core: btif_enable_bluetooth_evt finished
11-23 11:34:08.233 2428 2428 D BluetoothManagerService: BluetoothServiceConnection: com.android.bluetooth.gatt.GattService
11-23 11:34:08.277 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.308 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.390 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.395 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.448 2815 3269 I chatty : uid=1002(bluetooth) identical 2 lines
11-23 11:34:08.461 2815 2815 D A2dpService: setA2dpService(): set to: com.android.bluetooth.a2dp.A2dpService@938178f
11-23 11:34:08.468 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.478 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.492 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.504 2815 2815 D BluetoothMapAccountLoader: Found 0 application(s) with intent android.bluetooth.action.BLUETOOTH_MAP_PROVIDER
11-23 11:34:08.507 2815 2815 D BluetoothMapAccountLoader: Found 0 application(s) with intent android.bluetooth.action.BLUETOOTH_MAP_IM_PROVIDER
11-23 11:34:08.510 2815 2815 D BluetoothMapService: setBluetoothMapService(): set to: com.android.bluetooth.map.BluetoothMapService@d2994dd
11-23 11:34:08.512 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.529 2428 2639 D MediaSessionService: The callback android.media.session.ICallback$Stub$Proxy@901abf1 is set by com.android.bluetooth
11-23 11:34:08.532 2815 3269 I bt_stack: [INFO:connection_handler.cc(206)] virtual bool bluetooth::avrcp::ConnectionHandler::AvrcpConnect(bool, const RawAddress &): handle=0000 status= 000000
11-23 11:34:08.546 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.559 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.571 2815 2815 D BtOppService: setBluetoothOppService(): set to: com.android.bluetooth.opp.BluetoothOppService@b8a3ee4
11-23 11:34:08.575 2815 2815 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@dba49b6
11-23 11:34:08.587 2815 2815 D BluetoothPbapService: setBluetoothPbapService(): set to: com.android.bluetooth.pbap.BluetoothPbapService@d8c867c
11-23 11:34:12.107 3674 3674 D music_MediaPlaybackSer: OnGetRoot: clientPackageName=com.android.bluetooth; clientUid=1002 ; rootHints=null
11-23 11:34:12.172 3674 3674 D music_MediaPlaybackSer: OnGetRoot: clientPackageName=com.android.bluetooth; clientUid=1002 ; rootHints=null
11-23 11:36:11.909 2428 2639 D BluetoothManagerService: disable(): mBluetooth = android.bluetooth.IBluetooth$Stub$Proxy@337c8b mBinding = false
11-23 11:36:11.910 2428 2473 D BluetoothManagerService: MESSAGE_DISABLE: mBluetooth = android.bluetooth.IBluetooth$Stub$Proxy@337c8b
11-23 11:36:11.910 2428 2428 V SettingsProvider: Notifying for 0: content://settings/global/bluetooth_on
11-23 11:36:11.966 2428 3127 D MediaSessionService: The callback null is set by com.android.bluetooth
11-23 11:36:11.977 2815 2815 D BluetoothSocket: close() this: android.bluetooth.BluetoothSocket@57dc280, channel: 5, mSocketIS: android.net.LocalSocketImpl$SocketInputStream@6cf00b9, mSocketOS: android.net.LocalSocketImpl$SocketOutputStream@71dcfemSocket: android.net.LocalSocket@c44ac5f impl:android.net.LocalSocketImpl@63c86ac fd:java.io.FileDescriptor@dd5ef75, mSocketState: LISTENING
11-23 11:36:11.979 2815 2815 D BluetoothSocket: close() this: android.bluetooth.BluetoothSocket@c8acb0a, channel: 4099, mSocketIS: android.net.LocalSocketImpl$SocketInputStream@4b1af7b, mSocketOS: android.net.LocalSocketImpl$SocketOutputStream@7416198mSocket: android.net.LocalSocket@6230df1 impl:android.net.LocalSocketImpl@4928dd6 fd:java.io.FileDescriptor@321c857, mSocketState: LISTENING
11-23 11:36:11.988 2815 3412 D BluetoothSocket: close() this: android.bluetooth.BluetoothSocket@ab6ff44, channel: 4, mSocketIS: android.net.LocalSocketImpl$SocketInputStream@449982d, mSocketOS: android.net.LocalSocketImpl$SocketOutputStream@f81b162mSocket: android.net.LocalSocket@21092f3 impl:android.net.LocalSocketImpl@8c6cbb0 fd:java.io.FileDescriptor@8d48a29, mSocketState: LISTENING
11-23 11:36:11.991 2815 3412 D BluetoothSocket: close() this: android.bluetooth.BluetoothSocket@94d81ae, channel: 4097, mSocketIS: android.net.LocalSocketImpl$SocketInputStream@e176b4f, mSocketOS: android.net.LocalSocketImpl$SocketOutputStream@c4f2dcmSocket: android.net.LocalSocket@8029fe5 impl:android.net.LocalSocketImpl@5f40aba fd:java.io.FileDescriptor@a096d6b, mSocketState: LISTENING
11-23 11:36:11.999 2815 2815 W BtOppService: unregisterReceivers java.lang.IllegalArgumentException: Receiver not registered: com.android.bluetooth.opp.BluetoothOppService$3@15e6f4d
11-23 11:36:12.017 2815 3020 I bt_btif_core: btif_disable_bluetooth entered
11-23 11:36:12.019 2815 3020 I bt_btif_core: btif_disable_bluetooth finished
11-23 11:36:13.011 2428 2473 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@337c8b
11-23 11:36:13.013 2916 3587 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@1832417
11-23 11:36:13.013 2428 2473 D BluetoothManagerService: unbindAndFinish(): android.bluetooth.IBluetooth$Stub$Proxy@337c8b mBinding = false mUnbinding = false
11-23 11:36:13.013 2815 3380 D BluetoothAdapter: onBluetoothServiceDown: com.android.bluetooth.btservice.AdapterService$AdapterServiceBinder@d1c55c0
11-23 11:36:13.013 2788 2808 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@23f4100
11-23 11:36:13.022 2815 3028 I bt_btif_core: btif_disable_bluetooth_evt entered
11-23 11:36:13.024 2131 2172 I android.hardware.bluetooth@1.0-impl: BluetoothHci::close()
11-23 11:36:13.024 2131 2172 D android.hardware.bluetooth@1.0-impl: low_power_mode_cb result: 0
11-23 11:36:13.508 2815 3028 I bt_btif_core: btif_disable_bluetooth_evt finished
11-23 11:36:13.510 2815 3020 I bt_btif_core: btif_cleanup_bluetooth entered
11-23 11:36:13.512 2815 3020 I bt_btif_core: btif_cleanup_bluetooth finished
11-23 11:36:13.593 2428 4425 I ActivityManager: Process com.android.bluetooth (pid 2815) has died: fore SVC
11-23 11:36:22.299 2428 2484 I ActivityManager: app.processName = com.android.bluetooth
11-23 11:36:22.299 2428 2484 I ActivityManager: Start proc 4719:com.android.bluetooth/1002 for service {com.android.bluetooth/com.android.bluetooth.btservice.AdapterService}
11-23 11:36:22.524 4719 4719 I : [1123/113622.524548:INFO:com_android_bluetooth_btservice_AdapterService.cpp(628)] hal_util_load_bt_library loaded HAL: btinterface=0x7c0cba4440, handle=0x18f04452a7b9dec5
11-23 11:36:22.547 4719 4755 I bt_btif_core: btif_init_bluetooth entered
11-23 11:36:22.548 4719 4755 I bt_stack_config: init attempt to load stack conf from /etc/bluetooth/bt_stack.conf
11-23 11:36:22.552 4719 4755 I bt_btif_core: btif_init_bluetooth finished
11-23 11:36:22.608 4719 4719 D BluetoothAdapterService: setAdapterService() - trying to set service to com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:22.616 2428 2428 D BluetoothManagerService: BluetoothServiceConnection: com.android.bluetooth.btservice.AdapterService
11-23 11:36:22.617 2428 2473 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@766fd53
11-23 11:36:22.618 2916 3587 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@a9f9004
11-23 11:36:22.621 2788 2809 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@9e43e3f
11-23 11:36:22.623 4719 4740 D BluetoothAdapter: onBluetoothServiceUp: com.android.bluetooth.btservice.AdapterService$AdapterServiceBinder@31cbb43
11-23 11:36:22.674 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:22.680 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:22.712 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:22.722 2131 2172 I android.hardware.bluetooth@1.0-impl: BluetoothHci::initialize()
11-23 11:36:22.724 2131 2172 E libbt_vendor: aicbt_load_stack_conf unable to open file '/vendor/etc/bluetooth/aicbt.conf': No such file or directory
11-23 11:36:22.724 2131 2172 E libbt_vendor: no config find from file '/vendor/etc/bluetooth/aicbt.conf'
11-23 11:36:22.727 2131 2172 D android.hardware.bluetooth@1.0-impl: Open vendor library loaded
11-23 11:36:22.736 2131 4797 D android.hardware.bluetooth@1.0-impl: OnFirmwareConfigured result: 0
11-23 11:36:22.736 2131 4797 I android.hardware.bluetooth@1.0-impl: Firmware configured in 0.007s
11-23 11:36:22.746 2131 4797 I android.hardware.bluetooth@1.0-impl: OnFirmwareConfigured: lpm_timeout_ms 3000
11-23 11:36:22.746 2131 4797 D android.hardware.bluetooth@1.0-impl: low_power_mode_cb result: 0
11-23 11:36:22.746 2131 4797 D android.hardware.bluetooth@1.0-impl: OnFirmwareConfigured Calling StartLowPowerWatchdog()
11-23 11:36:22.723 2131 2131 I HwBinder:2131_1: type=1400 audit(0.0:139): avc: denied { create } for scontext=u:r:hal_bluetooth_default:s0 tcontext=u:r:hal_bluetooth_default:s0 tclass=udp_socket permissive=1
11-23 11:36:22.743 2131 2131 I HwBinder:2131_1: type=1400 audit(0.0:140): avc: denied { read } for name="/" dev="tmpfs" ino=7445 scontext=u:r:hal_bluetooth_default:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=1
11-23 11:36:22.872 2131 4791 E aic_heartbeat: load_aicbt_heartbeat_conf unable to open file '/vendor/etc/bluetooth/aicbt_heartbeat.conf': No such file or directory
11-23 11:36:22.904 4719 4762 I bt_btif_core: btif_enable_bluetooth_evt entered: status 0
11-23 11:36:22.914 4719 4762 I bt_btif_core: btif_enable_bluetooth_evt finished
11-23 11:36:22.935 2428 2428 D BluetoothManagerService: BluetoothServiceConnection: com.android.bluetooth.gatt.GattService
11-23 11:36:22.940 2428 2428 V SettingsProvider: Notifying for 0: content://settings/global/bluetooth_on
11-23 11:36:22.953 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:22.958 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:22.982 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:22.991 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:23.042 4719 4802 I chatty : uid=1002(bluetooth) identical 3 lines
11-23 11:36:23.055 4719 4719 D A2dpService: setA2dpService(): set to: com.android.bluetooth.a2dp.A2dpService@ba9ca1c
11-23 11:36:23.060 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:23.065 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:23.077 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:23.099 4719 4719 D BluetoothMapAccountLoader: Found 0 application(s) with intent android.bluetooth.action.BLUETOOTH_MAP_PROVIDER
11-23 11:36:23.103 4719 4719 D BluetoothMapAccountLoader: Found 0 application(s) with intent android.bluetooth.action.BLUETOOTH_MAP_IM_PROVIDER
11-23 11:36:23.108 4719 4719 D BluetoothMapService: setBluetoothMapService(): set to: com.android.bluetooth.map.BluetoothMapService@5fde852
11-23 11:36:23.114 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:23.129 2428 4425 D MediaSessionService: The callback android.media.session.ICallback$Stub$Proxy@9ed147c is set by com.android.bluetooth
11-23 11:36:23.130 4719 4802 I bt_stack: [INFO:connection_handler.cc(206)] virtual bool bluetooth::avrcp::ConnectionHandler::AvrcpConnect(bool, const RawAddress &): handle=0000 status= 000000
11-23 11:36:23.147 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:23.162 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:23.177 4719 4719 D BtOppService: setBluetoothOppService(): set to: com.android.bluetooth.opp.BluetoothOppService@dad0a02
11-23 11:36:23.180 4719 4719 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:36:23.197 4719 4719 D BluetoothPbapService: setBluetoothPbapService(): set to: com.android.bluetooth.pbap.BluetoothPbapService@dddd75a
11-23 11:36:23.470 4846 4846 D music_MediaPlaybackSer: OnGetRoot: clientPackageName=com.android.bluetooth; clientUid=1002 ; rootHints=null
11-23 11:36:23.496 4846 4846 D music_MediaPlaybackSer: OnGetRoot: clientPackageName=com.android.bluetooth; clientUid=1002 ; rootHints=null
11-23 11:36:26.267 2428 2473 W BluetoothManagerService: Unable to bind with intent: Intent { act=android.bluetooth.IBluetoothHeadset cmp=com.android.bluetooth/.hfp.HeadsetService }
11-23 11:36:30.464 2961 2961 D SettingsActivity: Switching to fragment com.android.settings.bluetooth.BluetoothPairingDetail
11-23 11:36:30.464 2961 2961 D SubSettings: Launching fragment com.android.settings.bluetooth.BluetoothPairingDetail
11-23 11:36:30.472 2961 2961 D PrefCtrlListHelper: Could not find Context-only controller for pref: com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController
11-23 11:39:36.865 2428 4314 D BluetoothManagerService: disable(): mBluetooth = android.bluetooth.IBluetooth$Stub$Proxy@766fd53 mBinding = false
11-23 11:39:36.868 2428 2428 V SettingsProvider: Notifying for 0: content://settings/global/bluetooth_on
11-23 11:39:36.873 2428 2473 D BluetoothManagerService: MESSAGE_DISABLE: mBluetooth = android.bluetooth.IBluetooth$Stub$Proxy@766fd53
11-23 11:39:36.948 4719 4719 D BluetoothSocket: close() this: android.bluetooth.BluetoothSocket@6cf00b9, channel: 5, mSocketIS: android.net.LocalSocketImpl$SocketInputStream@71dcfe, mSocketOS: android.net.LocalSocketImpl$SocketOutputStream@c44ac5fmSocket: android.net.LocalSocket@63c86ac impl:android.net.LocalSocketImpl@dd5ef75 fd:java.io.FileDescriptor@c8acb0a, mSocketState: LISTENING
11-23 11:39:36.954 4719 4719 D BluetoothSocket: close() this: android.bluetooth.BluetoothSocket@4b1af7b, channel: 4099, mSocketIS: android.net.LocalSocketImpl$SocketInputStream@7416198, mSocketOS: android.net.LocalSocketImpl$SocketOutputStream@6230df1mSocket: android.net.LocalSocket@4928dd6 impl:android.net.LocalSocketImpl@321c857 fd:java.io.FileDescriptor@ab6ff44, mSocketState: LISTENING
11-23 11:39:36.997 2428 4425 D MediaSessionService: The callback null is set by com.android.bluetooth
11-23 11:39:37.031 4719 4838 D BluetoothSocket: close() this: android.bluetooth.BluetoothSocket@f81b162, channel: 4, mSocketIS: android.net.LocalSocketImpl$SocketInputStream@21092f3, mSocketOS: android.net.LocalSocketImpl$SocketOutputStream@8c6cbb0mSocket: android.net.LocalSocket@8d48a29 impl:android.net.LocalSocketImpl@94d81ae fd:java.io.FileDescriptor@e176b4f, mSocketState: LISTENING
11-23 11:39:37.032 4719 4838 D BluetoothSocket: close() this: android.bluetooth.BluetoothSocket@c4f2dc, channel: 4097, mSocketIS: android.net.LocalSocketImpl$SocketInputStream@8029fe5, mSocketOS: android.net.LocalSocketImpl$SocketOutputStream@5f40abamSocket: android.net.LocalSocket@a096d6b impl:android.net.LocalSocketImpl@11c60c8 fd:java.io.FileDescriptor@1425561, mSocketState: LISTENING
11-23 11:39:37.060 4719 4719 W BtOppService: unregisterReceivers java.lang.IllegalArgumentException: Receiver not registered: com.android.bluetooth.opp.BluetoothOppService$3@b460f13
11-23 11:39:37.093 4719 4755 I bt_btif_core: btif_disable_bluetooth entered
11-23 11:39:37.099 4719 4755 I bt_btif_core: btif_disable_bluetooth finished
11-23 11:39:38.075 2428 2473 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@766fd53
11-23 11:39:38.075 2961 3536 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@4fdcc7c
11-23 11:39:38.075 2788 4856 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@9e43e3f
11-23 11:39:38.075 2428 2473 D BluetoothManagerService: unbindAndFinish(): android.bluetooth.IBluetooth$Stub$Proxy@766fd53 mBinding = false mUnbinding = false
11-23 11:39:38.075 2916 3587 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@a9f9004
11-23 11:39:38.075 4719 4859 D BluetoothAdapter: onBluetoothServiceDown: com.android.bluetooth.btservice.AdapterService$AdapterServiceBinder@31cbb43
11-23 11:39:38.099 4719 4762 E BluetoothAdapterService: Repeated wake lock release; aborting release: bluetooth_timer
11-23 11:39:38.100 4719 4762 I bt_btif_core: btif_disable_bluetooth_evt entered
11-23 11:39:38.101 2131 4812 I android.hardware.bluetooth@1.0-impl: BluetoothHci::close()
11-23 11:39:38.101 2131 4812 D android.hardware.bluetooth@1.0-impl: low_power_mode_cb result: 0
11-23 11:39:38.973 4719 4762 I bt_btif_core: btif_disable_bluetooth_evt finished
11-23 11:39:38.976 4719 4755 I bt_btif_core: btif_cleanup_bluetooth entered
11-23 11:39:38.978 4719 4755 I bt_btif_core: btif_cleanup_bluetooth finished
11-23 11:39:39.085 2428 3014 I ActivityManager: Process com.android.bluetooth (pid 4719) has died: psvc PER
11-23 11:39:39.087 2428 3014 W ActivityManager: Scheduling restart of crashed service com.android.bluetooth/.btservice.AdapterService in 1000ms
11-23 11:39:40.117 2428 2484 I ActivityManager: app.processName = com.android.bluetooth
11-23 11:39:40.117 2428 2484 I ActivityManager: Start proc 14877:com.android.bluetooth/1002 for service {com.android.bluetooth/com.android.bluetooth.btservice.AdapterService}
11-23 11:39:40.331 14877 14877 I : [1123/113940.330742:INFO:com_android_bluetooth_btservice_AdapterService.cpp(628)] hal_util_load_bt_library loaded HAL: btinterface=0x7c0baa4440, handle=0xc80620b44be4bbf3
11-23 11:39:40.368 14877 14913 I bt_btif_core: btif_init_bluetooth entered
11-23 11:39:40.368 14877 14913 I bt_stack_config: init attempt to load stack conf from /etc/bluetooth/bt_stack.conf
11-23 11:39:40.376 14877 14913 I bt_btif_core: btif_init_bluetooth finished
11-23 11:39:40.448 14877 14877 D BluetoothAdapterService: setAdapterService() - trying to set service to com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:40.457 2428 2428 D BluetoothManagerService: BluetoothServiceConnection: com.android.bluetooth.btservice.AdapterService
11-23 11:39:40.464 14877 14899 D BluetoothAdapter: onBluetoothServiceUp: com.android.bluetooth.btservice.AdapterService$AdapterServiceBinder@31cbb43
11-23 11:39:40.464 2961 2986 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@fd9219c
11-23 11:39:40.465 2428 2473 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@2e4718a
11-23 11:39:40.465 2916 3587 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@ae9b9ed
11-23 11:39:40.466 2788 4856 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@229397
11-23 11:39:40.512 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:40.519 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:40.564 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:40.586 2131 2131 I HwBinder:2131_2: type=1400 audit(0.0:142): avc: denied { create } for scontext=u:r:hal_bluetooth_default:s0 tcontext=u:r:hal_bluetooth_default:s0 tclass=udp_socket permissive=1
11-23 11:39:40.586 2131 2131 I HwBinder:2131_2: type=1400 audit(0.0:143): avc: denied { read } for name="/" dev="tmpfs" ino=7445 scontext=u:r:hal_bluetooth_default:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=1
11-23 11:39:40.585 2131 4812 I android.hardware.bluetooth@1.0-impl: BluetoothHci::initialize()
11-23 11:39:40.588 2131 4812 E libbt_vendor: aicbt_load_stack_conf unable to open file '/vendor/etc/bluetooth/aicbt.conf': No such file or directory
11-23 11:39:40.588 2131 4812 E libbt_vendor: no config find from file '/vendor/etc/bluetooth/aicbt.conf'
11-23 11:39:40.591 2131 4812 D android.hardware.bluetooth@1.0-impl: Open vendor library loaded
11-23 11:39:40.764 2131 14965 D android.hardware.bluetooth@1.0-impl: OnFirmwareConfigured result: 0
11-23 11:39:40.764 2131 14965 I android.hardware.bluetooth@1.0-impl: Firmware configured in 0.039s
11-23 11:39:40.764 2131 14965 I android.hardware.bluetooth@1.0-impl: OnFirmwareConfigured: lpm_timeout_ms 3000
11-23 11:39:40.764 2131 14965 D android.hardware.bluetooth@1.0-impl: low_power_mode_cb result: 0
11-23 11:39:40.764 2131 14965 D android.hardware.bluetooth@1.0-impl: OnFirmwareConfigured Calling StartLowPowerWatchdog()
11-23 11:39:40.830 2131 14959 E aic_heartbeat: load_aicbt_heartbeat_conf unable to open file '/vendor/etc/bluetooth/aicbt_heartbeat.conf': No such file or directory
11-23 11:39:40.895 14877 14920 I bt_btif_core: btif_enable_bluetooth_evt entered: status 0
11-23 11:39:40.901 14877 14920 I bt_btif_core: btif_enable_bluetooth_evt finished
11-23 11:39:40.961 2428 2428 D BluetoothManagerService: BluetoothServiceConnection: com.android.bluetooth.gatt.GattService
11-23 11:39:40.967 2428 2428 V SettingsProvider: Notifying for 0: content://settings/global/bluetooth_on
11-23 11:39:40.977 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:40.982 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.005 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.009 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.034 14877 14970 I chatty : uid=1002(bluetooth) bt_main_thread identical 3 lines
11-23 11:39:41.040 14877 14877 D A2dpService: setA2dpService(): set to: com.android.bluetooth.a2dp.A2dpService@ba9ca1c
11-23 11:39:41.043 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.047 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.055 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.063 14877 14877 D BluetoothMapAccountLoader: Found 0 application(s) with intent android.bluetooth.action.BLUETOOTH_MAP_PROVIDER
11-23 11:39:41.064 14877 14877 D BluetoothMapAccountLoader: Found 0 application(s) with intent android.bluetooth.action.BLUETOOTH_MAP_IM_PROVIDER
11-23 11:39:41.066 14877 14877 D BluetoothMapService: setBluetoothMapService(): set to: com.android.bluetooth.map.BluetoothMapService@5fde852
11-23 11:39:41.071 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.079 2428 3214 D MediaSessionService: The callback android.media.session.ICallback$Stub$Proxy@b4e5a7c is set by com.android.bluetooth
11-23 11:39:41.080 14877 14970 I bt_stack: [INFO:connection_handler.cc(206)] virtual bool bluetooth::avrcp::ConnectionHandler::AvrcpConnect(bool, const RawAddress &): handle=0000 status= 000000
11-23 11:39:41.088 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.096 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.103 14877 14877 D BtOppService: setBluetoothOppService(): set to: com.android.bluetooth.opp.BluetoothOppService@dad0a02
11-23 11:39:41.107 14877 14877 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@38b06b7
11-23 11:39:41.114 14877 14877 D BluetoothPbapService: setBluetoothPbapService(): set to: com.android.bluetooth.pbap.BluetoothPbapService@dddd75a
11-23 11:39:41.160 4846 4846 D music_MediaPlaybackSer: OnGetRoot: clientPackageName=com.android.bluetooth; clientUid=1002 ; rootHints=null
11-23 11:39:41.230 4846 4846 D music_MediaPlaybackSer: OnGetRoot: clientPackageName=com.android.bluetooth; clientUid=1002 ; rootHints=null
11-23 11:39:42.411 2961 2961 D SettingsActivity: Switching to fragment com.android.settings.bluetooth.BluetoothPairingDetail
11-23 11:39:42.411 2961 2961 D SubSettings: Launching fragment com.android.settings.bluetooth.BluetoothPairingDetail
11-23 11:39:42.414 2961 2961 D PrefCtrlListHelper: Could not find Context-only controller for pref: com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController
logcat 日志:
[ 90.891162] logd: logdr: UID=0 GID=0 PID=4606 b tail=0 logMask=19 pid=0 start=0ns timeout=0ns
--------- beginning of main
12-04 17:37:54.388 2444 2664 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.926) failed {.code = ERROR_NOT_AVAILABLE, .description = }
12-04 17:37:54.447 2765 2765 W StatusBarIconController: setIconVisibility index: 27
12-04 17:37:55.891 2125 2308 I netd : trafficSwapActiveStatsMap() <18.41ms>
12-04 17:37:55.898 2125 2308 I netd : tetherGetStats() <5.08ms>
12-04 17:37:55.925 2125 2308 I netd : bandwidthSetGlobalAlert(2097152) <1.53ms>
12-04 17:37:56.396 2444 4583 I system_server: The ClassLoaderContext is a special shared library.
12-04 17:37:56.680 2444 4583 I chatty : uid=1000 system_server identical 5 lines
12-04 17:37:56.690 2444 4583 I system_server: The ClassLoaderContext is a special shared library.
12-04 17:37:56.726 2444 4583 I BackgroundDexOptService: Pinning optimized code {}
12-04 17:37:57.450 2444 2664 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.926) failed {.code = ERROR_NOT_AVAILABLE, .description = }
12-04 17:37:57.522 2765 2765 W StatusBarIconController: setIconVisibility index: 27
12-04 17:37:58.920 2444 2470 D WificondControl: Scan result ready event
12-04 17:37:58.961 3999 3999 I wpa_supplicant: wlan0: GAS-QUERY-START addr=dc:d8:7c:4c:10:3a dialog_token=6 freq=2437
12-04 17:37:58.963 2444 2664 D HS20 : ANQP initiated on dc:d8:7c:4c:10:3a
12-04 17:37:58.964 2444 2664 D PasspointManager: ANQP entry not found for: dc:d8:7c:4c:10:3a:<1613>
12-04 17:37:59.015 3999 3999 I wpa_supplicant: wlan0: GAS-QUERY-START addr=de:d8:7c:3c:10:3a dialog_token=7 freq=5180
12-04 17:37:59.016 2444 2664 D HS20 : ANQP initiated on de:d8:7c:3c:10:3a
12-04 17:37:59.017 2444 2664 D PasspointManager: ANQP entry not found for: de:d8:7c:3c:10:3a:<1613>
12-04 17:37:59.029 2444 2664 D ANQPRequestManager: Not allowed to send ANQP request to 242822356406330 for another 39 seconds
12-04 17:37:59.030 2444 2664 D PasspointManager: ANQP entry not found for: dc:d8:7c:4c:10:3a:<1613>
12-04 17:37:59.030 2444 2664 D ANQPRequestManager: Not allowed to send ANQP request to 245021378613306 for another 39 seconds
12-04 17:37:59.030 2444 2664 D PasspointManager: ANQP entry not found for: de:d8:7c:3c:10:3a:<1613>
12-04 17:37:59.817 3999 3999 I wpa_supplicant: wlan0: GAS-QUERY-DONE addr=dc:d8:7c:4c:10:3a dialog_token=6 freq=2437 status_code=0 result=TIMEOUT
12-04 17:37:59.817 3999 3999 I wpa_supplicant: wlan0: ANQP-QUERY-DONE addr=dc:d8:7c:4c:10:3a result=FAILURE
12-04 17:38:00.004 2765 2765 D KeyguardClockSwitch: Updating clock: 538
12-04 17:38:00.528 2444 2664 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.926) failed {.code = ERROR_NOT_AVAILABLE, .description = }
12-04 17:38:00.672 3999 3999 I wpa_supplicant: wlan0: GAS-QUERY-DONE addr=de:d8:7c:3c:10:3a dialog_token=7 freq=5180 status_code=0 result=TIMEOUT
12-04 17:38:00.673 3999 3999 I wpa_supplicant: wlan0: ANQP-QUERY-DONE addr=de:d8:7c:3c:10:3a result=FAILURE
12-04 17:38:03.593 2444 2664 E WifiVendorH[ 91.163172] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
al: getWifiLinkLayerStats_1_3_In[ 91.177842] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
ternal(l.926) failed {.code = ER[ 91.189652] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
ROR_NOT_AVAILABLE, .description [ 91.198591] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
= }
12-04 17:38:03.651 2765 2[ 91.209258] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:8 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-32
765 W StatusBarIconController: setIconVisibility index: 27
12-04 17:38:06.657 2444 2664 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.926) failed {.code = ERROR_NOT_AVAILABLE, .description = }
[ 94.237181] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 94.248927] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 94.258344] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
[ 94.265270] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 94.273339] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:8 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-31
12-04 17:38:09.731 2444 2664 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.926) failed {.code = ERROR_NOT_AVAILABLE, .description = }
12-04 17:38:09.789 2765 2765 W StatusBarIconController: setIconVisibility index: 27
12-04 17:38:12.782 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:12.790 2444 2636 I[ 97.303788] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
chatty : uid=1000(system) Inpu[ 97.318662] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
tDispatcher identical 3 lines
1[ 97.327833] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
2-04 17:38:12.794 2444 2636 V [ 97.337082] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
InputDispatcher: Asynchronous in[ 97.347727] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:8 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-31
put event injection succeeded.
12-04 17:38:12.797 2444 2664 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.926) failed {.code = ERROR_NOT_AVAILABLE, .description = }
12-04 17:38:12.798 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:12.852 2444 2636 I chatty : uid=1000(system) InputDispatcher identical 16 lines
12-04 17:38:12.860 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:12.863 2765 2765 W StatusBarIconController: setIconVisibility index: 27
12-04 17:38:12.865 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:13.967 2444 2636 I chatty : uid=1000(system) InputDispatcher identical 3 lines
12-04 17:38:13.971 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:13.979 2444 4545 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: com.google.android.simappdialog.gts
12-04 17:38:13.979 2444 4545 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: android.net.cts
12-04 17:38:13.980 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:14.007 2444 2636 I chatty : uid=1000(system) InputDispatcher identical 7 lines
12-04 17:38:14.009 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:14.011 2765 2765 D StatusBar: disable<e i a s b h r c s > disable2<q i n >
12-04 17:38:14.014 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:14.015 2765 2765 W StatusBarIconController: setIconVisibility index: 18
12-04 17:38:14.024 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:14.033 2444 2636 I chatty : uid=1000(system) InputDispatcher identical 4 lines
12-04 17:38:14.037 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:14.038 3000 3000 I AwReadingModeTileService: onBind
12-04 17:38:14.047 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:14.074 2444 2636 I chatty : uid=1000(system) InputDispatcher identical 6 lines
12-04 17:38:14.077 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:14.105 2765 2765 I ScreenshotTileService: onBind
12-04 17:38:14.110 2765 2765 I ScreenrecordTileService: onBind
12-04 17:38:14.219 3000 3000 I AwReadingModeTileService: onStartListening
12-04 17:38:14.227 3000 3000 I awdisplay: init service
12-04 17:38:14.244 3000 3000 I awdisplay: AWDisplay remoteVersion: 10000 clientVersion: 10000
12-04 17:38:14.330 2765 2765 I ScreenshotTileService: onStartListening
12-04 17:38:14.334 2765 2765 I ScreenrecordTileService: onStartListening
12-04 17:38:14.402 2124 2124 D Zygote : Forked child process 4647
--------- beginning of system
12-04 17:38:14.407 2444 2497 I ActivityManager: app.processName = com.android.systemui:screenrecord
12-04 17:38:14.407 2444 2497 I ActivityManager: Start proc 4647:com.android.systemui:screenrecord/u0a87 for service {com.android.systemui/com.softwinner.screenrecord.TakeScreenrecordService}
12-04 17:38:14.408 4647 4647 I Zygote : seccomp disabled by setenforce 0
12-04 17:38:14.473 4647 4647 I ui:screenrecor: The ClassLoaderContext is a special shared library.
12-04 17:38:14.914 2210 2287 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 17:38:15.312 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:15.399 2210 4507 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 17:38:15.407 2444 2636 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 17:38:15.432 2444 4545 D BluetoothManagerService: enable(com.android.systemui): mBluetooth =null mBinding = false mState = OFF
12-04 17:38:15.432 2444 2489 D BluetoothManagerService: MESSAGE_ENABLE(0): mBluetooth = null
12-04 17:38:15.432 2444 4545 D BluetoothManagerService: enable returning
12-04 17:38:15.444 2146 2263 W AudioFlinger: createTrack_l(): mismatch between requested flags (00000004) and output flags (00000002)
12-04 17:38:15.461 2146 2263 D AF::TrackHandle: OpPlayAudio: track:55 usage:13 not muted
12-04 17:38:15.465 2444 2694 W AudioTrack: createTrack_l(7143525): AUDIO_OUTPUT_FLAG_FAST denied by server; frameCount 0 -> 8994
12-04 17:38:15.473 2124 2124 D Zygote : Forked child process 4688
12-04 17:38:15.476 2444 2497 I ActivityManager: app.processName = com.android.bluetooth
12-04 17:38:15.476 2444 2497 I ActivityManager: Start proc 4688:com.android.bluetooth/1002 for service {com.android.bluetooth/com.android.bluetooth.btservice.AdapterService}
12-04 17:38:15.482 4688 4688 I Zygote : seccomp disabled by setenforce 0
12-04 17:38:15.549 4688 4688 I droid.bluetoot: The ClassLoaderContext is a special shared library.
12-04 17:38:15.567 2130 4714 D audio_hw_primary: start_output_stream
12-04 17:38:15.567 2130 4714 V audio_platform: disable backend pcm(direction:PCM_OUT)
12-04 17:38:15.567 2130 4714 D audio_route: Apply path: out-reset
12-04 17:38:15.570 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.570 2130 4714 D audio_route: Apply path: media-speaker
12-04 17:38:15.570 2130 4714 D audio_hw_primary: select device(out):pdev:OUT_DULSPK, path:media-speaker
12-04 17:38:15.571 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.572 2130 4714 D audio_hw_primary: +++++++++++++++ start_output_stream: pcm sample_rate: 48000,pcm fmt: 0x00000000,pcm channels: 2
12-04 17:38:15.572 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.608 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:15.619 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.622 4688 4688 D BluetoothOppFileProvider: Initialized
12-04 17:38:15.630 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.649 2146 2271 D AudioFlinger: mixer(0x79e922d800) throttle end: throttle time(11)
12-04 17:38:15.650 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.652 4688 4688 V AdapterServiceConfig: Adding HeadsetService
12-04 17:38:15.653 4688 4688 V AdapterServiceConfig: Adding A2dpService
12-04 17:38:15.653 4688 4688 V AdapterServiceConfig: Adding HidHostService
12-04 17:38:15.654 4688 4688 V AdapterServiceConfig: Adding PanService
12-04 17:38:15.654 4688 4688 V AdapterServiceConfig: Adding GattService
12-04 17:38:15.655 4688 4688 V AdapterServiceConfig: Adding BluetoothMapService
12-04 17:38:15.655 4688 4688 V AdapterServiceConfig: Adding AvrcpTargetService
12-04 17:38:15.655 4688 4688 V AdapterServiceConfig: Adding HidDeviceService
12-04 17:38:15.655 4688 4688 V AdapterServiceConfig: Adding BluetoothOppService
12-04 17:38:15.655 4688 4688 V AdapterServiceConfig: Adding BluetoothPbapService
12-04 17:38:15.671 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.693 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.700 4688 4688 I : [1204/173815.700228:INFO:com_android_bluetooth_btservice_AdapterService.cpp(628)] hal_util_load_bt_library loaded HAL: btinterface=0x7c0a9e3440, handle=0xd5abacc6474cf439
12-04 17:38:15.701 4688 4688 D BluetoothAdapterService: onCreate()
12-04 17:38:15.709 4688 4688 D AdapterState: make() - Creating AdapterState
12-04 17:38:15.714 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.715 4688 4723 I AdapterState: OFF : entered
12-04 17:38:15.715 4688 4723 D AdapterProperties: Setting state to OFF
12-04 17:38:15.716 4688 4688 I bt_btif : init: start restricted = 0 ; single user = 0
12-04 17:38:15.716 4688 4688 D bt_osi_allocation_tracker: canary initialized
12-04 17:38:15.716 4688 4724 I : [1204/173815.716866:INFO:message_loop_thread.cc(175)] Run: message loop starting for thread bt_stack_manager_thread
12-04 17:38:15.717 4688 4724 I bt_stack_manager: event_init_stack is initializing the stack
12-04 17:38:15.718 4688[ 100.371638] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
4724 I : [1204/173815.[ 100.385767] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
718303:INFO:btif_config.cc(647)][ 100.397670] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
hash_file: Disabled for multi-u[ 100.406447] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
ser
12-04 17:38:15.718 4688 4[ 100.417108] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:8 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-30
724 I : [1204/173815.718452:INFO:btif_config.cc(675)] re[ 100.437696] bluetooth_set_power: start_block=1
ad_checksum_file: Disabled for m[ 100.443939] aicbsp: aicbsp_set_subsys, subsys: AIC_BLUETOOTH, state to: 0
ulti-user
12-04 17:38:15.718 4[ 100.454125] aicbsp: aicbsp_set_subsys, power state no need to change, current: 1
688 4724 E bt_btif_config: Conf[ 100.465203] bluetooth_set_power: end_block=1
ig is missing adapter section
1[ 100.473932] bluetooth_set_power: start_block=0
2-04 17:38:15.718 4688 4724 W [ 100.480556] aicbsp: aicbsp_set_subsys, subsys: AIC_BLUETOOTH, state to: 1
bt_btif_config: init unable to l[ 100.490875] aicbsp: aicbsp_set_subsys, power state no need to change, current: 1
oad config file: /data/misc/blue[ 100.501970] bluetooth_set_power: end_block=0
droid/bt_config.conf; using back[ 100.511287] [BT_LPM] bluesleep_outgoing_data: tx was sleeping, wakeup it
up.
12-04 17:38:15.718 4688 4[ 100.519800] [BT_LPM] hsuart_power: bsi->uport = NULL, has_lpm_enabled = 0
724 I : [1204/173815.718778:INFO:btif_config.cc(647)] hash_file: Disabled for multi-user
12-04 17:38:15.718 4688 4724 I : [1204/173815.718835:INFO:btif_config.cc(675)] read_checksum_file: Disabled for multi-user
12-04 17:38:15.718 4688 4724 E bt_btif_config: Config is missing adapter section
12-04 17:38:15.718 4688 4724 W bt_btif_config: init unable to load backup; attempting to transcode legacy file.
12-04 17:38:15.719 4688 4724 E bt_btif_config_transcode: btif_config_transcode unable to load XML file '/data/misc/bluedroid/bt_config.xml': 3
12-04 17:38:15.719 4688 4724 E bt_btif_config: init unable to transcode legacy file; creating empty config.
12-04 17:38:15.719 4688 4724 W : [1204/173815.719178:WARNING:btif_config.cc(151)] read_or_set_metrics_salt: Failed to read metrics salt from config
12-04 17:38:15.719 4688 4724 I : [1204/173815.719241:INFO:btif_config.cc(162)] read_or_set_metrics_salt: Metrics salt is not invalid, creating new one
12-04 17:38:15.720 4688 4724 E bt_osi_alarm: timer_create_internal unable to [ 100.622537] type=1400 audit(1733305052.693:106): avc: denied { dac_override } for comm="irqbalance" capability=1 scontext=u:r:shell:s0 tcontext=u:r:shell:s0 tclass=capability permissive=1
create timer with clock 9: Unknown error 524
12-04 17:38:15.720 4688 4724 E bt_osi_alarm: The[ 100.628621] logd: logdr: UID=1002 GID=1002 PID=4765 n tail=50 logMask=8 pid=2131 start=0ns timeout=0ns
kernel might not have support f[ 100.629830] logd: logdr: UID=1002 GID=1002 PID=4765 n tail=50 logMask=1 pid=2131 start=0ns timeout=0ns
or timer_create(CLOCK_BOOTTIME_ALARM): https://lwn.net/Articles/[ 100.649992] logd: logdr: UID=1002 GID=1002 PID=4765 n tail=0 logMask=8 pid=2131 start=0ns timeout=0ns
429925/
12-04 17:38:15.720 468[ 100.651862] logd: logdr: UID=1002 GID=1002 PID=4765 n tail=0 logMask=1 pid=2131 start=0ns timeout=0ns
8 4724 E bt_osi_alarm: See foll[ 100.658544] init: Untracked pid 4765 exited with status 0
owing patches: https://git.kerne[ 100.670447] init: Service 'vendor.bluetooth-1-0' (pid 2131) received signal 6
l.org/cgit/linux/kernel/git/torv[ 100.670482] init: Sending signal 9 to service 'vendor.bluetooth-1-0' (pid 2131) process group...
alds/linux.git/log/?qt=grep&q=CL[ 100.671058] libprocessgroup: Successfully killed process cgroup uid 1002 pid 2131 in 0ms
OCK_BOOTTIME_ALARM
12-04 17:38:[ 100.672011] init: Untracked pid 4768 exited with status 0
15.720 4688 4728 I bt_osi_thread: run_thread: thread id 4728, [ 100.675533] init: starting service 'vendor.bluetooth-1-0'...
thread name alarm_default_ca sta[ 100.769781] type=1400 audit(1733305096.116:107): avc: denied { open } for comm="crash_dump64" path="/dev/__properties__/u:object_r:exported_bluetooth_prop:s0" dev="tmpfs" ino=390 scontext=u:r:crash_dump:s0 tcontext=u:object_r:exported_bluetooth_prop:s0 tclass=file permissive=1
rted
12-04 17:38:15.722 4688 [ 100.799106] type=1400 audit(1733305096.116:107): avc: denied { open } for comm="crash_dump64" path="/dev/__properties__/u:object_r:exported_bluetooth_prop:s0" dev="tmpfs" ino=390 scontext=u:r:crash_dump:s0 tcontext=u:object_r:exported_bluetooth_prop:s0 tclass=file permissive=1
4729 I bt_osi_thread: run_thread[ 100.829017] type=1400 audit(1733305096.116:108): avc: denied { getattr } for comm="crash_dump64" path="/dev/__properties__/u:object_r:exported_bluetooth_prop:s0" dev="tmpfs" ino=390 scontext=u:r:crash_dump:s0 tcontext=u:object_r:exported_bluetooth_prop:s0 tclass=file permissive=1
: thread id 4729, thread name al[ 100.860657] type=1400 audit(1733305096.116:108): avc: denied { getattr } for comm="crash_dump64" path="/dev/__properties__/u:object_r:exported_bluetooth_prop:s0" dev="tmpfs" ino=390 scontext=u:r:crash_dump:s0 tcontext=u:object_r:exported_bluetooth_prop:s0 tclass=file permissive=1
arm_dispatcher started
12-04 17[ 100.889832] type=1400 audit(1733305096.116:109): avc: denied { open } for comm="crash_dump64" path="/dev/__properties__/u:object_r:hwservicemanager_prop:s0" dev="tmpfs" ino=411 scontext=u:r:crash_dump:s0 tcontext=u:object_r:hwservicemanager_prop:s0 tclass=file permissive=1
:38:15.724 4688 4724 I bt_btif_core: btif_init_bluetooth entered
12-04 17:38:15.725 4688 4724 I bt_stack_config: init attempt to load stack conf from /etc/bluetooth/bt_stack.conf
12-04 17:38:15.728 4688 4731 I : [1204/173815.727976:INFO:message_loop_thread.cc(175)] Run: message loop starting for thread bt_jni_thread
12-04 17:38:15.728 4688 4724 I bt_btif_core: btif_init_bluetooth finished
12-04 17:38:15.728 4688 4724 I bt_stack_manager: event_init_stack finished
12-04 17:38:15.728 4688 4688 I bt_osi_wakelock: wakelock_set_os_callouts set to non-native
12-04 17:38:15.729 4688 4688 I bt_btif : get_profile_interface: id = socket
12-04 17:38:15.732 4688 4731 E bt_btif_storage: btif_storage_get_adapter_property: Controller not ready! Unable to return Bluetooth Address
12-04 17:38:15.732 4688 [ 100.988909] audit_log_lost: 104 callbacks suppressed
4731 E BluetoothServiceJni: adap[ 100.988916] audit: audit_lost=39 audit_rate_limit=5 audit_backlog_limit=64
ter_properties_callback: Status [ 101.007579] audit: rate limit exceeded
1 is incorrect
12-04 17:38:15.732 4688 4688 I bt_btif : get_profile_interface: id = sdp
12-04 17:38:15.735 4688 4731 D AdapterProperties: Name is: QUAD-CORE A133 c3
12-04 17:38:15.735 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.736 4688 4731 D AdapterProperties: BT Class:1a011c
12-04 17:38:15.737 2444 2444 D BluetoothManagerService: Bluetooth Adapter name changed to QUAD-CORE A133 c3
12-04 17:38:15.737 2444 2444 D BluetoothManagerService: Stored Bluetooth name: QUAD-CORE A133 c3
12-04 17:38:15.738 4688 4688 I BluetoothAdapterService: Phone policy enabled
12-04 17:38:15.746 4688 4688 D BluetoothActiveDeviceManager: start()
12-04 17:38:15.753 4688 4733 D BluetoothActiveDeviceManager: onAudioDevicesAdded
12-04 17:38:15.753 4688 4733 D BluetoothActiveDeviceManager: Audio device added: QUAD-CORE A133 c3 type: 2
12-04 17:38:15.753 4688 4733 D BluetoothActiveDeviceManager: Audio device added: QUAD-CORE A133 c3 type: 15
12-04 17:38:15.756 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.769 4688 4688 D BluetoothDatabase: start()
12-04 17:38:15.772 4688 4688 D BluetoothDatabase: Load Database
12-04 17:38:15.777 4688 4688 D BluetoothAdapterService: setAdapterService() - trying to set service to com.android.bluetooth.btservice.AdapterService@ce331bd
12-04 17:38:15.786 4688 4688 D BluetoothAdapterService: onBind()
12-04 17:38:15.787 2444 2444 D BluetoothManagerService: BluetoothServiceConnection: com.android.bluetooth.btservice.AdapterService
12-04 17:38:15.787 2444 2489 D BluetoothManagerService: MESSAGE_BLUETOOTH_SERVICE_CONNECTED: 1
12-04 17:38:15.788 2444 2489 D BluetoothManagerService: Broadcasting onBluetoothServiceUp() to 4 receivers.
12-04 17:38:15.789 4688 4709 D BluetoothAdapter: onBluetoothServiceUp: com.android.bluetooth.btservice.AdapterService$AdapterServiceBinder@fbeb629
12-04 17:38:15.790 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.791 2444 2489 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@302e680
12-04 17:38:15.791 2891 3169 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@b9a1092
12-04 17:38:15.791 2765 2782 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@4e7737b
12-04 17:38:15.806 4688 4712 D BluetoothAdapterService: enable() - Enable called with quiet mode status = false
12-04 17:38:15.807 2444 2489 D BluetoothManagerService: MESSAGE_GET_NAME_AND_ADDRESS
12-04 17:38:15.807 4688 4723 I AdapterState: BLE_TURNING_ON : entered
12-04 17:38:15.807 4688 4723 D AdapterProperties: Setting state to BLE_TURNING_ON
12-04 17:38:15.807 4688 4723 D BluetoothAdapterService: updateAdapterState() - Broadcasting state BLE_TURNING_ON to 1 receivers.
12-04 17:38:15.810 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.816 4688 4723 D BluetoothAdapterService: bleOnProcessStart()
12-04 17:38:15.817 4688 4723 I AdapterProperties: init(), maxConnectedAudioDevices, default=5, propertyOverlayed=5, finalValue=5
12-04 17:38:15.817 4688 4736 I BluetoothDatabase: cacheMetadata
12-04 17:38:15.818 2444 2489 D BluetoothManagerService: Stored Bluetooth name: QUAD-CORE A133 c3
12-04 17:38:15.818 2444 2489 D BluetoothManagerService: MESSAGE_BLUETOOTH_STATE_CHANGE: OFF > BLE_TURNING_ON
12-04 17:38:15.818 2444 2489 D BluetoothManagerService: Sending BLE State Change: OFF > BLE_TURNING_ON
12-04 17:38:15.819 4688 4723 D BluetoothAdapterService: bleOnProcessStart() - Make Bond State Machine
12-04 17:38:15.820 4688 4723 D BluetoothBondStateMachine: make
12-04 17:38:15.823 4688 4743 I BluetoothBondStateMachine: StableState(): Entering Off State
12-04 17:38:15.834 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.837 4688 4688 I BtGatt.JNI: classInitNative(L876): classInitNative: Success!
12-04 17:38:15.845 4688 4688 D BtGatt.DebugUtils: handleDebugAction() action=null
12-04 17:38:15.846 4688 4688 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@ce331bd
12-04 17:38:15.849 4688 4688 I bt_btif : get_profile_interface: id = gatt
12-04 17:38:15.851 4688 4688 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@ce331bd
12-04 17:38:15.853 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.866 2444 2664 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.926) failed {.code = ERROR_NOT_AVAILABLE, .description = }
12-04 17:38:15.874 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.884 4688 4688 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@ce331bd
12-04 17:38:15.887 4688 4724 I bt_stack_manager: event_start_up_stack is bringing up the stack
12-04 17:38:15.887 4688 4724 I bt_core_module: module_start_up Starting module "btif_config_module"
12-04 17:38:15.887 4688 4724 I bt_core_module: module_start_up Started module "btif_config_module"
12-04 17:38:15.887 4688 4724 I bt_core_module: module_start_up Starting module "btsnoop_module"
12-04 17:38:15.887 4688 4724 I : [1204/173815.887791:INFO:btsnoop.cc(207)] start_up: Snoop Logs disabled
12-04 17:38:15.887 4688 4724 I : [1204/173815.887912:INFO:btsnoop.cc(338)] delete_btsnoop_files: Deleting snoop logs if they exist. filtered = 1
12-04 17:38:15.888 4688 4724 I : [1204/173815.888094:INFO:btsnoop.cc(338)] delete_btsnoop_files: Deleting snoop logs if they exist. filtered = 0
12-04 17:38:15.888 4688 4724 I bt_core_module: module_start_up Started module "btsnoop_module"
12-04 17:38:15.888 4688 4724 I bt_core_module: module_start_up Starting module "hci_module"
12-04 17:38:15.888 4688 4724 I bt_hci : hci_module_start_up
12-04 17:38:15.888 4688 4752 I : [1204/173815.888727:INFO:message_loop_thread.cc(175)] Run: message loop starting for thread bt_hci_thread
12-04 17:38:15.889 4688 4724 D bt_hci : hci_module_start_up starting async portion
12-04 17:38:15.889 4688 4752 I bt_hci : hci_initialize
12-04 17:38:15.892 4688 4752 I bt_hci : hci_initialize: IBluetoothHci::getService() returned 0x7c5d8b4220 (remote)
12-04 17:38:15.903 2131 2150 I android.hardware.bluetooth@1.0-impl: BluetoothHci::initialize()
12-04 17:38:15.906 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.917 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.932 2131 2150 D : get_local_address: Trying /sys/class/addr_mgt/addr_bt
12-04 17:38:15.933 2131 2150 D : get_local_address: Got Factory BDA 52:24:EB:E7:63:5D
12-04 17:38:15.933 2131 2150 I bt_vendor: init
12-04 17:38:15.933 2131 2150 W bt_vendor: *****************************************************************
12-04 17:38:15.933 2131 2150 W bt_vendor: *****************************************************************
12-04 17:38:15.933 2131 2150 W bt_vendor: ** Warning - BT Vendor Lib is loaded in debug tuning mode!
12-04 17:38:15.933 2131 2150 W bt_vendor: **
12-04 17:38:15.933 2131 2150 W bt_vendor: ** If this is not intentional, rebuild libbt-vendor.so
12-04 17:38:15.933 2131 2150 W bt_vendor: ** with VENDOR_LIB_RUNTIME_TUNING_ENABLED=FALSE and
12-04 17:38:15.933 2131 2150 W bt_vendor: ** check if any run-time tuning parameters needed to be
12-04 17:38:15.933 2131 2150 W bt_vendor: ** carried to the build-time configuration accordingly.
12-04 17:38:15.933 2131 2150 W bt_vendor: *****************************************************************
12-04 17:38:15.933 2131 2150 W bt_vendor: *****************************************************************
12-04 17:38:15.933 2131 2150 I bt_vnd_conf: Attempt to load conf from /etc/bluetooth/bt_vendor.conf
12-04 17:38:15.933 2131 2150 I bt_vnd_conf: vnd_load_conf file >/etc/bluetooth/bt_vendor.conf< not found
12-04 17:38:15.933 2131 2150 D android.hardware.bluetooth@1.0-impl: Open vendor library loaded
12-04 17:38:15.933 2131 2150 D bt_vendor: op for 0
12-04 17:38:15.934 2131 2150 D bt_upio : init_rfkill: rfkill path /sys/devices/platform/aic-bt/rfkill/rfkill1
12-04 17:38:15.941 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.944 2765 2765 W StatusBarIconController: setIconVisibility index: 27
12-04 17:38:15.959 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:15.970 2131 2150 W bt_vendor: NOTE: BT_VND_PWR_ON now forces power-off first
12-04 17:38:15.970 2131 2150 D bt_upio : init_rfkill: rfkill path /sys/devices/platform/aic-bt/rfkill/rfkill1
12-04 17:38:15.981 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.002 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.006 2131 2150 D bt_vendor: op for 3
12-04 17:38:16.006 [ 101.822831] init: Untracked pid 4783 exited with status 0
2131 2150 I bt_userial_vendor: userial vendor open: opening /dev/ttyS1
12-04 17:38:16.007 2131 2150 I bt_userial_vendor: device fd = 6 open
12-04 17:38:16.007 2131 2150 D bt_vendor: op for 1
12-04 17:38:16.007 2131 2150 E bt_hwcfg: hw_config_sta[ 101.850255] init: Untracked pid 4788 exited with status 0
rt
12-04 17:38:16.007 2131 2150 D bt_vendor: op for 7
12-04 17:38:16.007 2131 2150 E bt_hwcfg: set_wake_stat 1
12-04 17:38:16.007 2131 2150 D bt_upio : upio_set : pio 0 action 2, polarity 1
12-04 17:38:16.023 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.026 2131 2150 D bt_upio : upio_set: proc btwrite assertion, buffer: 1, timer_armed 1 0
12-04 17:38:16.027 2131 4760 F android.hardware.bluetooth-hci-h4: OnDataReady: Unimplemented packet type 0
--------- beginning of crash
12-04 17:38:16.028 2131 4760 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 4760 (HwBinder:2131_1), pid 2131 (bluetooth@1.0-s)
12-04 17:[ 101.917573] binder: undelivered death notification, 0000007cf44621e0
38:16.045 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.066 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.073 4765 4765 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
12-04 17:38:16.074 2217 2217 I /system/bin/tombstoned: received crash request for pid 4760
12-04 17:38:16.076 4765 4765 I crash_dump64: performing dump of process 2131 (target tid = 4760)
12-04 17:38:16.079 4765 4765 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-04 17:38:16.080 4765 4765 F DEBUG : Build fingerprint: 'Allwinner/ceres_c3/ceres-c3:10/QP1A.191105.004/eng.ubuntu.20241127.164531:userdebug/test-keys'
12-04 17:38:16.080 4765 4765 F DEBUG : Revision: '0'
12-04 17:38:16.080 4765 4765 F DEBUG : ABI: 'arm64'
12-04 17:38:16.082 4765 4765 F DEBUG : Timestamp: 2024-12-04 17:38:16+0800
12-04 17:38:16.082 4765 4765 F DEBUG : pid: 2131, tid: 4760, name: HwBinder:2131_1 >>> /vendor/bin/hw/android.hardware.bluetooth@1.0-service <<<
12-04 17:38:16.082 4765 4765 F DEBUG : uid: 1002
12-04 17:38:16.082 4765 4765 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
12-04 17:38:16.082 4765 4765 F DEBUG : Abort message: 'OnDataReady: Unimplemented packet type 0'
12-04 17:38:16.082 4765 4765 F DEBUG : x0 0000000000000000 x1 0000000000001298 x2 0000000000000006 x3 00000077218e9540
12-04 17:38:16.082 4765 4765 F DEBUG : x4 2e6761772e000000 x5 2e6761772e000000 x6 2e6761772e000000 x7 000000ffffffffff
12-04 17:38:16.082 4765 4765 F DEBUG : x8 00000000000000f0 x9 1ba5523419805c05 x10 0000000000000001 x11 0000000000000000
12-04 17:38:16.082 4765 4765 F DEBUG : x12 fffffff0ffffffdf x13 ffffffffffffffff x14 0000000000000004 x15 ffffffffffffffff
12-04 17:38:16.082 4765 4765 F DEBUG : x16 0000007723a978c0 x17 0000007723a75100 x18 000000772171c000 x19 0000000000000853
12-04 17:38:16.082 4765 4765 F DEBUG : x20 0000000000001298 x21 00000000ffffffff x22 00000077218ea020 x23 00000077218e9bb0
12-04 17:38:16.082 4765 4765 F DEBUG : x24 0000007723019208 x25 0000007723019208 x26 20c49ba5e353f7cf x27 00000000000003e8
12-04 17:38:16.082 4765 4765 F DEBUG : x28 0000007723009180 x29 00000077218e95e0
12-04 17:38:16.082 4765 4765 F DEBUG : sp 00000077218e9520 lr 0000007723a29f48 pc 0000007723a29f74
12-04 17:38:16.087 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.089 4765 4765 F DEBUG :
12-04 17:38:16.089 4765 4765 F DEBUG : backtrace:
12-04 17:38:16.089 4765 4765 F DEBUG : #00 pc 0000000000081f74 /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) (BuildId: 42603fd538b769308cd4c199a3a97e47)
12-04 17:38:16.089 4765 4765 F DEBUG : #01 pc 00000000000089f8 /system/lib64/liblog.so (__android_log_assert+324) (BuildId: 861a081c2056965edab68796c1ed73e0)
12-04 17:38:16.089 4765 4765 F DEBUG : #02 pc 000000000000a230 /vendor/lib64/hw/android.hardware.bluetooth@1.0-impl.so (android::hardware::bluetooth::hci::H4Protocol::OnDataReady(int)+180) (BuildId: d049058a6c7deb74b092a5074bd90e52)
12-04 17:38:16.089 4765 4765 F DEBUG : #03 pc 0000000000009c24 /vendor/lib64/hw/android.hardware.bluetooth@1.0-impl.so (android::hardware::bluetooth::async::AsyncFdWatcher::ThreadRoutine()+656) (BuildId: d049058a6c7deb74b092a5074bd90e52)
12-04 17:38:16.089 4765 4765 F DEBUG : #04 pc 0000000000009fa0 /vendor/lib64/hw/android.hardware.bluetooth@1.0-impl.so (_ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEZN7android8hardware9bluetooth5async14AsyncFdWatcher14tryStartThreadEvE3$_0EEEEEPvSE_+40) (BuildId: d049058a6c7deb74b092a5074bd90e52)
12-04 17:38:16.089 4765 4765 F DEBUG : #05 pc 00000000000e1100 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: 42603fd538b769308cd4c199a3a97e47)
12-04 17:38:16.089 4765 4765 F DEBUG : #06 pc 0000000000083ab0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 42603fd538b769308cd4c199a3a97e47)
12-04 17:38:16.151 2444 2818 W NativeCrashListener: Couldn't find ProcessRecord for pid 2131
12-04 17:38:16.112 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:16.130 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.152 2217 2217 E /system/bin/tombstoned: Tombstone written to: /data/tombstones/tombstone_47
12-04 17:38:16.156 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.168 2444 2510 I BootReceiver: Copying /data/tombstones/tombstone_47 to DropBox (SYSTEM_TOMBSTONE)
12-04 17:38:16.170 2444 2510 I DropBoxManagerService: add tag=SYSTEM_TOMBSTONE isTagEnabled=true flags=0x2
12-04 17:38:16.172 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.175 4688 4753 E bt_hci : Bluetooth HAL service died!
12-04 17:38:16.175 4688 4753 F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 4753 (HwBinder:4688_1), pid 4688 (droid.bluetooth)
12-04 17:38:16.194 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.216 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.253 4783 4783 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
12-04 17:38:16.254 2217 2217 I /system/bin/tombstoned: received crash request for pid 4753
12-04 17:38:16.254 2136 2355 D sunxihwc: checkPerformance: PerfMonitor total[w]: 67 acquire: 0 submit: 1 release: 66
12-04 17:38:16.254 4779 4779 I ServiceManagement: Registered android.hardware.bluetooth@1.0::IBluetoothHci/default (start delay of 87ms)
12-04 17:38:16.255 4779 4779 I ServiceManagement: Removing namespace from process name android.hardware.bluetooth@1.0-service to bluetooth@1.0-service.
12-04 17:38:16.255 4779 4779 I android.hardware.bluetooth@1.0-service: Registration complete for android.hardware.bluetooth@1.0::IBluetoothHci/default.
12-04 17:38:16.256 4783 4783 I crash_dump64: performing dump of process 4688 (target tid = 4753)
12-04 17:38:16.266 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.276 4783 4783 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-04 17:38:16.276 4783 4783 F DEBUG : Build fingerprint: 'Allwinner/ceres_c3/ceres-c3:10/QP1A.191105.004/eng.ubuntu.20241127.164531:userdebug/test-keys'
12-04 17:38:16.276 4[ 102.519498] bluetooth_set_power: start_block=1
783 4783 F DEBUG : Revision: [ 102.525644] aicbsp: aicbsp_set_subsys, subsys: AIC_BLUETOOTH, state to: 0
'0'
12-04 17:38:16.276 4783 4[ 102.535690] aicbsp: aicbsp_set_subsys, power state no need to change, current: 1
783 F DEBUG : ABI: 'arm64'
12[ 102.546950] bluetooth_set_power: end_block=1
-04 17:38:16.277 4783 4783 F D[ 102.555200] bluetooth_set_power: start_block=0
EBUG : Timestamp: 2024-12-04 1[ 102.562018] aicbsp: aicbsp_set_subsys, subsys: AIC_BLUETOOTH, state to: 1
7:38:16+0800
12-04 17:38:16.277[ 102.572462] aicbsp: aicbsp_set_subsys, power state no need to change, current: 1
4783 4783 F DEBUG : pid: 46[ 102.583430] bluetooth_set_power: end_block=0
88, tid: 4753, name: HwBinder:4688_1 >>> com.android.bluetooth <<<
12-04 17:38:16.277 4783 4783 F DEBUG : uid: 1002
12-04 17:38:16.277 4783 4783 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
12-04 17:38:16.278 4783 4783 F DEBUG : x0 0000000000000000 x1 0000000000001291 x2 0000000000000006 x3 0000007bf94436d0
12-04 17:38:16.278 4783 4783 F DEBUG : x4 f8433f1efeff6862 x5 f8433f1efeff6862 x6 f8433f1efeff6862 x7 ff7f7f7f7f7f7f7f
12-04 17:38:16.278 4783 4783 F DEBUG : x8 00000000000000f0 x9 65b5bbbb335a5371 x10 0000000000000001 x11 0000000000000000
12-04 17:38:16.278 4783 4783 F DEBUG : x12 fffffff0fffffbdf x13 ffffffffffffffff x14 0000000000000004 x15 ffffffffffffffff
12-04 17:38:16.278 4783 4783 F DEBUG : x16 0000007cf1e018c0 x17 0000007cf1ddf100 x18 0000007bf8cda008 x19 0000000000001250
12-04 17:38:16.278 4783 4783 F DEBUG : x20 0000000000001291 x21 00000000ffffffff x22 0000000000000000 x23 000000008008720f
12-04 17:38:16.278 4783 4783 F DEBUG : x24 0000007bf9444020 x25 0000007bf9443a38 x26 0000007bf9444020 x27 0000007bfa63f020
12-04 17:38:16.278 4783 4783 F DEBUG : x28 0000000000000009 x29 0000007bf9443770
12-04 17:38:16.278 4783 4783 F DEBUG : sp 0000007bf94436b0 lr 0000007cf1d93f48 pc 0000007cf1d93f74
12-04 17:38:16.279 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:16.290 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.116 4765 4765 I crash_dump64: type=1400 audit(0.0:107): avc: denied { open } for path="/dev/__properties__/u:object_r:exported_bluetooth_prop:s0" dev="tmpfs" ino=390 scontext=u:r:crash_dump:s0 tcontext=u:object_r:exported_bluetooth_prop:s0 tclass=file permissive=1
12-04 17:38:16.303 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.356 4783 4783 F DEBUG :
12-04 17:38:16.356 4783 4783 F DEBUG : backtrace:
12-04 17:38:16.356 4783 4783 F DEBUG : #00 pc 0000000000081f74 /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) (BuildId: 42603fd538b769308cd4c199a3a97e47)
12-04 17:38:16.356 4783 4783 F DEBUG : #01 pc 0000000000265154 /system/lib64/libbluetooth.so (hal_service_died()+160) (BuildId: ff706d003775a24c2416240a147a9ab6)
12-04 17:38:16.357 4783 4783 F DEBUG : #02 pc 0000000000055d84 /system/lib64/libhidlbase.so (android::hardware::hidl_binder_death_recipient::binderDied(android::wp<android::hardware::IBinder> const&)+112) (BuildId: 58cced33adaf1be9a5dabb1206d0e08e)
12-04 17:38:16.322 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:16.350 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.116 4765 4765 I crash_dump64: type=1400 audit(0.0:108): avc: denied { getattr } for path="/dev/__properties__/u:object_r:exported_bluetooth_prop:s0" dev="tmpfs" ino=390 scontext=u:r:crash_dump:s0 tcontext=u:object_r:exported_bluetooth_prop:s0 tclass=file permissive=1
12-04 17:38:16.357 4783 4783 F DEBUG : #03 pc 0000000000096ca8 /system/lib64/libhidlbase.so (android::hardware::BpHwBinder::reportOneDeath(android::hardware::BpHwBinder::Obituary const&)+128) (BuildId: 58cced33adaf1be9a5dabb1206d0e08e)
12-04 17:38:16.357 4783 4783 F DEBUG : #04 pc 0000000000096c10 /system/lib64/libhidlbase.so (android::hardware::BpHwBinder::sendObituary()+204) (BuildId: 58cced33adaf1be9a5dabb1206d0e08e)
12-04 17:38:16.357 4783 4783 F DEBUG : #05 pc 0000000000099e10 /system/lib64/libhidlbase.so (android::hardware::IPCThreadState::getAndExecuteCommand()+3000) (BuildId: 58cced33adaf1be9a5dabb1206d0e08e)
12-04 17:38:16.357 4783 4783 F DEBUG : #06 pc 000000000009acf4 /system/lib64/libhidlbase.so (android::hardware::IPCThreadState::joinThreadPool(bool)+152) (BuildId: 58cced33adaf1be9a5dabb1206d0e08e)
12-04 17:38:16.357 4783 4783 F DEBUG : #07 pc 00000000000a9c84 /system/lib64/libhidlbase.so (android::hardware::PoolThread::threadLoop()+24) (BuildId: 58cced33adaf1be9a5dabb1206d0e08e)
12-04 17:38:16.357 4783 4783 F DEBUG : #08 pc 0000000000013670 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+288) (BuildId: e694ec4393425b1d99ea7621766c5862)
12-04 17:38:16.357 4783 4783 F DEBUG : #09 pc 00000000000c1748 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140) (BuildId: b65a8685227b31d2613995f2e0a17273)
12-04 17:38:16.357 4783 4783 F DEBUG : #10 pc 00000000000e1100 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: 42603fd538b769308cd4c199a3a97e47)
12-04 17:38:16.357 4783 4783 F DEBUG : #11 pc 0000000000083ab0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 42603fd538b769308cd4c199a3a97e47)
12-04 17:38:16.367 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.385 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:16.407 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.116 4765 4765 I crash_dump64: type=1400 audit(0.0:109): avc: denied { open } for path="/dev/__properties__/u:object_r:hwservicemanager_prop:s0" dev="tmpfs" ino=411 scontext=u:r:crash_dump:s0 tcontext=u:object_r:hwservicemanager_prop:s0 tclass=file permissive=1
12-04 17:38:16.116 4765 4765 I crash_dump64: type=1400 audit(0.0:110): avc: denied { getattr } for path="/dev/__properties__/u:object_r:hwservicemanager_prop:s0" dev="tmpfs" ino=411 scontext=u:r:crash_dump:s0 tcontext=u:object_r:hwservicemanager_prop:s0 tclass=file permissive=1
12-04 17:38:16.430 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.446 2210 4710 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 17:38:16.450 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.472 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.483 4783 4783 I crash_dump64: type=1400 audit(0.0:111): avc: denied { open } for path="/dev/__properties__/u:object_r:bluetooth_a2dp_offload_prop:s0" dev="tmpfs" ino=338 scontext=u:r:crash_dump:s0 tcontext=u:object_r:bluetooth_a2dp_offload_prop:s0 tclass=file permissive=1
12-04 17:38:16.498 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.515 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:16.518 2210 4710 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 17:38:16.535 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.243 2130 4714 I chatty : uid=1041(audioserver) writer identical 33 lines
12-04 17:38:17.261 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.264 2217 2217 E /system/bin/tombstoned: Tombstone written to: /data/tombstones/tombstone_48
12-04 17:38:17.282 2444 4842 I DropBoxManagerService: add tag=system_app_native_crash isTagEnabled=true flags=0x2
12-04 17:38:17.282 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.301 2444 2510 I BootReceiver: Copying /data/tombstones/tombstone_48 to DropBox (SYSTEM_TOMBSTONE)
12-04 17:38:17.303 2444 2510 I DropBoxManagerService: add tag=SYSTEM_TOMBSTONE isTagEnabled=true flags=0x2
12-04 17:38:17.303 2210 4710 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 17:38:17.305 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.331 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:17.349 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.363 2210 4710 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 17:38:17.367 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.385 2444 2462 I system_server: Background young concurrent copying GC freed 66696(3139KB) AllocSpace objects, 22(1480KB) LOS objects, 27% free, 8626KB/11MB, paused 1.507ms total 114.225ms
12-04 17:38:17.389 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.411 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.419 2124 2124 I Zygote : Process 4688 exited due to signal 6 (Aborted)
12-04 17:38:17.426 2444 2444 D BluetoothManagerService: BluetoothServiceConnection, disconnected: com.android.bluetooth.btservice.AdapterService
12-04 17:38:17.427 2444 2489 E BluetoothManagerService: MESSAGE_BLUETOOTH_SERVICE_DISCONNECTED(1)
12-04 17:38:17.427 2444 2489 D BluetoothManagerService: Broadcasting onBluetoothServiceDown() to 3 receivers.
12-04 17:38:17.429 2444 2936 I ActivityManager: Process com.android.bluetooth (pid 4688) has died: psvc PER
12-04 17:38:17.431 2444 2498 I libprocessgroup: Successfully killed process cgroup uid 1002 pid 4688 in 0ms
12-04 17:38:17.431 2891 3169 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@b9a1092
12-04 17:38:17.431 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.432 2765 2782 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@4e7737b
12-04 17:38:17.433 2444 2936 W ActivityManager: Scheduling restart of crashed service com.android.b[ 103.450006] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
luetooth/.btservice.AdapterServi[ 103.463930] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
ce in 1000ms
12-04 17:38:17.433[ 103.474397] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
2444 2936 W ActivityManager: [ 103.483203] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
Scheduling restart of crashed se[ 103.494209] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:8 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-32
rvice com.android.bluetooth/.gatt.GattService in 11000ms
12-04 17:38:17.434 2444 2489 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@302e680
12-04 17:38:17.452 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.628 2444 2489 D BluetoothManagerService: MESSAGE_RESTART_BLUETOOTH_SERVICE
12-04 17:38:17.623 2130 4714 I chatty : uid=1041(audioserver) writer identical 8 lines
12-04 17:38:17.645 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.649 2124 2124 D Zygote : Forked child process 4863
12-04 17:38:17.652 2444 2497 I ActivityManager: app.processName = com.android.bluetooth
12-04 17:38:17.652 2444 2497 I ActivityManager: Start proc 4863:com.android.bluetooth/1002 for service {com.android.bluetooth/com.android.bluetooth.btservice.AdapterService}
12-04 17:38:17.660 4863 4863 I Zygote : seccomp disabled by setenforce 0
12-04 17:38:17.666 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.687 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:17.710 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.720 4863 4863 I droid.bluetoot: The ClassLoaderContext is a special shared library.
12-04 17:38:17.730 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.751 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:17.773 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.773 4863 4863 D BluetoothOppFileProvider: Initialized
12-04 17:38:17.795 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.805 4863 4863 V AdapterServiceConfig: Adding HeadsetService
12-04 17:38:17.806 4863 4863 V AdapterServiceConfig: Adding A2dpService
12-04 17:38:17.807 4863 4863 V AdapterServiceConfig: Adding HidHostService
12-04 17:38:17.807 4863 4863 V AdapterServiceConfig: Adding PanService
12-04 17:38:17.807 4863 4863 V AdapterServiceConfig: Adding GattService
12-04 17:38:17.807 4863 4863 V AdapterServiceConfig: Adding BluetoothMapService
12-04 17:38:17.807 4863 4863 V AdapterServiceConfig: Adding AvrcpTargetService
12-04 17:38:17.807 4863 4863 V AdapterServiceConfig: Adding HidDeviceService
12-04 17:38:17.807 4863 4863 V AdapterServiceConfig: Adding BluetoothOppService
12-04 17:38:17.807 4863 4863 V AdapterServiceConfig: Adding BluetoothPbapService
12-04 17:38:17.815 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.836 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.846 4863 4863 I : [1204/173817.846267:INFO:com_android_bluetooth_btservice_AdapterService.cpp(628)] hal_util_load_bt_library loaded HAL: btinterface=0x7c0aa61440, handle=0x4231b39a6b02c329
12-04 17:38:17.849 4863 4863 D BluetoothAdapterService: onCreate()
12-04 17:38:17.855 4863 4863 D AdapterState: make() - Creating AdapterState
12-04 17:38:17.858 4863 4895 I AdapterState: OFF : entered
12-04 17:38:17.858 4863 4895 D AdapterProperties: Setting state to OFF
12-04 17:38:17.859 4863 4863 I bt_btif : init: start restricted = 0 ; single user = 0
12-04 17:38:17.859 4863 4863 D bt_osi_allocation_tracker: canary initialized
12-04 17:38:17.860 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.861 4863 4896 I : [1204/173817.861101:INFO:message_loop_thread.cc(175)] Run: message loop starting for thread bt_stack_manager_thread
12-04 17:38:17.862 4863 4896 I bt_stack_manager: event_init_stack is initializing the stack
12-04 17:38:17.863 4863 4896 I : [1204/173817.863579:INFO:btif_config.cc(647)] hash_file: Disabled for multi-user
12-04 17:38:17.863 4863 4896 I : [1204/173817.863734:INFO:btif_config.cc(675)] read_checksum_file: Disabled for multi-user
12-04 17:38:17.863 4863 4896 E bt_btif_config: Config is missing adapter section
12-04 17:38:17.864 4863 4896 W bt_btif_config: init unable to load config file: /data/misc/bluedroid/bt_config.conf; using backup.
12-04 17:38:17.864 4863 4896 I : [1204/173817.864126:INFO:btif_config.cc(647)] hash_file: Disabled for multi-user
12-04 17:38:17.864 4863 4896 I : [1204/173817.864207:INFO:btif_config.cc(675)] read_checksum_file: Disabled for multi-user
12-04 17:38:17.864 4863 4896 E bt_btif_config: Config is missing adapter section
12-04 17:38:17.864 4863 4896 W bt_btif_config: init unable to load backup; attempting to transcode legacy file.
12-04 17:38:17.864 4863 4896 E bt_btif_config_transcode: btif_config_transcode unable to load XML file '/data/misc/bluedroid/bt_config.xml': 3
12-04 17:38:17.864 4863 4896 E bt_btif_config: init unable to transcode legacy file; creating empty config.
12-04 17:38:17.864 4863 4896 W : [1204/173817.864558:WARNING:btif_config.cc(151)] read_or_set_metrics_salt: Failed to read metrics salt from config
12-04 17:38:17.864 4863 4896 I : [1204/173817.864632:INFO:btif_config.cc(162)] read_or_set_metrics_salt: Metrics salt is not invalid, creating new one
12-04 17:38:17.865 4863 4896 E bt_osi_alarm: timer_create_internal unable to create timer with clock 9: Unknown error 524
12-04 17:38:17.866 4863 4896 E bt_osi_alarm: The kernel might not have support for timer_create(CLOCK_BOOTTIME_ALARM): https://lwn.net/Articles/429925/
12-04 17:38:17.866 4863 4896 E bt_osi_alarm: See following patches: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=grep&q=CLOCK_BOOTTIME_ALARM
12-04 17:38:17.867 4863 4900 I bt_osi_thread: run_thread: thread id 4900, thread name alarm_default_ca started
12-04 17:38:17.867 4863 4901 I bt_osi_thread: run_thread: thread id 4901, thread name alarm_dispatcher started
12-04 17:38:17.869 4863 4896 I bt_btif_core: btif_init_bluetooth entered
12-04 17:38:17.870 4863 4896 I bt_stack_config: init attempt to load stack conf from /etc/bluetooth/bt_stack.conf
12-04 17:38:17.870 4863 4902 I : [1204/173817.870753:INFO:message_loop_thread.cc(175)] Run: message loop starting for thread bt_jni_thread
12-04 17:38:17.870 4863 4896 I bt_btif_core: btif_init_bluetooth finished
12-04 17:38:17.871 4863 4896 I bt_stack_manager: event_init_stack finished
12-04 17:38:17.871 4863 4863 I bt_osi_wakelock: wakelock_set_os_callouts set to non-native
12-04 17:38:17.871 4863 4863 I bt_btif : get_profile_interface: id = socket
12-04 17:38:17.871 4863 4902 E bt_btif_storage: btif_storage_get_adapter_property: Controller not ready! Unable to return Bluetooth Address
12-04 17:38:17.871 4863 4902 E BluetoothServiceJni: adapter_properties_callback: Status 1 is incorrect
12-04 17:38:17.873 4863 4863 I bt_btif : get_profile_interface: id = sdp
12-04 17:38:17.874 4863 4902 D AdapterProperties: Name is: QUAD-CORE A133 c3
12-04 17:38:17.874 4863 4902 D AdapterProperties: BT Class:1a011c
12-04 17:38:17.877 2444 2444 D BluetoothManagerService: Bluetooth Adapter name changed to QUAD-CORE A133 c3
12-04 17:38:17.879 4863 4863 I BluetoothAdapterService: Phone policy enabled
12-04 17:38:17.879 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.880 2444 2444 D BluetoothManagerService: Stored Bluetooth name: QUAD-CORE A133 c3
12-04 17:38:17.883 4863 4863 D BluetoothActiveDeviceManager: start()
12-04 17:38:17.891 4863 4904 D BluetoothActiveDeviceManager: onAudioDevicesAdded
12-04 17:38:17.891 4863 4904 D BluetoothActiveDeviceManager: Audio device added: QUAD-CORE A133 c3 type: 2
12-04 17:38:17.891 4863 4904 D BluetoothActiveDeviceManager: Audio device added: QUAD-CORE A133 c3 type: 15
12-04 17:38:17.900 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.904 4863 4863 D BluetoothDatabase: start()
12-04 17:38:17.907 4863 4863 D BluetoothDatabase: Load Database
12-04 17:38:17.908 4863 4863 D BluetoothAdapterService: setAdapterService() - trying to set service to com.android.bluetooth.btservice.AdapterService@ce331bd
12-04 17:38:17.917 4863 4863 D BluetoothAdapterService: onBind()
12-04 17:38:17.919 2444 2444 D BluetoothManagerService: BluetoothServiceConnection: com.android.bluetooth.btservice.AdapterService
12-04 17:38:17.919 2444 2489 D BluetoothManagerService: MESSAGE_BLUETOOTH_SERVICE_CONNECTED: 1
12-04 17:38:17.920 2444 2489 D BluetoothManagerService: Broadcasting onBluetoothServiceUp() to 4 receivers.
12-04 17:38:17.921 2891 3169 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@491ba63
12-04 17:38:17.921 4863 4882 D BluetoothAdapter: onBluetoothServiceUp: com.android.bluetooth.btservice.AdapterService$AdapterServiceBinder@fbeb629
12-04 17:38:17.921 2765 2782 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@7ddd598
12-04 17:38:17.922 2444 2489 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@6c12a72
12-04 17:38:17.922 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.931 4863 4882 D BluetoothAdapterService: enable() - Enable called with quiet mode status = false
12-04 17:38:17.932 2444 2489 D BluetoothManagerService: MESSAGE_GET_NAME_AND_ADDRESS
12-04 17:38:17.935 4863 4895 I AdapterState: BLE_TURNING_ON : entered
12-04 17:38:17.935 4863 4895 D AdapterProperties: Setting state to BLE_TURNING_ON
12-04 17:38:17.935 4863 4895 D BluetoothAdapterService: updateAdapterState() - Broadcasting state BLE_TURNING_ON to 1 receivers.
12-04 17:38:17.935 2444 2489 D BluetoothManagerService: Stored Bluetooth name: QUAD-CORE A133 c3
12-04 17:38:17.936 2444 2489 D BluetoothManagerService: MESSAGE_BLUETOOTH_STATE_CHANGE: OFF > BLE_TURNING_ON
12-04 17:38:17.936 2444 2489 D BluetoothManagerService: Sending BLE State Change: OFF > BLE_TURNING_ON
12-04 17:38:17.944 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.952 4863 4895 D BluetoothAdapterService: bleOnProcessStart()
12-04 17:38:17.953 4863 4895 I AdapterProperties: init(), maxConnectedAudioDevices, default=5, propertyOverlayed=5, finalValue=5
12-04 17:38:17.955 4863 4907 I BluetoothDatabase: cacheMetadata
12-04 17:38:17.956 4863 4895 D BluetoothAdapterService: bleOnProcessStart() - Make Bond State Machine
12-04 17:38:17.957 4863 4895 D BluetoothBondStateMachine: make
12-04 17:38:17.958 4863 4915 I BluetoothBondStateMachine: StableState(): Entering Off State
12-04 17:38:17.965 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:17.968 4863 4863 I BtGatt.JNI: classInitNative(L876): classInitNative: Success!
12-04 17:38:17.971 4863 4863 D BtGatt.DebugUtils: handleDebugAction() action=null
12-04 17:38:17.972 4863 4863 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@ce331bd
12-04 17:38:17.982 4863 4863 I bt_btif : get_profile_interface: id = gatt
12-04 17:38:17.982 4863 4863 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@ce331bd
12-04 17:38:17.986 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.002 4863 4863 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@ce331bd
12-04 17:38:18.004 4863 4896 I bt_stack_manager: event_start_up_stack is bringing up the stack
12-04 17:38:18.006 4863 4896 I bt_core_module: module_start_up Starting module "btif_config_module"
12-04 17:38:18.006 4863 4896 I bt_core_module: module_start_up Started module "btif_config_module"
12-04 17:38:18.006 4863 4896 I bt_core_module: module_start_up Starting module "btsnoop_module"
12-04 17:38:18.006 4863 4896 I : [1204/173818.006369:INFO:btsnoop.cc(207)] start_up: Snoop Logs disabled
12-04 17:38:18.006 4863 4896 I : [1204/173818.006495:INFO:btsnoop.cc(338)] delete_btsnoop_files: Deleting snoop logs if they exist. filtered = 1
12-04 17:38:18.006 4863 4896 I : [1204/173818.006645:INFO:btsnoop.cc(338)] delete_btsnoop_files: Deleting snoop logs if they exist. filtered = 0
12-04 17:38:18.006 4863 4896 I bt_core_module: module_start_up Started module "btsnoop_module"
12-04 17:38:18.007 4863 4896 I bt_core_module: module_start_up Starting module "hci_module"
12-04 17:38:18.007 4863 4896 I bt_hci : hci_module_start_up
12-04 17:38:18.007 4863 4922 I : [1204/173818.007486:INFO:message_loop_thread.cc(175)] Run: message loop starting for thread bt_hci_thread
12-04 17:38:18.007 4863 4922 I bt_hci : hci_initialize
12-04 17:38:18.007 4863 4896 D bt_hci : hci_module_start_up starting async portion
12-04 17:38:18.009 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.013 4863 4922 I bt_hci : hci_initialize: IBluetoothHci::getService() returned 0x7c5d8b43e0 (remote)
12-04 17:38:18.013 4779 4786 I android.hardware.bluetooth@1.0-impl: BluetoothHci::initialize()
12-04 17:38:18.015 4779 4786 D : get_local_address: Trying /sys/class/addr_mgt/addr_bt
12-04 17:38:18.015 4779 4786 D : get_local_address: Got Factory BDA 52:24:EB:E7:63:5D
12-04 17:38:18.015 4779 4786 I bt_vendor: init
12-04 17:38:18.015 4779 4786 W bt_vendor: *****************************************************************
12-04 17:38:18.015 4779 4786 W bt_vendor: *****************************************************************
12-04 17:38:18.015 4779 4786 W bt_vendor: ** Warning - BT Vendor Lib is loaded in debug tuning mode!
12-04 17:38:18.015 4779 4786 W bt_vendor: **
12-04 17:38:18.015 4779 4786 W bt_vendor: ** If this is not intentional, rebuild libbt-vendor.so
12-04 17:38:18.015 4779 4786 W bt_vendor: ** with VENDOR_LIB_RUNTIME_TUNING_ENABLED=FALSE and
12-04 17:38:18.015 4779 4786 W bt_vendor: ** check if any run-time tuning parameters needed to be
12-04 17:38:18.015 4779 4786 W bt_vendor: ** carried to the build-time configuration accordingly.
12-04 17:38:18.015 4779 4786 W bt_vendor: *****************************************************************
12-04 17:38:18.015 4779 4786 W bt_vendor: *****************************************************************
12-04 17:38:18.015 4779 4786 I bt_vnd_conf: Attempt to load conf from /etc/bluetooth/bt_vendor.conf
12-04 17:38:18.015 4779 4786 I bt_vnd_conf: vnd_load_conf file >/etc/bluetooth/bt_vendor.conf< not found
12-04 17:38:18.015 4779 4786 D android.hardware.bluetooth@1.0-impl: Open vendor library loaded
12-04 17:38:18.015 4779 4786 D bt_vendor: op for 0
12-04 17:38:18.016 4779 4786 D bt_upio : init_rfkill: rfkill path /sys/devices/platform/aic-bt/rfkill/rfkill1
12-04 17:38:18.044 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.051 4779 4786 W bt_vendor: NOTE: BT_VND_PWR_ON now forces power-off first
12-04 17:38:18.051 4779 4786 D bt_upio : init_rfkill: rfkill path /sys/devices/platform/aic-bt/rfkill/rfkill1
12-04 17:38:18.055 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.080 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.088 4779 4786 D bt_vendor: op for 3
12-04 17:38:18.088 4779 4786 I bt_userial_vendor: userial vendor open: opening /dev/ttyS1
12-04 17:38:18.088 4779 4786 I bt_userial_vendor: device fd = 6 open
12-04 17:38:18.089 4779 4786 D bt_vendor: op for 1
12-04 17:38:18.089 4779 4786 E bt_hwcfg: hw_config_start
12-04 17:38:18.089 4779 4786 D bt_vendor: op for 7
12-04 17:38:18.089 4779 4786 E bt_hwcfg: set_wake_stat 1
12-04 17:38:18.089 4779 4786 D bt_upio : upio_set : pio 0 action 2, polarity 1
12-04 17:38:18.090 4779 4786 D bt_upio : upio_set: proc btwrite assertion, buffer: 1, timer_armed 1 0
12-04 17:38:18.102 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.114 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:18.135 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.148 2210 4710 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 17:38:18.157 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.178 2130 4714 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 17:38:18.199 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.213 2210 4710 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 17:38:18.220 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.732 2130 4714 I chatty : uid=1041(audioserver) writer identical 24 lines
12-04 17:38:18.754 2130 4714 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 17:38:18.765 2130 2130 D audio_hw_primary: out_standby
12-04 17:38:18.943 2444 2664 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.926) failed {.code = ERROR_NOT_AVAILABLE, .description = }
12-04 17:38:18.983 2210 2287 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 17:38:19.063 2210 4500 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 17:38:19.835 2210 4710 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 17:38:19.897 2210 4710 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 17:38:20.674 2210 4710 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 17:38:20.730 2210 4710 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
开机日志:
[40]HELLO! BOOT0 is starting!
[43]BOOT0 commit : f10e8c3
[46]set pll start
[48]periph0 has been enabled
[51]set pll end
[53][pmu]: bus read error
[56]PMU: AXP803
[75]vaild para:1 select dram para0
[79]board init ok
[80]rtc[3] value = 0xb00f
[103]DRAM BOOT DRIVE INFO: V0.67
[106]the chip id is 0x1400
[109]the chip id is 0x1400
[112]the chip id is 0x1400
[114]the chip id is 0x1400
[117]the chip id is 0x1400
[120]chip id check OK
[122]DRAM_VCC set to 1500 mv
[125]DRAM CLK =648 MHZ
[127]DRAM Type =3 (3:DDR3,4:DDR4,7:LPDDR3,8:LPDDR4)
[136]DRAM SIZE =2048 MBytes, para1 = 310a, para2 = 8000000, tpr13 = 6001
[148]DRAM simple test OK.
[150]dram size =2048
[153]chipid = 54401400
[155]nsi init ok 2020-4-7
[158]card no is 2
[160]sdcard 2 line count 8
[163][mmc]: mmc driver ver 2020-05-25 09:40-202007019516
[174][mmc]: Wrong media type 0x0
[177][mmc]: ***Try SD card 2***
[181][mmc]: mmc 2 cmd 8 timeout, err 100
[185][mmc]: mmc 2 cmd 8 err 100
[188][mmc]: mmc 2 send if cond failed
[192][mmc]: mmc 2 cmd 55 timeout, err 100
[196][mmc]: mmc 2 cmd 55 err 100
[200][mmc]: mmc 2 send app cmd failed
[203][mmc]: ***Try MMC card 2***
[229][mmc]: RMCA OK!
[232][mmc]: bias 4
[233][mmc]: mmc 2 bias 4
[237][mmc]: MMC 5.1
[239][mmc]: HSSDR52/SDR25 8 bit
[242][mmc]: 50000000 Hz
[244][mmc]: 7400 MB
[246][mmc]: ***SD/MMC 2 init OK!!!***
[306]Loading boot-pkg Succeed(index=0).
[310]Entry_name = u-boot
[317]Entry_name = monitor
[321]Entry_name = scp
[324]set arisc reset to assert state
[333]set arisc reset to de-assert state
[337]Entry_name = dtb
[340]tunning data addr:0x4a0003e8
[344]Jump to second Boot.
NOTICE: BL3-1: v1.0(debug):e138ea9
NOTICE: BL3-1: Built : 09:21:33, 2020-11-18
NOTICE: BL3-1 commit: 8
NOTICE: cpuidle init version V2.0
ERROR: Error initializing runtime service tspd_fast
NOTICE: BL3-1: Preparing for EL3 exit to normal world
NOTICE: BL3-1: Next image address = 0x4a000000
NOTICE: BL3-1: Next image spsr = 0x1d3
U-Boot 2018.05 (Jun 01 2023 - 05:30:25 +0000) Allwinner Technology
[00.427]CPU: Allwinner Family
[00.430]Model: sun50iw10
I2C: smallwit i2c init begin ...
smallwit i2c init end ...
ready
[00.706]DRAM: 2 GiB
[00.709]Relocation Offset is: 75f00000
[00.743]secure enable bit: 0
smallwit i2c init begin ...
smallwit i2c init end ...
read 0x05 register result : 0
i2c write 0x01 register ok
read 0x01 register result : 0
[00.765]PMU: AXP803
[00.767]PMU: pmu_axp81X found
FDT ERROR:fdt_get_regulator_name:get property handle twi-supply error:FDT_ERR_INTERNAL
[00.785]gpio_bias, pc_bias: 1800, pc_supply: not set
[00.790]gpio_bias, pl_bias: -1, pl_supply: not set
[00.797]dcdc1_vol = 3300, onoff=1
[00.801]aldo1_vol = 1800, onoff=1
[00.806]aldo2_vol = 1800, onoff=1
[00.810]aldo3_vol = 3300, onoff=1
[00.814]dldo1_vol = 0, onoff=0
[00.819]dldo2_vol = 1800, onoff=1
[00.823]dldo3_vol = 1800, onoff=1
[00.828]dldo4_vol = 1800, onoff=1
[00.832]eldo1_vol = 1800, onoff=1
[00.837]eldo2_vol = 1800, onoff=1
[00.842]eldo3_vol = 1800, onoff=1
[00.846]fldo1_vol = 900, onoff=1
[00.850]dc1sw_vol = 0, onoff=1
bias_name:pc_bias bias_vol:1800
[00.858]SMALLWIT CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz MBus=400Mhz
[00.865]not need merged sunxi overlay
[00.868]gic: sec monitor mode
[00.871]sunxi flash type@2 not support fast burn key
[00.875]flash init start
[00.878]workmode = 0,storage type = 2
[00.881][mmc]: mmc driver ver uboot2018:2021-12-20 13:35:00
[00.887][mmc]: get sdc_type fail and use default host:tm4.
[00.899][mmc]: SUNXI SDMMC Controller Version:0x50300
[00.927][mmc]: Best spd md: 4-HS400, freq: 3-100000000, Bus width: 8
[00.933]sunxi flash init ok
[00.935]non secure, do not need update backup boot0 to toc0
[00.941]init_clocks:finish
[00.943]drv_disp_init
[00.976]get flash lcd idx 0
request pwm success, pwm2:pwm2:0x300a000.
[00.988]drv_disp_init finish
[00.997]Loading Environment from SUNXI_FLASH... OK
[01.006]boot_gui_init:start
[01.010]set disp.dev2_output_type fail. using defval=0
[01.014]disp 0, clk: pll(364000000),clk(364000000),dclk(52000000) dsi_rate(364000000)
clk real:pll(360000000),clk(360000000),dclk(51428571) dsi_rate(0)
[01.028]enable power dc1sw, ret=0
[01.031]enable power dcdc1, ret=0
[01.034]enable power eldo3, ret=0
[01.037]enable power dldo2, ret=0
[01.044]switch device: sel=0, type=1, mode=4, format=0, bits=0, eotf=4, cs=260
[01.052]boot_gui_init:finish
54 bytes read in 1 ms (52.7 KiB/s)
[01.059]bmp_name=bootlogo.bmp size 793494
793494 bytes read in 8 ms (94.6 MiB/s)
[01.079]no secure os for keybox operation
[01.082]try to burn key
[01.085]out of usb burn from boot: not need burn key
[01.090][ARISC] :arisc initialize
[01.095][ARISC ERROR] :get [allwinner,sunxi-hwspinlock] device node error
CACHE: Misaligned operation at range [bffa0ae0, bffa0df8]
[01.106][ARISC] :arisc para ok
[SCP] :sunxi-arisc driver begin startup 2
[SCP] :0x1
[SCP] :arisc version: [66fd4f97463a87fc2a2bcebebcee26f774992e52rid-]
[SCP] :arisc startup ready
[SCP] :arisc startup notify message feedback
[SCP] :send hard sync feedback message: 0x900200
[SCP] :sunxi-arisc driver v1.10 is starting
[01.136]soc ic_ver:0x6, qa_val:0x0, markid:0x1400 dclk[0-200] display_cfg_flag:0
[01.143][ARISC] :sunxi-arisc driver startup succeeded
[01.148]read item0 copy0
[01.161]Item0 (Map) magic is bad
[01.164]the secure storage item0 copy0 magic is bad
[01.179]Item0 (Map) magic is bad
[01.182]the secure storage item0 copy1 magic is bad
[01.186]Item0 (Map) magic is bad
[01.189]the secure storage map is empty
[01.193]no item name device_unlock in the map
[01.197]no item name fastboot_status_flag in the map
[01.202]sunxi secure storage has no flag
List file under ULI/factory
** Unrecognized filesystem type **
[01.211]no item name snum in the map
[01.214]no item name mac in the map
[01.217]no item name wifi_mac in the map
[01.221]no item name bt_mac in the map
[01.225]no item name specialstr in the map
[01.229]update part info
[01.231]key 0
[01.232]misc partition found
pin_name = pwm2
compat=/soc/pwm2
[01.250]LCD open finish
[01.264]update bootcmd
[01.266]serial num is: 8c000c5dd642884235d
disable nand error: FDT_ERR_BADPATH
[01.278](weak)update dtb dram start
[01.298]update dtb dram end
[01.305]update dts
Hit any key to stop autoboot: 0
[01.315]partinfo: name boot, start 0x3a000, size 0x10000
[01.466]read data in addr ret = 1
[01.469]magic = AVB0
[01.471]major version = 1 minor version = 0
[01.475]authentication_data_block_size = 240
[01.479]auxiliary_data_block_size = d40
[01.483]vbmeta_size = 4224
[01.485]algorithm_type = 0
[01.488]flag = 0
[01.490]release tool = avbtool 1.1.0
[01.504]read data in addr ret = 1
[01.507]magic = AVB0
[01.509]major version = 1 minor version = 0
[01.513]authentication_data_block_size = 140
[01.517]auxiliary_data_block_size = 3c0
[01.520]vbmeta_size = 1536
[01.523]algorithm_type = 0
[01.525]flag = 0
[01.527]release tool = avbtool 1.1.0
[01.541]read data in addr ret = 1
[01.544]magic = AVB0
[01.546]major version = 1 minor version = 0
[01.550]authentication_data_block_size = 140
[01.554]auxiliary_data_block_size = 340
[01.558]vbmeta_size = 1408
[01.560]algorithm_type = 0
[01.563]flag = 0
[01.564]release tool = avbtool 1.1.0
[01.568]total_size = 7168
[01.570]alloc block = 17
[01.604]vbmeta hash is a32ee9eb894a2f7a2eb86a847bbba8c767586f8ea3d0680b3f2eb37f88ce77ad
[01.615]no vendor_boot partition is found
[01.618]in boot normal mode,pass normal para to cmdline
[01.625]android.hardware = sun50iw10p1
[01.629]line:110 dtbo_idx= 0
[01.631]line:110 dtbo_idx= 1
[01.634]dtbo_idx= 118
[01.715]partinfo: name dtbo, start 0x61a000, size 0x1000
[01.779]Starting kernel ...
[01.782][mmc]: mmc exit start
[01.800][mmc]: mmc 2 exit ok
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.9.170 (ubuntu@ubuntu) (gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05) ) #1 SMP PREEMPT Wed Dec 4 11:27:00 CST 2024
[ 0.000000] Boot CPU: AArch64 Processor [410fd034]
[ 0.000000] bootconsole [earlycon0] enabled
[ 0.000000] disp reserve base 0xbbf4f000 ,size 0x258000
[ 0.000000] cma: Reserved 8 MiB at 0x00000000bf800000
[ 0.000000] On node 0 totalpages: 524288
[ 0.000000] DMA zone: 8192 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 524288 pages, LIFO batch:31
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.0 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: Trusted OS migration not required
[ 0.000000] psci: SMC Calling Convention v1.0
[ 0.000000] percpu: Embedded 23 pages/cpu @ffffffc07f6e9000 s53376 r8192 d32640 u94208
[ 0.000000] pcpu-alloc: s53376 r8192 d32640 u94208 alloc=23*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[ 0.000000] Detected VIPT I-cache on CPU0
[ 0.000000] CPU features: enabling workaround for ARM erratum 845719
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 516096
[ 0.000000] Kernel command line: earlyprintk=sunxi-uart,0x05000000 initcall_debug=0 console=ttyS0,115200 loglevel=8 root=/dev/mmcblk0p4 init=/init partitions=bootloader@mmcblk0p1:env@mmcblk0p2:boot@mmcblk0p3:super@mmcblk0p4:misc@mmcblk0p5:recovery@mmcblk0p6:cache@mmcblk0p7:vbmeta@mmcblk0p8:vbmeta_system@mmcblk0p9:vbmeta_vendor@mmcblk0p10:metadata@mmcblk0p11:private@mmcblk0p12:frp@mmcblk0p13:empty@mmcblk0p14:dtbo@mmcblk0p15:media_data@mmcblk0p16:UDISK@mmcblk0p17 cma=8M snum=8c000c5dd642884235d mac_addr= wifi_mac= bt_mac= specialstr= gpt=1 androidboot.vbmeta.avb_version=2.0 androidboot.vbmeta.hash_alg=sha256 androidboot.vbmeta.size=7168 androidboot.vbmeta.digest=a32ee9eb894a2f7a2eb86a847bbba8c767586f8ea3d0680b3f2eb37f88ce77ad androidboot.vbmeta.device_state=locked androidboot.veritymode=enforcing androidboot.mode=normal androidboot.serialno=8c000c5dd642884235d androidboot.hardware=sun50iw10p1 boot_type=2 androidboot.boot_type=2 androidboot.secure_os_exist=0 androidboot.trustchain=false an[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[ 0.000000] Memory: 2011348K/2097152K available (10878K kernel code, 1852K rwdata, 3800K rodata, 3712K init, 599K bss, 77612K reserved, 8192K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] modules : 0xffffff8000000000 - 0xffffff8008000000 ( 128 MB)
[ 0.000000] vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000 ( 250 GB)
[ 0.000000] .text : 0xffffff8008080000 - 0xffffff8008b20000 ( 10880 KB)
[ 0.000000] .rodata : 0xffffff8008b20000 - 0xffffff8008ee0000 ( 3840 KB)
[ 0.000000] .init : 0xffffff8008ee0000 - 0xffffff8009280000 ( 3712 KB)
[ 0.000000] .data : 0xffffff8009280000 - 0xffffff800944f008 ( 1853 KB)
[ 0.000000] .bss : 0xffffff800944f008 - 0xffffff80094e4ef8 ( 600 KB)
[ 0.000000] fixed : 0xffffffbefe7fb000 - 0xffffffbefec00000 ( 4116 KB)
[ 0.000000] PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000 ( 16 MB)
[ 0.000000] vmemmap : 0xffffffbf00000000 - 0xffffffc000000000 ( 4 GB maximum)
[ 0.000000] 0xffffffbf00000000 - 0xffffffbf02000000 ( 32 MB actual)
[ 0.000000] memory : 0xffffffc000000000 - 0xffffffc080000000 ( 2048 MB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Build-time adjustment of leaf fanout to 64.
[ 0.000000] NR_IRQS:64 nr_irqs:64 0
[ 0.000000] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000000] arm_arch_timer: Architected cp15 timer(s) running at 24.00MHz (virt).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000005] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.008163] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=80000)
[ 0.018200] pid_max: default: 32768 minimum: 301
[ 0.023020] Security Framework initialized
[ 0.026880] SELinux: Initializing.
[ 0.030470] SELinux: Starting in permissive mode
[ 0.035131] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.041699] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.049547] ftrace: allocating 34120 entries in 134 pages
[ 0.131536] sched-energy: CPU device node has no sched-energy-costs
[ 0.132177] Invalid sched_group_energy for CPU0
[ 0.136714] CPU0: update cpu_capacity 1024
[ 0.150820] ASID allocator initialised with 32768 entries
[ 0.168247] nsi: no limit for F version(except 1080P-LP4)
[ 0.168478] BOOTEVENT: 168.474165: ON
[ 0.202427] Detected VIPT I-cache on CPU1
[ 0.202476] Invalid sched_group_energy for CPU1
[ 0.202479] CPU1: update cpu_capacity 1024
[ 0.202482] CPU1: Booted secondary processor [410fd034]
[ 0.225812] Detected VIPT I-cache on CPU2
[ 0.225840] Invalid sched_group_energy for CPU2
[ 0.225842] CPU2: update cpu_capacity 1024
[ 0.225845] CPU2: Booted secondary processor [410fd034]
[ 0.249219] Detected VIPT I-cache on CPU3
[ 0.249245] Invalid sched_group_energy for CPU3
[ 0.249247] CPU3: update cpu_capacity 1024
[ 0.249250] CPU3: Booted secondary processor [410fd034]
[ 0.249329] Brought up 4 CPUs
[ 0.299963] SMP: Total of 4 processors activated.
[ 0.304655] CPU features: detected feature: 32-bit EL0 Support
[ 0.310459] CPU features: detected feature: Kernel page table isolation (KPTI)
[ 0.321382] CPU: All CPU(s) started at EL1
[ 0.321731] alternatives: patching kernel code
[ 0.326335] Invalid sched_group_energy for CPU3
[ 0.330657] CPU3: update max cpu_capacity 1024
[ 0.335073] Invalid sched_group_energy for Cluster3
[ 0.339925] Invalid sched_group_energy for CPU2
[ 0.344432] Invalid sched_group_energy for Cluster2
[ 0.349285] Invalid sched_group_energy for CPU1
[ 0.353793] Invalid sched_group_energy for Cluster1
[ 0.358645] Invalid sched_group_energy for CPU0
[ 0.363152] Invalid sched_group_energy for Cluster0
[ 0.368657] CPU1: update max cpu_capacity 1024
[ 0.373157] devtmpfs: initialized
[ 0.412765] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370867519511994 ns
[ 0.416892] futex hash table entries: 1024 (order: 5, 131072 bytes)
[ 0.423670] atomic64_test: passed
[ 0.426397] pinctrl core: initialized pinctrl subsystem
[ 0.433712] NET: Registered protocol family 16
[ 0.437451] dump_class_init,861, success
[ 0.453328] cpuidle: using governor menu
[ 0.454761] sunxi iommu: irq = 9
[ 0.455684] vdso: 2 pages (1 code @ ffffff8008b28000, 1 data @ ffffff8009284000)
[ 0.462242] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[ 0.470356] DMA: preallocated 256 KiB pool for atomic allocations
[ 0.478056] sun50iw10p1-r-pinctrl r_pio: initialized sunXi PIO driver
[ 0.496591] sun50iw10p1-pinctrl pio: initialized sunXi PIO driver
[ 0.500924] iommu: Adding device 1c0e000.ve to group 0
[ 0.511049] iommu: Adding device soc@03000000:disp1@1 to group 0
[ 0.512237] iommu: Adding device 6000000.disp to group 0
[ 0.517236] iommu: Adding device 6400000.eink to group 0
[ 0.523065] iommu: Adding device 6480000.g2d to group 0
[ 0.565392] pwm module init!
[ 0.570760] sunxi-pm debug v3.10
[ 0.572193] SCSI subsystem initialized
[ 0.573150] usbcore: registered new interface driver usbfs
[ 0.577632] usbcore: registered new interface driver hub
[ 0.582955] usbcore: registered new device driver usb
[ 0.588050] sunxi_i2c_adap_init()2541 - init
[ 0.592639] sunxi_i2c_probe()2289 - [i2c6] twi_drv_used = 1
[ 0.597668] sunxi_i2c_probe()2293 - [i2c6] twi_pkt_interval = 0
[ 0.603572] twi6 supply twi not found, using dummy regulator
[ 0.609265] twi_request_gpio()453 - [i2c6] init name: twi6
[ 0.615229] axp20x-i2c 6-0034: AXP20x variant AXP803 found
[ 0.626393] axp2101-regulator axp2101-regulator.0: Setting DCDC frequency for unsupported AXP variant
[ 0.629991] axp2101-regulator axp2101-regulator.0: Error setting dcdc frequency: -22
[ 0.668880] axp803-dldo1: Bringing 3300000uV into 1900000-1900000uV
[ 0.696562] axp20x-i2c 6-0034: AXP20X driver loaded
[ 0.696669] sunxi_i2c_dma_request()1123 - [i2c6] using dma0chan0 (tx) and dma0chan1 (rx)for DMA transfers
[ 0.705872] sunxi_i2c_probe()2289 - [i2c0] twi_drv_used = 0
[ 0.710911] sunxi_i2c_probe()2293 - [i2c0] twi_pkt_interval = 0
[ 0.716835] twi0 supply twi not found, using dummy regulator
[ 0.722519] twi_request_gpio()453 - [i2c0] init name: twi0
[ 0.728809] sunxi_i2c_probe()2289 - [i2c1] twi_drv_used = 0
[ 0.733451] sunxi_i2c_probe()2293 - [i2c1] twi_pkt_interval = 0
[ 0.739381] twi1 supply twi not found, using dummy regulator
[ 0.745036] twi_request_gpio()453 - [i2c1] init name: twi1
[ 0.751007] sunxi_i2c_probe()2289 - [i2c2] twi_drv_used = 0
[ 0.755974] sunxi_i2c_probe()2293 - [i2c2] twi_pkt_interval = 0
[ 0.762246] twi_request_gpio()453 - [i2c2] init name: twi2
[ 0.768025] sunxi_i2c_probe()2289 - [i2c3] twi_drv_used = 0
[ 0.772876] sunxi_i2c_probe()2293 - [i2c3] twi_pkt_interval = 0
[ 0.778811] twi3 supply twi not found, using dummy regulator
[ 0.784491] twi_request_gpio()453 - [i2c3] init name: twi3
[ 0.790737] media: Linux media interface: v0.10
[ 0.794425] Linux video capture interface: v2.00
[ 0.799914] ion_parse_dt_heap_common: id 0 type 0 name sys_user align 1000
[ 0.806017] ion_parse_dt_heap_common: id 4 type 4 name cma align 1000
[ 0.812379] ion_parse_dt_heap_common: id 6 type 6 name secure align 1000
[ 0.819190] drm config service not available: FFFFFFFF
[ 0.824427] Advanced Linux Sound Architecture Driver Initialized.
[ 0.830711] Bluetooth: Core ver 2.22
[ 0.833674] NET: Registered protocol family 31
[ 0.838040] Bluetooth: HCI device and connection manager initialized
[ 0.844380] Bluetooth: HCI socket layer initialized
[ 0.849225] Bluetooth: L2CAP socket layer initialized
[ 0.854294] Bluetooth: SCO socket layer initialized
[ 0.860547] clocksource: Switched to clocksource arch_sys_counter
[ 0.932592] VFS: Disk quotas dquot_6.6.0
[ 0.932735] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.940353] udc_init,0
[ 0.941520] NET: Registered protocol family 2
[ 0.970741] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[ 0.972436] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[ 0.979190] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.985492] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[ 0.991444] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[ 0.998166] NET: Registered protocol family 1
[ 1.002438] Trying to unpack rootfs image as initramfs...
[ 1.041914] Freeing initrd memory: 776K
[ 1.043542] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[ 1.050458] audit: initializing netlink subsys (disabled)
[ 1.053302] audit: type=2000 audit(0.863:1): initialized
[ 1.059529] workingset: timestamp_bits=45 max_order=19 bucket_order=0
[ 1.075115] Registering sdcardfs 0.1
[ 1.075624] ntfs: driver 2.1.32 [Flags: R/W].
[ 1.077912] fuse init (API version 7.26)
[ 1.083289] SELinux: Registering netfilter hooks
[ 1.090414] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 1.093552] io scheduler noop registered
[ 1.097361] io scheduler deadline registered
[ 1.101754] io scheduler cfq registered (default)
[ 1.108158] [DISP]disp_module_init
[ 1.109946] disp soc@03000000:disp1@1: unable to map de registers
[ 1.115673] disp: probe of soc@03000000:disp1@1 failed with error -22
[ 1.122863] [DISP] disp_init,line:2345:
[ 1.125699] smooth display screen:0 type:1 mode:4
[ 1.172306] [DISP] lcd_clk_config,line:675:
[ 1.172353] disp 0, clk: pll(364000000),clk(364000000),dclk(52000000) dsi_rate(364000000)
[ 1.172353] clk real:pll(360000000),clk(360000000),dclk(51428571) dsi_rate(0)
[ 1.174524] [DISP]disp_module_init finish
[ 1.198440] uart uart0: get regulator failed
[ 1.199046] uart0: ttyS0 at MMIO 0x5000000 (irq = 349, base_baud = 1500000) is a SUNXI
[ 1.205027] sw_console_▒[ 1.212943] console [ttyS0] enabled
[ 1.212943] console [ttyS0] enabled
[ 1.216950] bootconsole [earlycon0] disabled
[ 1.216950] bootconsole [earlycon0] disabled
[ 1.225926] uart uart1: get regulator failed
[ 1.234239] uart1 supply uart not found, using dummy regulator
[ 1.241064] uart1: ttyS1 at MMIO 0x5000400 (irq = 350, base_baud = 1500000) is a SUNXI
[ 1.250513] uart uart2: get regulator failed
[ 1.255374] uart2 supply uart not found, using dummy regulator
[ 1.262169] uart2: ttyS2 at MMIO 0x5000800 (irq = 351, base_baud = 1500000) is a SUNXI
[ 1.271448] sun50iw10p1-pinctrl pio: missing pins property in node uart3
[ 1.279010] uart: probe of uart3 failed with error -22
[ 1.284840] sun50iw10p1-pinctrl pio: missing pins property in node uart4
[ 1.292394] uart: probe of uart4 failed with error -22
[ 1.298920] misc dump reg init
[ 1.303531] G2D: Module initialized.major:245
[ 1.309281] [drm] Initialized
[ 1.312783] Unable to detect cache hierarchy for CPU 0
[ 1.330937] brd: module loaded
[ 1.348172] loop: module loaded
[ 1.352656] zram: Added device: zram0
[ 1.357028] [NAND][NE] Not found valid nand node on dts
[ 1.363627] Boot type 2
[ 1.366870] sunxi-bt soc@03000000:bt@0: bt_power_name (axp803-dldo1)
[ 1.374081] sunxi-bt soc@03000000:bt@0: Missing bt_io_regulator.
[ 1.380859] sunxi-bt soc@03000000:bt@0: io_regulator_name ((null))
[ 1.387884] sunxi-bt soc@03000000:bt@0: get gpio bt_rst failed
[ 1.394515] sunxi-bt soc@03000000:bt@0: devm_pinctrl_get() failed!
[ 1.402162] sunxi-wlan soc@03000000:wlan@0: wlan_busnum (1)
[ 1.408464] sunxi-wlan soc@03000000:wlan@0: wlan_power_name (axp803-dldo1)
[ 1.416213] sunxi-wlan soc@03000000:wlan@0: Missing wlan_io_regulator.
[ 1.423575] sunxi-wlan soc@03000000:wlan@0: io_regulator_name ((null))
[ 1.430959] sunxi-wlan soc@03000000:wlan@0: wlan_regon gpio=202 mul-sel=1 pull=-1 drv_level=-1 data=1
[ 1.441778] sunxi-wlan soc@03000000:wlan@0: get gpio chip_en failed
[ 1.448843] sunxi-wlan soc@03000000:wlan@0: get gpio power_en failed
[ 1.456022] sunxi-wlan soc@03000000:wlan@0: wlan_hostwake gpio=205 mul-sel=6 pull=-1 drv_level=-1 data=0
[ 1.467159] sunxi-wlan soc@03000000:wlan@0: clk not config
[ 1.473357] sunxi-wlan soc@03000000:wlan@0: dcxo not config
[ 1.479660] sunxi-wlan soc@03000000:wlan@0: pinctrl_lookup_state(default) failed! return ffffffffffffffed
[ 1.491683] [ADDR_MGT] addr_mgt_probe: success.
[ 1.499896] libphy: Fixed MDIO Bus: probed
[ 1.504563] tun: Universal TUN/TAP device driver, 1.6
[ 1.510261] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[ 1.518962] deviceless supply not found, using dummy regulator
[ 1.525713] deviceless supply not found, using dummy regulator
[ 1.532411] deviceless supply not found, using dummy regulator
[ 1.540022] PPP generic driver version 2.4.2
[ 1.545086] PPP BSD Compression module registered
[ 1.550398] PPP Deflate Compression module registered
[ 1.556119] PPP MPPE Compression module registered
[ 1.561527] NET: Registered protocol family 24
[ 1.566534] PPTP driver version 0.8.5
[ 1.571032] usbcore: registered new interface driver rtl8150
[ 1.577480] usbcore: registered new interface driver r8152
[ 1.583729] usbcore: registered new interface driver asix
[ 1.589878] usbcore: registered new interface driver ax88179_178a
[ 1.596799] usbcore: registered new interface driver cdc_ether
[ 1.603478] usbcore: registered new interface driver smsc75xx
[ 1.610025] usbcore: registered new interface driver smsc95xx
[ 1.616551] usbcore: registered new interface driver net1080
[ 1.622993] usbcore: registered new interface driver cdc_subset
[ 1.629716] usbcore: registered new interface driver zaurus
[ 1.636057] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[ 1.644471] usbcore: registered new interface driver cdc_ncm
[ 1.650854] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.658581] get ehci0-controller, regulator_io is no nocare
[ 1.664868] get ehci0-controller wakeup-source is fail.
[ 1.670996] sunxi ehci0-controller don't init wakeup source
[ 1.677286] [sunxi-ehci0]: probe, pdev->name: 5101000.ehci0-controller, sunxi_ehci: 0xffffff80094d08b0, 0x:ffffff8009c56000, irq_no:168
[ 1.690998] [sunxi-ehci0]: Not init ehci0
[ 1.695641] get ehci1-controller, regulator_io is no nocare
[ 1.701921] get ehci1-controller wakeup-source is fail.
[ 1.707945] sunxi ehci1-controller don't init wakeup source
[ 1.714229] [sunxi-ehci1]: probe, pdev->name: 5200000.ehci1-controller, sunxi_ehci: 0xffffff80094d0c38, 0x:ffffff8009cf2000, irq_no:16a
[ 1.729237] sunxi-ehci 5200000.ehci1-controller: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.739466] sunxi-ehci 5200000.ehci1-controller: new USB bus registered, assigned bus number 1
[ 1.749644] sunxi-ehci 5200000.ehci1-controller: irq 362, io mem 0xffffffc07c70a010
[ 1.770566] sunxi-ehci 5200000.ehci1-controller: USB 0.0 started, EHCI 1.00
[ 1.778413] sunxi-ehci 5200000.ehci1-controller: ehci_irq: highspeed device connect
[ 1.788013] hub 1-0:1.0: USB hub found
[ 1.792276] hub 1-0:1.0: 1 port detected
[ 1.797624] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 1.804980] get ohci0-controller, regulator_io is no nocare
[ 1.811268] get ohci0-controller wakeup-source is fail.
[ 1.817387] sunxi ohci0-controller don't init wakeup source
[ 1.823787] [sunxi-ohci0]: probe, pdev->name: 5101000.ohci0-controller, sunxi_ohci: 0xffffff80094d1348
[ 1.834274] [sunxi-ohci0]: Not init ohci0
[ 1.838917] get ohci1-controller, regulator_io is no nocare
[ 1.845203] get ohci1-controller wakeup-source is fail.
[ 1.851218] sunxi ohci1-controller don't init wakeup source
[ 1.857596] [sunxi-ohci1]: probe, pdev->name: 5200000.ohci1-controller, sunxi_ohci: 0xffffff80094d16d0
[ 1.868227] sunxi-ohci 5200000.ohci1-controller: SW USB2.0 'Open' Host Controller (OHCI) Driver
[ 1.878050] sunxi-ohci 5200000.ohci1-controller: new USB bus registered, assigned bus number 2
[ 1.887826] sunxi-ohci 5200000.ohci1-controller: irq 363, io mem 0xffffffc07c70a400
[ 1.955506] hub 2-0:1.0: USB hub found
[ 1.959772] hub 2-0:1.0: 1 port detected
[ 1.965359] usbcore: registered new interface driver uas
[ 1.971471] usbcore: registered new interface driver usb-storage
[ 1.978303] usbcore: registered new interface driver ums-alauda
[ 1.985029] usbcore: registered new interface driver ums-cypress
[ 1.991854] usbcore: registered new interface driver ums-datafab
[ 1.998672] usbcore: registered new interface driver ums_eneub6250
[ 2.005696] usbcore: registered new interface driver ums-freecom
[ 2.012515] usbcore: registered new interface driver ums-isd200
[ 2.019241] usbcore: registered new interface driver ums-jumpshot
[ 2.026157] usbcore: registered new interface driver ums-karma
[ 2.032786] usbcore: registered new interface driver ums-onetouch
[ 2.039721] usbcore: registered new interface driver ums-realtek
[ 2.046547] usbcore: registered new interface driver ums-sddr09
[ 2.053268] usbcore: registered new interface driver ums-sddr55
[ 2.059997] usbcore: registered new interface driver ums-usbat
[ 2.066693] usbcore: registered new interface driver usbserial
[ 2.073455] usbcore: registered new interface driver option
[ 2.079784] usbserial: USB Serial support registered for GSM modem (1-port)
[ 2.087816] usbcore: registered new interface driver cdc_xr_usb_serial
[ 2.095171] xr_usb_serial_common: Exar USB UART (serial port) driver
[ 2.102499] usb_serial_number:20080411
[ 2.107504] sunxikbd_key_init: key0 vol= 590 code= 0
[ 2.113104] sunxikbd_key_init: key1 vol= 646 code= 115
[ 2.113896] usb 1-1: new high-speed USB device number 2 using sunxi-ehci
[ 2.126445] sunxikbd_key_init: key2 vol= 897 code= 114
[ 2.132532] input: sunxi-keyboard as /devices/virtual/input/input0
[ 2.148098] input: axp803-pek as /devices/platform/soc/7081400.s_twi/i2c-6/6-0034/axp2101-pek.0/input/input1
[ 2.163014] random: fast init done
[ 2.169477] rtc-hym8563 3-0051: rtc core: registered hym8563 as rtc0
[ 2.177632] i2c /dev entries driver
[ 2.182701] lirc_dev: IR Remote Control driver registered, major 244
[ 2.189895] IR NEC protocol handler initialized
[ 2.195001] IR RC5(x/sz) protocol handler initialized
[ 2.200697] IR RC6 protocol handler initialized
[ 2.205809] IR JVC protocol handler initialized
[ 2.210918] IR Sony protocol handler initialized
[ 2.216120] IR SANYO protocol handler initialized
[ 2.221431] IR Sharp protocol handler initialized
[ 2.226730] IR MCE Keyboard/mouse protocol handler initialized
[ 2.233357] IR LIRC bridge handler initialized
[ 2.238413] IR XMP protocol handler initialized
[ 2.244020] sunxi_ir_startup: get ir protocol failed
[ 2.249481] 7040000.s_cir supply ir0 not found, using dummy regulator
[ 2.257113] Registered IR keymap rc_map_sunxi
[ 2.262485] input: sunxi-ir as /devices/platform/soc/7040000.s_cir/rc/rc0/input2
[ 2.271093] rc rc0: sunxi-ir as /devices/platform/soc/7040000.s_cir/rc/rc0
[ 2.279369] input: MCE IR Keyboard/Mouse (sunxi-rc-recv) as /devices/virtual/input/input3
[ 2.289348] rc rc0: lirc_dev: driver ir-lirc-codec (sunxi-rc-recv) registered at minor = 0
[ 2.289518] hub 1-1:1.0: USB hub found
[ 2.289936] hub 1-1:1.0: 4 ports detected
[ 2.308060] sunxi cedar version 0.1
[ 2.312147] VE: install start!!!
[ 2.312147]
[ 2.317612] cedar_ve: cedar-ve the get irq is 347
[ 2.323334] VE: get debugfs_mpp_root is NULL, please check mpp
[ 2.323334]
[ 2.331580] VE: sunxi ve debug register driver failed!
[ 2.331580]
[ 2.351960] axp803_battery: axp803_bat_power_dt_parse: failed
[ 2.351960]
[ 2.360107] axp803_battery: axp803_bat_power_probe parse device tree err
[ 2.360107]
[ 2.369350] axp803-battery-power-supply: probe of axp803-battery-power-supply.0 failed with error -22
[ 2.381148] device-mapper: uevent: version 1.0.3
[ 2.386840] device-mapper: ioctl: 4.35.0-ioctl (2016-06-23) initialised: dm-devel@redhat.com
[ 2.396512] device-mapper: verity-avb: AVB error handler initialized with vbmeta device:
[ 2.405735] Bluetooth: HCI UART driver ver 2.3
[ 2.410754] Bluetooth: HCI UART protocol H4 registered
[ 2.416548] Bluetooth: HCI UART protocol LL registered
[ 2.422337] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 2.433975] sunxi-mmc sdc2: SD/MMC/SDIO Host Controller Driver(v3.46 2020-6-1 11:33-202006021635)
[ 2.444056] sunxi-mmc sdc2: ***ctl-spec-caps*** 308
[ 2.450204] sunxi-mmc sdc2: No vdmmc regulator found
[ 2.455805] sunxi-mmc sdc2: No vd33sw regulator found
[ 2.461504] sunxi-mmc sdc2: No vd18sw regulator found
[ 2.467197] sunxi-mmc sdc2: No vq33sw regulator found
[ 2.472899] sunxi-mmc sdc2: No vq18sw regulator found
[ 2.479266] sunxi-mmc sdc2: set host busy
[ 2.483878] mmc:failed to get gpios
[ 2.488070] sunxi-mmc sdc2: sdc set ios:clk 0Hz bm PP pm UP vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.513962] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm PP pm ON vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.540806] sunxi-mmc sdc2: detmode:alway in(non removable)
[ 2.540840] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm PP pm ON vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.549301] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm PP pm ON vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.550369] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm OD pm ON vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.561223] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm OD pm ON vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.561287] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm OD pm ON vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.574133] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm OD pm ON vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.618630] sun50iw10p1-pinctrl pio: expect_func as:uart0_jtag, but muxsel(3) is func:jtag0
[ 2.628043] sun50iw10p1-pinctrl pio: expect_func as:uart0_jtag, but muxsel(3) is func:jtag0
[ 2.637474] sun50iw10p1-pinctrl pio: expect_func as:uart0_jtag, but muxsel(3) is func:uart0
[ 2.646897] sun50iw10p1-pinctrl pio: expect_func as:uart0_jtag, but muxsel(3) is func:jtag0
[ 2.656310] sun50iw10p1-pinctrl pio: expect_func as:uart0_jtag, but muxsel(3) is func:uart0
[ 2.665737] sun50iw10p1-pinctrl pio: expect_func as:uart0_jtag, but muxsel(3) is func:jtag0
[ 2.675480] sunxi-mmc sdc0: SD/MMC/SDIO Host Controller Driver(v3.46 2020-6-1 11:33-202006021635)
[ 2.685559] sunxi-mmc sdc0: ***ctl-spec-caps*** 8
[ 2.692569] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm PP pm ON vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.692957] sunxi-mmc sdc0: No vqmmc regulator found
[ 2.692962] sunxi-mmc sdc0: No vdmmc regulator found
[ 2.703450] sunxi-mmc sdc0: set host busy
[ 2.703513] sunxi-mmc sdc0: Got CD GPIO
[ 2.703842] sunxi-mmc sdc0: sdc set ios:clk 0Hz bm PP pm UP vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.703887] sunxi-mmc sdc0: no vqmmc,Check if there is regulator
[ 2.720576] sunxi-mmc sdc0: sdc set ios:clk 400000Hz bm PP pm ON vdd 22 width 1 timing LEGACY(SDR12) dt B
[ 2.737469] sunxi-mmc sdc0: detmode:gpio irq
[ 2.737984] sunxi-mmc sdc1: SD/MMC/SDIO Host Controller Driver(v3.46 2020-6-1 11:33-202006021635)
[ 2.738053] sunxi-mmc sdc1: ***ctl-spec-caps*** 1
[ 2.738238] sunxi-mmc sdc1: No vmmc regulator found
[ 2.738242] sunxi-mmc sdc1: No vqmmc regulator found
[ 2.738247] sunxi-mmc sdc1: No vdmmc regulator found
[ 2.738251] sunxi-mmc sdc1: No vd33sw regulator found
[ 2.738255] sunxi-mmc sdc1: No vd18sw regulator found
[ 2.738259] sunxi-mmc sdc1: No vq33sw regulator found
[ 2.738264] sunxi-mmc sdc1: No vq18sw regulator found
[ 2.738858] sunxi-mmc sdc1: set host busy
[ 2.738936] mmc:failed to get gpios
[ 2.738972] sunxi-mmc sdc1: min-frequency:150000
[ 2.739187] sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.753912] sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.770588] sunxi-mmc sdc1: detmode:manually by software
[ 2.771429] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 2.772267] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 2.772293] sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.774774] sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.776667] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.777542] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.778411] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.779278] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.779306] sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[ 2.780392] sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.782407] ledtrig-cpu: registered to indicate activity on CPUs
[ 2.782833] hidraw: raw HID events driver (C) Jiri Kosina
[ 2.785401] usbcore: registered new interface driver usbhid
[ 2.785405] usbhid: USB HID core driver
[ 2.785811] ashmem: initialized
[ 2.787669] optee: probing for conduit method from DT.
[ 2.787679] optee: api uid mismatch
[ 2.788098] usbcore: registered new interface driver snd-usb-audio
[ 2.789428] sun50iw10p1-pinctrl pio: pin PB4 already requested by twi1; cannot claim for daudio0
[ 2.789434] sun50iw10p1-pinctrl pio: pin-36 (daudio0) status -22
[ 2.789441] sun50iw10p1-pinctrl pio: could not request pin 36 (PB4) from group PB4 on device pio
[ 2.789446] sunxi-daudio daudio0: Error applying setting, reverse things back
[ 2.789467] sunxi-daudio: probe of daudio0 failed with error -22
[ 2.789945] sun50iw10p1-pinctrl pio: missing pins property in node spdif
[ 2.789953] sunxi-spdif: probe of spdif failed with error -22
[ 2.793195] sunxi-internal-codec codec: pa_power_always_on get failed and set it off.
[ 2.793202] digital_vol:0, lineout_vol:26, mic1gain:31, mic2gain:31 pa_msleep:120, pa_level:0, pa_power_always_on:0
[ 2.793211] adcdrc_cfg:2, adchpf_cfg:1, dacdrc_cfg:2, dachpf:0
[ 2.793271] sunxi-internal-codec codec: [sunxi_internal_codec_probe] codec probe finished.
[ 2.793930] sunxi-mmc sdc1: sdc set ios:clk 300000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.794341] [sunxi_card_init] card init finished.
[ 2.794432] Audio: [soc_new_pcm] -> 2699
[ 2.794437] Audio: [soc_new_pcm] -> 2718
[ 2.794545] Audio: [soc_new_pcm] -> 2746
[ 2.795910] sunxi-codec-machine sndcodec: sun50iw10codec <-> codec mapping ok
[ 2.797154] input: sun50iw10-codec sunxi Audio Jack as /devices/platform/soc/sndcodec/sound/card0/input4
[ 2.797545] [audio] hp_detect_case: 1
[ 2.797550] [audio] noheadphonemic missing or it has headphonemic.
[ 2.797812] sunxi-codec-machine sndcodec: [sunxi_card_dev_probe] register card finished.
[ 2.798773] sndspdif sndspdif: ASoC: CPU DAI (null) not registered
[ 2.798781] sndspdif sndspdif: snd_soc_register_card failed: -517
[ 2.798892] sndspdif: probe of sndspdif failed with error -16
[ 2.799685] u32 classifier
[ 2.799687] Actions configured
[ 2.799697] Netfilter messages via NETLINK v0.30.
[ 2.799714] nfnl_acct: registering with nfnetlink.
[ 2.800046] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[ 2.800271] ctnetlink v0.93: registering with nfnetlink.
[ 2.800821] xt_time: kernel timezone is -0000
[ 2.800920] ipip: IPv4 and MPLS over IPv4 tunneling driver
[ 2.801527] gre: GRE over IPv4 demultiplexor driver
[ 2.801531] ip_gre: GRE over IPv4 tunneling driver
[ 2.802643] IPv4 over IPsec tunneling driver
[ 2.805093] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 2.805340] arp_tables: arp_tables: (C) 2002 David S. Miller
[ 2.811836] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 2.815263] Initializing XFRM netlink socket
[ 2.815299] IPsec XFRM device driver
[ 2.816053] NET: Registered protocol family 10
[ 2.816328] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 2.816358] sunxi-mmc sdc1: sdc set ios:clk 300000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.818998] sunxi-mmc sdc1: sdc set ios:clk 300000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.821157] mip6: Mobile IPv6
[ 2.821191] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.821193] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 2.822294] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.823391] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.824487] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.824510] sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[ 2.825602] sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.843886] sunxi-mmc sdc1: sdc set ios:clk 200000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.846475] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 2.847797] NET: Registered protocol family 17
[ 2.847828] NET: Registered protocol family 15
[ 2.847859] l2tp_core: L2TP core driver, V2.0
[ 2.847875] l2tp_ppp: PPPoL2TP kernel driver, V2.0
[ 2.851417] Registered cp15_barrier emulation handler
[ 2.851431] Registered setend emulation handler
[ 2.852253] registered taskstats version 1
[ 2.865567] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 2.867234] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 2.867275] sunxi-mmc sdc1: sdc set ios:clk 200000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.868366] core: _opp_supported_by_regulators: OPP minuV: 0 maxuV: 0, not supported by regulator
[ 2.868373] cpu cpu0: _opp_add: OPP not supported by regulators (1464000000)
[ 2.868685] cpu cpu1: opp_list_debug_create_link: Failed to create link
[ 2.868691] cpu cpu1: _add_opp_dev: Failed to register opp debugfs (-12)
[ 2.868726] cpu cpu2: opp_list_debug_create_link: Failed to create link
[ 2.868732] cpu cpu2: _add_opp_dev: Failed to register opp debugfs (-12)
[ 2.868767] cpu cpu3: opp_list_debug_create_link: Failed to create link
[ 2.868772] cpu cpu3: _add_opp_dev: Failed to register opp debugfs (-12)
[ 2.870148] sunxi-mmc sdc1: sdc set ios:clk 200000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.871015] get usb_detect_mode is fail, 22
[ 2.871532] sunxi_ctp_startup: ctp_power_io is invalid.
[ 2.871557] get ctp_gesture_wakeup fail, no gesture wakeup
[ 2.871595] 0-005d supply ctp not found, using dummy regulator
[ 2.871696] get ctp_screen_max_x is fail, -22
[ 2.872971] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.874601] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.876221] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.877841] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.877856] sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[ 2.878936] sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.897212] sunxi-mmc sdc1: sdc set ios:clk 150000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.919368] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 2.921527] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 2.921540] sunxi-mmc sdc1: sdc set ios:clk 150000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.924600] sunxi-mmc sdc1: sdc set ios:clk 150000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 2.927843] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.930003] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.932162] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.934309] sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!
[ 2.934321] sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[ 2.940558] sunxi-mmc sdc0: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[ 2.967553] GTP I2C Address:0x5d
[ 2.967805] sunxi_i2c_do_xfer()1946 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x5d)
[ 2.968008] sunxi_i2c_do_xfer()1946 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x5d)
[ 2.984133] gtp_i2c_read:I2C retry timeout, reset chip.GTP i2c test failed time 1.
[ 2.984133] sunxi_i2c_do_xfer()1946 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x5d)
[ 2.984336] sunxi_i2c_do_xfer()1946 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x5d)
[ 3.000599] gtp_i2c_read:I2C retry timeout, reset chip.GTP i2c test failed time 2.I2C communication ERROR!
[ 3.000630] gt9xx_ts: probe of 0-005d failed with error -70
[ 3.000752] sunxi_i2c_drv_core_process()1007 - [i2c6] Timeout when sending 9th SCL clk
[ 3.000770] i2c_sunxi_drv_complete()1181 - [i2c6] incomplete xfer(status: 0x1, dev addr: 0x14)
[ 3.000777] 0x07081600: 01011001 00000001 00002800 0001ffff
[ 3.000781] 0x07081610: 00008040 00010004 00010010 00000000
[ 3.000853] sunxi_i2c_drv_core_process()1007 - [i2c6] Timeout when sending 9th SCL clk
[ 3.000865] i2c_sunxi_drv_complete()1181 - [i2c6] incomplete xfer(status: 0x1, dev addr: 0x5d)
[ 3.000869] 0x07081600: 11011001 00000001 0000bb00 00000001
[ 3.000874] 0x07081610: 00008040 00010004 00010010 00000000
[ 3.001035] sunxi_i2c_do_xfer()1946 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x14)
[ 3.001254] sunxi_i2c_do_xfer()1946 - [i2c1] incomplete xfer (status: 0x20, dev addr: 0x14)
[ 3.001440] sunxi_i2c_do_xfer()1946 - [i2c1] incomplete xfer (status: 0x48, dev addr: 0x5d)
[ 3.001650] sunxi_i2c_do_xfer()1946 - [i2c2] incomplete xfer (status: 0x20, dev addr: 0x14)
[ 3.001834] sunxi_i2c_do_xfer()1946 - [i2c2] incomplete xfer (status: 0x48, dev addr: 0x5d)
[ 3.002022] sunxi_i2c_do_xfer()1946 - [i2c3] incomplete xfer (status: 0x20, dev addr: 0x14)
[ 3.002206] sunxi_i2c_do_xfer()1946 - [i2c3] incomplete xfer (status: 0x48, dev addr: 0x5d)
[ 3.002549] ERROR! get hall_para failed, func:switch_init, line:269
[ 3.006879] rtc-hym8563 3-0051: setting system clock to 2024-12-04 09:36:38 UTC (1733304998)
[ 3.007435] snddaudio snddaudio0: codec: snd-soc-dummy, codec_dai: snd-soc-dummy-dai.
[ 3.007447] snddaudio snddaudio0: ASoC: CPU DAI (null) not registered
[ 3.007451] snddaudio snddaudio0: snd_soc_register_card failed
[ 3.008882] axp803-dcdc6: disabling
[ 3.009727] axp803-dldo3: disabling
[ 3.010341] axp803-dldo4: disabling
[ 3.010958] axp803-eldo2: disabling
[ 3.012020] ALSA device list:
[ 3.012023] #0: sun50iw10-codec
[ 3.889700] Freeing unused kernel memory: 3712K
[ 3.894851] Kernel init done
[ 3.901859] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm PP pm ON vdd 22 width 8 timing LEGACY(SDR12) dt B
[ 3.912991] init: init first stage started!
[ 3.918346] sunxi-mmc sdc2: sdc set ios:clk 400000Hz bm PP pm ON vdd 22 width 8 timing MMC-HS200 dt B
[ 3.918652] init: [libfs_mgr]ReadFstabFromDt(): failed to read fstab from dt
[ 3.920216] init: Using Android DT directory /proc/device-tree/firmware/android/
[ 3.945304] sunxi-mmc sdc2: sdc set ios:clk 100000000Hz bm PP pm ON vdd 22 width 8 timing MMC-HS200 dt B
[ 3.956313] sunxi-mmc sdc2: sdc set ios:clk 100000000Hz bm PP pm ON vdd 22 width 8 timing MMC-HS(SDR20) dt B
[ 3.967526] sunxi-mmc sdc2: sdc set ios:clk 52000000Hz bm PP pm ON vdd 22 width 8 timing MMC-HS(SDR20) dt B
[ 3.978934] sunxi-mmc sdc2: sdc set ios:clk 50000000Hz bm PP pm ON vdd 22 width 8 timing MMC-HS400 dt B
[ 3.989681] sunxi_mmc_get_hs400_cmd_dly,222
[ 3.994391] sunxi-mmc sdc2: failed to get HS400_cmd used default
[ 4.001235] sunxi-mmc sdc2: sdc set ios:clk 100000000Hz bm PP pm ON vdd 22 width 8 timing MMC-HS400 dt B
[ 4.010622] init: bool android::init::FirstStageMount::InitRequiredDevices(): partition(s) not found in /sys, waiting for their uevent(s): metadata, super
[ 4.027449] sunxi_mmc_get_hs400_cmd_dly,222
[ 4.032135] sunxi-mmc sdc2: failed to get HS400_cmd used default
[ 4.039249] mmc0: new HS400 MMC card at address 0001
[ 4.048743] mmcblk0: mmc0:0001 AT2S38 7.23 GiB
[ 4.057452] mmcblk0boot0: mmc0:0001 AT2S38 partition 1 4.00 MiB
[ 4.067719] mmcblk0boot1: mmc0:0001 AT2S38 partition 2 4.00 MiB
[ 4.077858] mmcblk0rpmb: mmc0:0001 AT2S38 partition 3 4.00 MiB
[ 4.086282] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17
[ 4.099552] snddaudio snddaudio0: codec: snd-soc-dummy, codec_dai: snd-soc-dummy-dai.
[ 4.100852] init: Wait for partitions returned after 90ms
[ 4.103732] init: [libfs_mgr]Created logical partition system on device /dev/block/dm-0
[ 4.105125] init: [libfs_mgr]Created logical partition vendor on device /dev/block/dm-1
[ 4.106420] init: [libfs_mgr]Created logical partition product on device /dev/block/dm-2
[ 4.107193] init: [libfs_mgr]superblock s_max_mnt_count:65535,/dev/block/by-name/metadata
[ 4.107355] init: [libfs_mgr]Filesystem on /dev/block/by-name/metadata was not cleanly shutdown; state flags: 0x1, incompat feature flags: 0x46
[ 4.113099] EXT4-fs (mmcblk0p11): recovery complete
[ 4.113229] EXT4-fs (mmcblk0p11): mounted filesystem with ordered data mode. Opts: errors=panic
[ 4.119279] EXT4-fs (dm-0): mounted filesystem without journal. Opts: barrier=1
[ 4.131097] EXT4-fs (dm-1): mounted filesystem without journal. Opts: barrier=1
[ 4.134142] EXT4-fs (dm-2): mounted filesystem without journal. Opts: barrier=1
[ 4.147553] init: 14 output lines suppressed due to ratelimiting
[ 4.157439] random: init: uninitialized urandom read (40 bytes read)
[ 4.218444] snddaudio snddaudio0: ASoC: CPU DAI (null) not registered
[ 4.225660] snddaudio snddaudio0: snd_soc_register_card failed
[ 4.286478] random: init: uninitialized urandom read (40 bytes read)
[ 4.312951] init: Loading SELinux policy
[ 4.331466] SELinux: 8192 avtab hash slots, 22279 rules.
[ 4.348949] SELinux: 8192 avtab hash slots, 22279 rules.
[ 4.354953] SELinux: 1 users, 4 roles, 1373 types, 0 bools, 1 sens, 1024 cats
[ 4.363036] SELinux: 97 classes, 22279 rules
[ 4.371478] SELinux: Completing initialization.
[ 4.376652] SELinux: Setting up existing superblocks.
[ 4.490126] audit: type=1403 audit(1733304999.983:2): policy loaded auid=4294967295 ses=4294967295
[ 4.500422] selinux: SELinux: Loaded policy from /vendor/etc/selinux/precompiled_sepolicy
[ 4.500422]
[ 4.516822] selinux: SELinux: Skipping /product/etc/selinux/product_file_contexts: empty file
[ 4.516822]
[ 4.531988] selinux: SELinux: Loaded file_contexts
[ 4.531988]
[ 4.545439] random: init: uninitialized urandom read (40 bytes read)
[ 4.589052] init: init second stage started!
[ 4.623935] init: Using Android DT directory /proc/device-tree/firmware/android/
[ 4.637517] selinux: SELinux: Skipping /product/etc/selinux/product_file_contexts: empty file
[ 4.637517]
[ 4.649088] selinux: SELinux: Loaded file_contexts
[ 4.649088]
[ 4.656150] init: Running restorecon...
[ 4.673426] init: Overriding previous 'ro.' property 'pm.dexopt.shared':'speed' with new value 'quicken'
[ 4.686764] selinux: avc: denied { set } for scontext=u:r:vendor_init:s0 tcontext=u:object_r:default_prop:s0 tclass=property_service permissive=1
[ 4.686764]
[ 4.703398] init: Overriding previous 'ro.' property 'ro.zygote':'zygote32' with new value 'zygote64_32'
[ 4.714654] selinux: avc: denied { set } for scontext=u:r:vendor_init:s0 tcontext=u:object_r:dalvik_prop:s0 tclass=property_service permissive=1
[ 4.714654]
[ 4.731171] init: Overriding previous 'ro.' property 'pm.dexopt.boot':'verify' with new value 'extract'
[ 4.989761] ueventd: ueventd started!
[ 4.997663] selinux: SELinux: Skipping /product/etc/selinux/product_file_contexts: empty file
[ 4.997663]
[ 5.009450] selinux: SELinux: Loaded file_contexts
[ 5.009450]
[ 5.016801] ueventd: Parsing file /ueventd.rc...
[ 5.023404] ueventd: Parsing file /vendor/ueventd.rc...
[ 5.030182] ueventd: Parsing file /odm/ueventd.rc...
[ 5.035820] ueventd: Unable to read config file '/odm/ueventd.rc': open() failed: No such file or directory
[ 5.046810] ueventd: Parsing file /ueventd.sun50iw10p1.rc...
[ 5.053208] ueventd: Unable to read config file '/ueventd.sun50iw10p1.rc': open() failed: No such file or directory
[ 5.073112] apexd: Bootstrap subcommand detected
[ 5.089139] apexd: Scanning /system/apex for embedded keys
[ 5.096982] apexd: Scanning /product/apex for embedded keys
[ 5.103534] apexd: ... does not exist. Skipping
[ 5.108953] apexd: Scanning /system/apex looking for APEX packages.
[ 5.116447] apexd: Found /system/apex/com.android.tzdata
[ 5.123253] apexd: Successfully bind-mounted flattened package /system/apex/com.android.tzdata on /apex/com.android.tzdata@290000000
[ 5.137099] apexd: Found /system/apex/com.android.runtime.release
[ 5.144853] apexd: Successfully bind-mounted flattened package /system/apex/com.android.runtime.release on /apex/com.android.runtime@1
[ 5.158864] apexd: Found /system/apex/com.android.media.swcodec
[ 5.171452] apexd: 9 output lines suppressed due to ratelimiting
[ 5.203001] audit: type=1400 audit(1733305000.696:3): avc: denied { read } for pid=1577 comm="ueventd" name="/" dev="debugfs" ino=1 scontext=u:r:ueventd:s0 tcontext=u:object_r:debugfs:s0 tclass=dir permissive=1
[ 5.224418] audit: type=1400 audit(1733305000.720:4): avc: denied { open } for pid=1577 comm="ueventd" path="/sys/kernel/debug" dev="debugfs" ino=1 scontext=u:r:ueventd:s0 tcontext=u:object_r:debugfs:s0 tclass=dir permissive=1
[ 5.247439] audit: type=1400 audit(1733305000.743:5): avc: denied { getattr } for pid=1577 comm="ueventd" path="/sys/kernel/debug/fault_around_bytes" dev="debugfs" ino=1199 scontext=u:r:ueventd:s0 tcontext=u:object_r:debugfs:s0 tclass=file permissive=1
[ 5.272991] audit: type=1400 audit(1733305000.766:6): avc: denied { getattr } for pid=1577 comm="ueventd" path="/sys/kernel/debug/wakeup_sources" dev="debugfs" ino=18 scontext=u:r:ueventd:s0 tcontext=u:object_r:debugfs_wakeup_sources:s0 tclass=file permissive=1
[ 5.364202] ueventd: Coldboot took 0.297 seconds
[ 5.430928] Registered swp emulation handler
[ 5.489611] init: wait for '/dev/block/by-name/media_data' took 0ms
[ 5.499379] FAT-fs (mmcblk0p16): bogus number of reserved sectors
[ 5.506255] FAT-fs (mmcblk0p16): Can't find a valid FAT filesystem
[ 5.589798] fsck.f2fs: Info: Fix the reported corruption.
[ 5.589798]
[ 5.591081] logd.auditd: start
[ 5.601074] fsck.f2fs: Info: No support kernel version!
[ 5.601074]
[ 5.608726] fsck.f2fs: Info: Segments per section = 1
[ 5.608726]
[ 5.616161] fsck.f2fs: Info: Sections per zone = 1
[ 5.616161]
[ 5.623239] fsck.f2fs: Info: sector size = 512
[ 5.623239]
[ 5.629916] fsck.f2fs: Info: total sectors = 8720351 (4257 MB)
[ 5.629916]
[ 5.638134] fsck.f2fs: Info: MKFS version
[ 5.638134]
[ 5.644300] fsck.f2fs: "4.9.170 #1 SMP PREEMPT Wed Dec 4 11:27:00 CST 2024"
[ 5.644300]
[ 5.653983] fsck.f2fs: Info: FSCK version
[ 5.653983]
[ 5.660143] fsck.f2fs: from "4.9.170 #1 SMP PREEMPT Wed Dec 4 11:27:00 CST 2024"
[ 5.660143]
[ 5.758931] F2FS-fs (mmcblk0p17): recover_inode: ino = 7fd, name = external.db, inline = 1
[ 5.768206] F2FS-fs (mmcblk0p17): recover_data: ino = 7fd (i_size: recover) recovered = 0, err = 0
[ 5.778213] F2FS-fs (mmcblk0p17): recover_inode: ino = 13af, name = persistent_properties.tmp, inline = b
[ 5.789500] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13af, name = persistent_properties.tmp, dir = 47, err = 0
[ 5.800975] F2FS-fs (mmcblk0p17): recover_data: ino = 13af (i_size: recover) recovered = 0, err = 0
[ 5.811061] F2FS-fs (mmcblk0p17): recover_inode: ino = 13b1, name = drop34.tmp, inline = b
[ 5.824026] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13b1, name = drop34.tmp, dir = 58, err = 0
[ 5.834095] F2FS-fs (mmcblk0p17): recover_data: ino = 13b1 (i_size: recover) recovered = 0, err = 0
[ 5.844211] F2FS-fs (mmcblk0p17): recover_inode: ino = 13b2, name = log-files.xml, inline = 1
[ 5.854301] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13b2, name = log-files.xml, dir = 57, err = 0
[ 5.864704] F2FS-fs (mmcblk0p17): recover_data: ino = 13b2 (i_size: recover) recovered = 1, err = 0
[ 5.874810] F2FS-fs (mmcblk0p17): recover_inode: ino = 13b4, name = drop177.tmp, inline = 3
[ 5.884699] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13b4, name = drop177.tmp, dir = 58, err = 0
[ 5.894812] F2FS-fs (mmcblk0p17): recover_data: ino = 13b4 (i_size: recover) recovered = 0, err = 0
[ 5.904945] F2FS-fs (mmcblk0p17): recover_inode: ino = 13b5, name = drop34.tmp, inline = b
[ 5.914198] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13b5, name = drop34.tmp, dir = 58, err = 0
[ 5.924276] F2FS-fs (mmcblk0p17): recover_data: ino = 13b5 (i_size: recover) recovered = 0, err = 0
[ 5.934419] F2FS-fs (mmcblk0p17): recover_inode: ino = 13b6, name = log-files.xml, inline = 1
[ 5.943990] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13b6, name = log-files.xml, dir = 57, err = 0
[ 5.954342] F2FS-fs (mmcblk0p17): recover_data: ino = 13b6 (i_size: recover) recovered = 1, err = 0
[ 5.964439] F2FS-fs (mmcblk0p17): recover_inode: ino = 13b9, name = persistent_properties.tmp, inline = b
[ 5.975139] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13b9, name = persistent_properties.tmp, dir = 47, err = 0
[ 5.986606] F2FS-fs (mmcblk0p17): recover_data: ino = 13b9 (i_size: recover) recovered = 0, err = 0
[ 5.996773] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 6.006110] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 6.016116] F2FS-fs (mmcblk0p17): recover_inode: ino = 13bb, name = drop180.tmp, inline = 3
[ 6.038429] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13bb, name = drop180.tmp, dir = 58, err = 0
[ 6.048535] F2FS-fs (mmcblk0p17): recover_data: ino = 13bb (i_size: recover) recovered = 0, err = 0
[ 6.058638] F2FS-fs (mmcblk0p17): recover_inode: ino = 13bc, name = drop34.tmp, inline = b
[ 6.067905] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13bc, name = drop34.tmp, dir = 58, err = 0
[ 6.077919] F2FS-fs (mmcblk0p17): recover_data: ino = 13bc (i_size: recover) recovered = 0, err = 0
[ 6.088020] F2FS-fs (mmcblk0p17): recover_inode: ino = 13bd, name = log-files.xml, inline = 1
[ 6.097541] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13bd, name = log-files.xml, dir = 57, err = 0
[ 6.107864] F2FS-fs (mmcblk0p17): recover_data: ino = 13bd (i_size: recover) recovered = 1, err = 0
[ 6.117963] F2FS-fs (mmcblk0p17): recover_inode: ino = 13be, name = persistent_properties.tmp, inline = b
[ 6.128656] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13be, name = persistent_properties.tmp, dir = 47, err = 0
[ 6.140112] F2FS-fs (mmcblk0p17): recover_data: ino = 13be (i_size: recover) recovered = 0, err = 0
[ 6.150205] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 6.159537] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 6.169536] F2FS-fs (mmcblk0p17): recover_inode: ino = 13c0, name = drop183.tmp, inline = 3
[ 6.191852] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13c0, name = drop183.tmp, dir = 58, err = 0
[ 6.201952] F2FS-fs (mmcblk0p17): recover_data: ino = 13c0 (i_size: recover) recovered = 0, err = 0
[ 6.212042] F2FS-fs (mmcblk0p17): recover_inode: ino = 13c1, name = drop34.tmp, inline = b
[ 6.221288] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13c1, name = drop34.tmp, dir = 58, err = 0
[ 6.231296] F2FS-fs (mmcblk0p17): recover_data: ino = 13c1 (i_size: recover) recovered = 0, err = 0
[ 6.241398] F2FS-fs (mmcblk0p17): recover_inode: ino = 13c2, name = log-files.xml, inline = 1
[ 6.250927] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13c2, name = log-files.xml, dir = 57, err = 0
[ 6.261240] F2FS-fs (mmcblk0p17): recover_data: ino = 13c2 (i_size: recover) recovered = 1, err = 0
[ 6.271328] F2FS-fs (mmcblk0p17): recover_inode: ino = 13c3, name = persistent_properties.tmp, inline = b
[ 6.282017] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13c3, name = persistent_properties.tmp, dir = 47, err = 0
[ 6.293495] F2FS-fs (mmcblk0p17): recover_data: ino = 13c3 (i_size: recover) recovered = 0, err = 0
[ 6.303590] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 6.312916] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 6.322904] F2FS-fs (mmcblk0p17): recover_inode: ino = 13c5, name = drop185.tmp, inline = 3
[ 6.332232] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13c5, name = drop185.tmp, dir = 58, err = 0
[ 6.342348] F2FS-fs (mmcblk0p17): recover_data: ino = 13c5 (i_size: recover) recovered = 0, err = 0
[ 6.352438] F2FS-fs (mmcblk0p17): recover_inode: ino = 13c6, name = drop34.tmp, inline = b
[ 6.361672] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13c6, name = drop34.tmp, dir = 58, err = 0
[ 6.371676] F2FS-fs (mmcblk0p17): recover_data: ino = 13c6 (i_size: recover) recovered = 0, err = 0
[ 6.381771] F2FS-fs (mmcblk0p17): recover_inode: ino = 13c7, name = log-files.xml, inline = 1
[ 6.391299] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13c7, name = log-files.xml, dir = 57, err = 0
[ 6.401608] F2FS-fs (mmcblk0p17): recover_data: ino = 13c7 (i_size: recover) recovered = 1, err = 0
[ 6.411703] F2FS-fs (mmcblk0p17): recover_inode: ino = 13c8, name = persistent_properties.tmp, inline = b
[ 6.422392] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13c8, name = persistent_properties.tmp, dir = 47, err = 0
[ 6.433852] F2FS-fs (mmcblk0p17): recover_data: ino = 13c8 (i_size: recover) recovered = 0, err = 0
[ 6.443954] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 6.453275] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 6.463269] F2FS-fs (mmcblk0p17): recover_inode: ino = 13ca, name = drop187.tmp, inline = 3
[ 6.472604] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13ca, name = drop187.tmp, dir = 58, err = 0
[ 6.482711] F2FS-fs (mmcblk0p17): recover_data: ino = 13ca (i_size: recover) recovered = 0, err = 0
[ 6.492813] F2FS-fs (mmcblk0p17): recover_inode: ino = 13cb, name = drop34.tmp, inline = b
[ 6.502054] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13cb, name = drop34.tmp, dir = 58, err = 0
[ 6.512059] F2FS-fs (mmcblk0p17): recover_data: ino = 13cb (i_size: recover) recovered = 0, err = 0
[ 6.522169] F2FS-fs (mmcblk0p17): recover_inode: ino = 13cc, name = log-files.xml, inline = 1
[ 6.531682] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13cc, name = log-files.xml, dir = 57, err = 0
[ 6.541997] F2FS-fs (mmcblk0p17): recover_data: ino = 13cc (i_size: recover) recovered = 1, err = 0
[ 6.552104] F2FS-fs (mmcblk0p17): recover_inode: ino = 13cd, name = persistent_properties.tmp, inline = b
[ 6.562793] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13cd, name = persistent_properties.tmp, dir = 47, err = 0
[ 6.574252] F2FS-fs (mmcblk0p17): recover_data: ino = 13cd (i_size: recover) recovered = 0, err = 0
[ 6.584344] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 6.593672] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 6.603670] F2FS-fs (mmcblk0p17): recover_inode: ino = 13cf, name = drop189.tmp, inline = 3
[ 6.613003] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13cf, name = drop189.tmp, dir = 58, err = 0
[ 6.623104] F2FS-fs (mmcblk0p17): recover_data: ino = 13cf (i_size: recover) recovered = 0, err = 0
[ 6.633216] F2FS-fs (mmcblk0p17): recover_inode: ino = 13d0, name = drop34.tmp, inline = b
[ 6.642435] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13d0, name = drop34.tmp, dir = 58, err = 0
[ 6.652439] F2FS-fs (mmcblk0p17): recover_data: ino = 13d0 (i_size: recover) recovered = 0, err = 0
[ 6.662532] F2FS-fs (mmcblk0p17): recover_inode: ino = 13d1, name = log-files.xml, inline = 1
[ 6.672045] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13d1, name = log-files.xml, dir = 57, err = 0
[ 6.682363] F2FS-fs (mmcblk0p17): recover_data: ino = 13d1 (i_size: recover) recovered = 1, err = 0
[ 6.692465] F2FS-fs (mmcblk0p17): recover_inode: ino = 13d2, name = persistent_properties.tmp, inline = b
[ 6.703145] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13d2, name = persistent_properties.tmp, dir = 47, err = 0
[ 6.714616] F2FS-fs (mmcblk0p17): recover_data: ino = 13d2 (i_size: recover) recovered = 0, err = 0
[ 6.724711] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 6.734037] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 6.744045] F2FS-fs (mmcblk0p17): recover_inode: ino = 13d5, name = drop192.tmp, inline = 3
[ 6.753377] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13d5, name = drop192.tmp, dir = 58, err = 0
[ 6.763482] F2FS-fs (mmcblk0p17): recover_data: ino = 13d5 (i_size: recover) recovered = 0, err = 0
[ 6.773574] F2FS-fs (mmcblk0p17): recover_inode: ino = 13d4, name = drop34.tmp, inline = b
[ 6.782809] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13d4, name = drop34.tmp, dir = 58, err = 0
[ 6.792815] F2FS-fs (mmcblk0p17): recover_data: ino = 13d4 (i_size: recover) recovered = 0, err = 0
[ 6.802914] F2FS-fs (mmcblk0p17): recover_inode: ino = 13d6, name = log-files.xml, inline = 1
[ 6.812449] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13d6, name = log-files.xml, dir = 57, err = 0
[ 6.822751] F2FS-fs (mmcblk0p17): recover_data: ino = 13d6 (i_size: recover) recovered = 1, err = 0
[ 6.832853] F2FS-fs (mmcblk0p17): recover_inode: ino = 13d7, name = persistent_properties.tmp, inline = b
[ 6.843533] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13d7, name = persistent_properties.tmp, dir = 47, err = 0
[ 6.854993] F2FS-fs (mmcblk0p17): recover_data: ino = 13d7 (i_size: recover) recovered = 0, err = 0
[ 6.865087] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 6.874399] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 6.884400] F2FS-fs (mmcblk0p17): recover_inode: ino = 13d9, name = drop194.tmp, inline = 3
[ 6.893730] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13d9, name = drop194.tmp, dir = 58, err = 0
[ 6.903833] F2FS-fs (mmcblk0p17): recover_data: ino = 13d9 (i_size: recover) recovered = 0, err = 0
[ 6.913941] F2FS-fs (mmcblk0p17): recover_inode: ino = 13da, name = drop34.tmp, inline = b
[ 6.923179] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13da, name = drop34.tmp, dir = 58, err = 0
[ 6.933321] F2FS-fs (mmcblk0p17): recover_data: ino = 13da (i_size: recover) recovered = 0, err = 0
[ 6.943468] F2FS-fs (mmcblk0p17): recover_inode: ino = 13db, name = log-files.xml, inline = 1
[ 6.953041] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13db, name = log-files.xml, dir = 57, err = 0
[ 6.976237] F2FS-fs (mmcblk0p17): recover_data: ino = 13db (i_size: recover) recovered = 1, err = 0
[ 6.986352] F2FS-fs (mmcblk0p17): recover_inode: ino = 13dc, name = persistent_properties.tmp, inline = b
[ 6.997057] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13dc, name = persistent_properties.tmp, dir = 47, err = 0
[ 7.008524] F2FS-fs (mmcblk0p17): recover_data: ino = 13dc (i_size: recover) recovered = 0, err = 0
[ 7.010608]
[ 7.010608] insmod_device_driver
[ 7.010608]
[ 7.010846] device_chose finished 137!
[ 7.029684] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 7.038996] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 7.048992] F2FS-fs (mmcblk0p17): recover_inode: ino = 13de, name = drop34.tmp, inline = b
[ 7.058253] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13de, name = drop34.tmp, dir = 58, err = 0
[ 7.068258] F2FS-fs (mmcblk0p17): recover_data: ino = 13de (i_size: recover) recovered = 0, err = 0
[ 7.078362] F2FS-fs (mmcblk0p17): recover_inode: ino = 13df, name = log-files.xml, inline = 1
[ 7.087890] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13df, name = log-files.xml, dir = 57, err = 0
[ 7.098220] F2FS-fs (mmcblk0p17): recover_data: ino = 13df (i_size: recover) recovered = 1, err = 0
[ 7.108309] F2FS-fs (mmcblk0p17): recover_inode: ino = 13e0, name = drop196.tmp, inline = 3
[ 7.117647] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13e0, name = drop196.tmp, dir = 58, err = 0
[ 7.127742] F2FS-fs (mmcblk0p17): recover_data: ino = 13e0 (i_size: recover) recovered = 0, err = 0
[ 7.137829] F2FS-fs (mmcblk0p17): recover_inode: ino = 13e1, name = persistent_properties.tmp, inline = b
[ 7.148526] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13e1, name = persistent_properties.tmp, dir = 47, err = 0
[ 7.159994] F2FS-fs (mmcblk0p17): recover_data: ino = 13e1 (i_size: recover) recovered = 0, err = 0
[ 7.170103] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 7.179422] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 7.189413] F2FS-fs (mmcblk0p17): recover_inode: ino = 13e3, name = drop198.tmp, inline = 3
[ 7.198748] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13e3, name = drop198.tmp, dir = 58, err = 0
[ 7.208869] F2FS-fs (mmcblk0p17): recover_data: ino = 13e3 (i_size: recover) recovered = 0, err = 0
[ 7.218958] F2FS-fs (mmcblk0p17): recover_inode: ino = 13e4, name = drop34.tmp, inline = b
[ 7.228209] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13e4, name = drop34.tmp, dir = 58, err = 0
[ 7.238226] F2FS-fs (mmcblk0p17): recover_data: ino = 13e4 (i_size: recover) recovered = 0, err = 0
[ 7.248320] F2FS-fs (mmcblk0p17): recover_inode: ino = 13e5, name = log-files.xml, inline = 1
[ 7.257858] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13e5, name = log-files.xml, dir = 57, err = 0
[ 7.268179] F2FS-fs (mmcblk0p17): recover_data: ino = 13e5 (i_size: recover) recovered = 1, err = 0
[ 7.278395] F2FS-fs (mmcblk0p17): recover_inode: ino = 13e6, name = persistent_properties.tmp, inline = b
[ 7.289129] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13e6, name = persistent_properties.tmp, dir = 47, err = 0
[ 7.300624] F2FS-fs (mmcblk0p17): recover_data: ino = 13e6 (i_size: recover) recovered = 0, err = 0
[ 7.310722] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 7.320054] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 7.330055] F2FS-fs (mmcblk0p17): recover_inode: ino = 13e8, name = drop201.tmp, inline = 3
[ 7.339403] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13e8, name = drop201.tmp, dir = 58, err = 0
[ 7.349502] F2FS-fs (mmcblk0p17): recover_data: ino = 13e8 (i_size: recover) recovered = 0, err = 0
[ 7.359609] F2FS-fs (mmcblk0p17): recover_inode: ino = 13e9, name = drop34.tmp, inline = b
[ 7.368863] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13e9, name = drop34.tmp, dir = 58, err = 0
[ 7.378875] F2FS-fs (mmcblk0p17): recover_data: ino = 13e9 (i_size: recover) recovered = 0, err = 0
[ 7.388969] F2FS-fs (mmcblk0p17): recover_inode: ino = 13ea, name = log-files.xml, inline = 1
[ 7.398486] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13ea, name = log-files.xml, dir = 57, err = 0
[ 7.408807] F2FS-fs (mmcblk0p17): recover_data: ino = 13ea (i_size: recover) recovered = 1, err = 0
[ 7.418898] F2FS-fs (mmcblk0p17): recover_inode: ino = 13eb, name = persistent_properties.tmp, inline = b
[ 7.429583] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13eb, name = persistent_properties.tmp, dir = 47, err = 0
[ 7.441061] F2FS-fs (mmcblk0p17): recover_data: ino = 13eb (i_size: recover) recovered = 0, err = 0
[ 7.451145] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 7.460464] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 7.470464] F2FS-fs (mmcblk0p17): recover_inode: ino = 13ed, name = drop203.tmp, inline = 3
[ 7.479797] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13ed, name = drop203.tmp, dir = 58, err = 0
[ 7.489908] F2FS-fs (mmcblk0p17): recover_data: ino = 13ed (i_size: recover) recovered = 0, err = 0
[ 7.500011] F2FS-fs (mmcblk0p17): recover_inode: ino = 13ee, name = drop34.tmp, inline = b
[ 7.509245] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13ee, name = drop34.tmp, dir = 58, err = 0
[ 7.519246] F2FS-fs (mmcblk0p17): recover_data: ino = 13ee (i_size: recover) recovered = 0, err = 0
[ 7.529337] F2FS-fs (mmcblk0p17): recover_inode: ino = 13ef, name = log-files.xml, inline = 1
[ 7.538856] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13ef, name = log-files.xml, dir = 57, err = 0
[ 7.549181] F2FS-fs (mmcblk0p17): recover_data: ino = 13ef (i_size: recover) recovered = 1, err = 0
[ 7.559275] F2FS-fs (mmcblk0p17): recover_inode: ino = 13f0, name = persistent_properties.tmp, inline = b
[ 7.569959] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13f0, name = persistent_properties.tmp, dir = 47, err = 0
[ 7.581419] F2FS-fs (mmcblk0p17): recover_data: ino = 13f0 (i_size: recover) recovered = 0, err = 0
[ 7.591505] F2FS-fs (mmcblk0p17): recover_inode: ino = 5fd, name = primary.prof, inline = 3
[ 7.600831] F2FS-fs (mmcblk0p17): recover_data: ino = 5fd (i_size: recover) recovered = 0, err = 0
[ 7.610837] F2FS-fs (mmcblk0p17): recover_inode: ino = 13f2, name = drop205.tmp, inline = 3
[ 7.620174] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13f2, name = drop205.tmp, dir = 58, err = 0
[ 7.630283] F2FS-fs (mmcblk0p17): recover_data: ino = 13f2 (i_size: recover) recovered = 0, err = 0
[ 7.640389] F2FS-fs (mmcblk0p17): recover_inode: ino = 13f3, name = drop34.tmp, inline = b
[ 7.649623] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13f3, name = drop34.tmp, dir = 58, err = 0
[ 7.659630] F2FS-fs (mmcblk0p17): recover_data: ino = 13f3 (i_size: recover) recovered = 0, err = 0
[ 7.669716] F2FS-fs (mmcblk0p17): recover_inode: ino = 13f4, name = log-files.xml, inline = 1
[ 7.679236] F2FS-fs (mmcblk0p17): recover_dentry: ino = 13f4, name = log-files.xml, dir = 57, err = 0
[ 7.689541] F2FS-fs (mmcblk0p17): recover_data: ino = 13f4 (i_size: recover) recovered = 1, err = 0
[ 7.718953] F2FS-fs (mmcblk0p17): checkpoint: version = 32a82eda
[ 7.725807] F2FS-fs (mmcblk0p17): Mounted with checkpoint version = 32a82eda
[ 7.736384] EXT4-fs (mmcblk0p7): Ignoring removed nomblk_io_submit option
[ 7.749080] EXT4-fs (mmcblk0p7): recovery complete
[ 7.754569] EXT4-fs (mmcblk0p7): mounted filesystem with ordered data mode. Opts: errors=remount-ro,nomblk_io_submit
[ 7.853130] EXT4-fs (mmcblk0p7): Ignoring removed nomblk_io_submit option
[ 7.862097] EXT4-fs (mmcblk0p7): mounted filesystem with ordered data mode. Opts: barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic
[ 7.897470] init: 14 output lines suppressed due to ratelimiting
[ 7.911165] zram0: detected capacity change from 0 to 1554452480
[ 7.942835] mkswap: Swapspace size: 1518016k, UUID=3ad44fa5-0cf8-48a1-9075-ee5cd99d996a
[ 7.952867] Adding 1518016k swap on /dev/block/zram0. Priority:-1 extents:1 across:1518016k SS
console:/ $ [ 8.092506] videobuf2_vmalloc: disagrees about version of symbol module_layout
[ 8.351103] apexd: Marking APEXd as starting
[ 8.357006] apexd: Scanning /system/apex for embedded keys
[ 8.365123] apexd: Scanning /product/apex for embedded keys
[ 8.371698] apexd: ... does not exist. Skipping
[ 8.376990] apexd: Populating APEX database from mounts...
[ 8.383758] apexd: Failed to walk /product/apex : Can't open /product/apex for reading : No such file or directory
[ 8.396167] apexd: Found "/apex/com.android.tzdata@290000000"
[ 8.402931] apexd: Found "/apex/com.android.runtime@1"
[ 8.408892] apexd: 2 packages restored.
[ 8.413299] apexd: Scanning /data/apex/sessions looking for sessions to be activated.
[ 8.455252] vdc: Waited 0ms for vold
[ 8.528921] type=1400 audit(1733305004.023:7): avc: denied { setattr } for comm="init" name="audio_d" dev="mmcblk0p17" ino=118 scontext=u:r:vendor_init:s0 tcontext=u:object_r:audio_rw_data_file:s0 tclass=dir permissive=1
[ 8.689335] logd.daemon: reinit
[ 9.220026] file system registered
[ 9.232822] type=1400 audit(1733305004.023:7): avc: denied { setattr } for comm="init" name="audio_d" dev="mmcblk0p17" ino=118 scontext=u:r:vendor_init:s0 tcontext=u:object_r:audio_rw_data_file:s0 tclass=dir permissive=1
[ 9.254898] type=1400 audit(1733305004.726:8): avc: denied { create } for comm="audio@2.0-servi" scontext=u:r:hal_audio_default:s0 tcontext=u:r:hal_audio_default:s0 tclass=tcp_socket permissive=1
[ 9.257919] using random self ethernet address
[ 9.257924] using random host ethernet address
[ 9.288994] healthd: No battery devices found
[ 9.303052] sunxi-bt soc@03000000:bt@0: block state already is 1
[ 9.314480] healthd: battery none chg=au
[ 9.327591] type=1400 audit(1733305004.726:8): avc: denied { create } for comm="audio@2.0-servi" scontext=u:r:hal_audio_default:s0 tcontext=u:r:hal_audio_default:s0 tclass=tcp_socket permissive=1
[ 9.351715] type=1400 audit(1733305004.726:9): avc: denied { setopt } for comm="audio@2.0-servi" scontext=u:r:hal_audio_default:s0 tcontext=u:r:hal_audio_default:s0 tclass=tcp_socket permissive=1
[ 9.372060] type=1400 audit(1733305004.726:9): avc: denied { setopt } for comm="audio@2.0-servi" scontext=u:r:hal_audio_default:s0 tcontext=u:r:hal_audio_default:s0 tclass=tcp_socket permissive=1
[ 9.391627] type=1400 audit(1733305004.726:10): avc: denied { bind } for comm="audio@2.0-servi" scontext=u:r:hal_audio_default:s0 tcontext=u:r:hal_audio_default:s0 tclass=tcp_socket permissive=1
[ 9.411192] type=1400 audit(1733305004.726:10): avc: denied { bind } for comm="audio@2.0-servi" scontext=u:r:hal_audio_default:s0 tcontext=u:r:hal_audio_default:s0 tclass=tcp_socket permissive=1
[ 9.620275] aicbsp_init
[ 9.623078] RELEASE_DATE:2024_0712_e2a932c1
[ 9.624857] read descriptors
[ 9.624870] read strings
[ 9.633955] aicbsp_resv_mem_init
[ 9.639293] init: Command 'insmod /vendor/modules/aic8800_bsp.ko' action=persist.vendor.bluetooth_vendor=aic (/vendor/etc/init/init.wireless.bluetooth.rc:34) took 294ms and succeeded
[ 9.659657] init: Service 'preloaddata' (pid 2177) exited with status 0
[ 9.667917] init: Sending signal 9 to service 'preloaddata' (pid 2177) process group...
[ 9.677763] libprocessgroup: Successfully killed process cgroup uid 0 pid 2177 in 0ms
[ 9.759076] aic_bluetooth_mod_init
[ 9.765079] -->rfkill_bluetooth_init
[ 9.769688] <--rfkill_bluetooth_init
[ 9.770171] treadahead: go to process_files
[ 9.778746] [BT_LPM] bluesleep_init: BlueSleep Mode Driver Ver 1.3.3
[ 9.786437] [BT_LPM] bluesleep_probe: bt_hostwake gpio=203 assert=1
[ 9.786437]
[ 9.795229] [BT_LPM] bluesleep_probe: bt_wake gpio=204 assert=1
[ 9.795229]
[ 9.803532] [BT_LPM] bluesleep_probe: uart_index (1)
[ 9.803532]
[ 9.811287] init: Command 'insmod /vendor/modules/aic8800_btlpm.ko' action=persist.vendor.bluetooth_vendor=aic (/vendor/etc/init/init.wireless.bluetooth.rc:35) took 122ms and succeeded
[ 9.832066] init: Service 'exec 10 (/system/bin/gsid run-startup-tasks)' (pid 2175) exited with status 0
[ 9.843019] init: Sending signal 9 to service 'exec 10 (/system/bin/gsid run-startup-tasks)' (pid 2175) process group...
[ 9.855715] libprocessgroup: Successfully killed process cgroup uid 0 pid 2175 in 0ms
[ 9.865187] init: processing action (nonencrypted) from (/init.rc:760)
[ 9.872754] init: Could not start service 'flash_recovery' as part of class 'main': Cannot find '/system/bin/install-recovery.sh': No such file or directory
[ 10.425396] android_work: sent uevent USB_STATE=CONNECTED
[ 10.718412] configfs-gadget gadget: high-speed config #1: b
[ 10.725000] android_work: sent uevent USB_STATE=CONFIGURED
[ 10.931968] type=1400 audit(1733305005.736:16): avc: denied { write } for comm="radio_monitor" name="uevent" dev="sysfs" ino=20547 scontext=u:r:radio_monitor:s0 tcontext=u:object_r:sysfs_usb:s0 tclass=file permissive=1
[ 10.933210] input: sunxi-ir-uinput as /devices/virtual/input/input5
[ 10.961025] type=1400 audit(1733305006.426:17): avc: denied { read } for comm="multi_ir" name="sunxi_ir_protocol" dev="proc" ino=4026532136 scontext=u:r:multi_ir:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[ 10.982976] type=1400 audit(1733305006.426:17): avc: denied { read } for comm="multi_ir" name="sunxi_ir_protocol" dev="proc" ino=4026532136 scontext=u:r:multi_ir:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[ 11.004650] type=1400 audit(1733305006.426:18): avc: denied { open } for comm="multi_ir" path="/proc/sunxi_ir_protocol" dev="proc" ino=4026532136 scontext=u:r:multi_ir:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[ 12.855219] type=1400 audit(1733305006.426:18): avc: denied { open } for comm="multi_ir" path="/proc/sunxi_ir_protocol" dev="proc" ino=4026532136 scontext=u:r:multi_ir:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[ 12.861558] pvrsrvkm: loading out-of-tree module taints kernel.
[ 12.871912] audit: audit_backlog=70 > audit_backlog_limit=64
[ 12.871917] audit: audit_lost=1 audit_rate_limit=0 audit_backlog_limit=64
[ 12.871920] audit: backlog limit exceeded
[ 12.871927] audit: audit_backlog=70 > audit_backlog_limit=64
[ 12.871930] audit: audit_lost=2 audit_rate_limit=0 audit_backlog_limit=64
[ 12.871932] audit: backlog limit exceeded
[ 12.871977] audit: audit_backlog=70 > audit_backlog_limit=64
[ 12.871980] audit: audit_lost=3 audit_rate_limit=0 audit_backlog_limit=64
[ 12.871982] audit: backlog limit exceeded
[ 12.871989] audit: audit_backlog=70 > audit_backlog_limit=64
[ 12.948915] type=1400 audit(1733305008.350:19): avc: denied { open } for comm="getprop" path="/dev/__properties__/u:object_r:apexd_prop:s0" dev="tmpfs" ino=335 scontext=u:r:shell:s0 tcontext=u:object_r:apexd_prop:s0 tclass=file permissive=1
[ 12.952679] pvrsrvkm gpu: set gpu core rate:504000000 freq:504000000-950000uV dfs:0x00000001
[ 12.952684] pvrsrvkm gpu: set gpu core rate:504000000 freq:472500000-950000uV dfs:0x00000002
[ 12.952688] pvrsrvkm gpu: set gpu core rate:504000000 freq:441000000-950000uV dfs:0x00000004
[ 12.952692] pvrsrvkm gpu: set gpu core rate:252000000 freq:252000000-950000uV dfs:0x00000001
[ 12.952836] pvrsrvkm gpu: idle:1 dvfs:0 power:0 Yes mode:1 volt:950000 core:504000000
[ 12.952894] PVR_K: 2144: Read BVNC 22.102.54.38 from HW device registers
[ 12.952921] PVR_K: 2144: RGX Device registered with BVNC 22.102.54.38
[ 12.953500] pvrsrvkm gpu: opp[1/4]: (252000000 Hz, 950000 uV)
[ 12.953504] pvrsrvkm gpu: opp[2/4]: (441000000 Hz, 950000 uV)
[ 12.953508] pvrsrvkm gpu: opp[3/4]: (472500000 Hz, 950000 uV)
[ 12.953512] pvrsrvkm gpu: opp[4/4]: (504000000 Hz, 950000 uV)
[ 12.953946] pvrsrvkm gpu: Cooling: power ops not registered, not enabling cooling
[ 12.962155] [drm] Initialized pvr 1.11.5516664 20170530 on minor 0
[ 12.962538] snddaudio snddaudio0: codec: snd-soc-dummy, codec_dai: snd-soc-dummy-dai.
[ 12.962551] snddaudio snddaudio0: ASoC: CPU DAI (null) not registered
[ 12.962556] snddaudio snddaudio0: snd_soc_register_card failed
[ 13.099869] type=1400 audit(1733305008.350:19): avc: denied { open } for comm="getprop" path="/dev/__properties__/u:object_r:apexd_prop:s0" dev="tmpfs" ino=335 scontext=u:r:shell:s0 tcontext=u:object_r:apexd_prop:s0 tclass=file permissive=1
[ 13.123801] type=1400 audit(1733305008.350:20): avc: denied { getattr } for comm="getprop" path="/dev/__properties__/u:object_r:apexd_prop:s0" dev="tmpfs" ino=335 scontext=u:r:shell:s0 tcontext=u:object_r:apexd_prop:s0 tclass=file permissive=1
[ 13.148120] type=1400 audit(1733305008.350:20): avc: denied { getattr } for comm="getprop" path="/dev/__properties__/u:object_r:apexd_prop:s0" dev="tmpfs" ino=335 scontext=u:r:shell:s0 tcontext=u:object_r:apexd_prop:s0 tclass=file permissive=1
[ 13.172361] type=1400 audit(1733305008.350:21): avc: denied { read } for comm="getprop" name="u:object_r:audio_hal_prop:s0" dev="tmpfs" ino=336 scontext=u:r:shell:s0 tcontext=u:object_r:audio_hal_prop:s0 tclass=file permissive=1
[ 13.310915] PVR_K: 2135: RGX Firmware image 'rgx.fw.22.102.54.38' loaded
[ 13.397699] random: crng init done
[ 13.401504] random: 6 urandom warning(s) missed due to ratelimiting
[ 14.121847] sid_rd_ver_reg()418 - ver >= 4, soc ver:6
[ 14.875615] init: Received control message 'start' for 'bootanim' from pid: 2149 (/system/bin/surfaceflinger)
[ 14.888015] init: starting service 'bootanim'...
[ 18.747938] healthd: battery none chg=au
[ 18.901350] healthd: battery none chg=au
[ 18.913124] healthd: battery none chg=au
[ 19.155806] type=1400 audit(1733305008.460:93): avc: denied { getattr } for comm="pvrsrvctl" path="/proc/modules" dev="proc" ino=4026532050 scontext=u:r:pvr:s0 tcontext=u:object_r:proc_modules:s0 tclass=file permissive=1
[ 19.185502] type=1400 audit(1733305014.650:94): avc: denied { read } for comm="system_server" name="hctosys" dev="sysfs" ino=21117 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[ 19.207436] type=1400 audit(1733305014.650:94): avc: denied { read } for comm="system_server" name="hctosys" dev="sysfs" ino=21117 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[ 19.228997] type=1400 audit(1733305014.650:95): avc: denied { open } for comm="system_server" path="/sys/devices/platform/soc/twi3/i2c-3/3-0051/rtc/rtc0/hctosys" dev="sysfs" ino=21117 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[ 19.263276] type=1400 audit(1733305014.650:95): avc: denied { open } for comm="system_server" path="/sys/devices/platform/soc/twi3/i2c-3/3-0051/rtc/rtc0/hctosys" dev="sysfs" ino=21117 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[ 19.290205] type=1400 audit(1733305014.650:96): avc: denied { getattr } for comm="system_server" path="/sys/devices/platform/soc/twi3/i2c-3/3-0051/rtc/rtc0/hctosys" dev="sysfs" ino=21117 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[ 19.457576] init: processing action (sys.sysctl.extra_free_kbytes=*) from (/init.rc:806)
[ 20.251253] acc_open
[ 20.253717] acc_release
[ 20.540638] init: Received control message 'interface_start' for 'android.hardware.wifi@1.0::IWifi/default' from pid: 1990 (/system/bin/hwservicemanager)
[ 20.559647] init: starting service 'vendor.wifi_hal_legacy'...
[ 20.574137] init: Received control message 'interface_start' for 'android.hardware.wifi@1.0::IWifi/default' from pid: 1990 (/system/bin/hwservicemanager)
[ 20.749276] libphy: gmac0: probed
[ 20.790992] sunxi-gmac gmac0 eth0: eth0: Type(7) PHY ID 001cc916 at 0 IRQ poll (gmac0-0:00)
[ 20.800897] snddaudio snddaudio0: codec: snd-soc-dummy, codec_dai: snd-soc-dummy-dai.
[ 20.800912] snddaudio snddaudio0: ASoC: CPU DAI (null) not registered
[ 20.800917] snddaudio snddaudio0: snd_soc_register_card failed
[ 21.896241] AICWFDBG(LOGTRACE) >>> rwnx_mod_init()
[ 21.901709] AICWFDBG(LOGINFO) rwnx v6.4.3.0 - - 241c091M (master)
[ 21.908735] AICWFDBG(LOGINFO) RELEASE_DATE:2024_0712_e2a932c1
[ 21.915608] AICWFDBG(LOGTRACE) rwnx_init_cmd_array Enter
[ 21.921875] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[0]:ffffff8000e2c900
[ 21.930461] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[1]:ffffff8000e2c960
[ 21.938967] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[2]:ffffff8000e2c9c0
[ 21.947524] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[3]:ffffff8000e2ca20
[ 21.956035] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[4]:ffffff8000e2ca80
[ 21.964617] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[5]:ffffff8000e2cae0
[ 21.973122] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[6]:ffffff8000e2cb40
[ 21.981784] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[7]:ffffff8000e2cba0
[ 21.990301] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[8]:ffffff8000e2cc00
[ 21.998870] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[9]:ffffff8000e2cc60
[ 22.007378] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[10]:ffffff8000e2ccc0
[ 22.016036] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[11]:ffffff8000e2cd20
[ 22.024636] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[12]:ffffff8000e2cd80
[ 22.033276] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[13]:ffffff8000e2cde0
[ 22.041902] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[14]:ffffff8000e2ce40
[ 22.050550] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[15]:ffffff8000e2cea0
[ 22.059115] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[16]:ffffff8000e2cf00
[ 22.067726] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[17]:ffffff8000e2cf60
[ 22.076310] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[18]:ffffff8000e2cfc0
[ 22.084989] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[19]:ffffff8000e2d020
[ 22.093661] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[20]:ffffff8000e2d080
[ 22.102266] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[21]:ffffff8000e2d0e0
[ 22.110851] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[22]:ffffff8000e2d140
[ 22.119436] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[23]:ffffff8000e2d1a0
[ 22.128009] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[24]:ffffff8000e2d200
[ 22.136582] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[25]:ffffff8000e2d260
[ 22.145178] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[26]:ffffff8000e2d2c0
[ 22.153835] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[27]:ffffff8000e2d320
[ 22.162498] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[28]:ffffff8000e2d380
[ 22.171108] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[29]:ffffff8000e2d3e0
[ 22.179750] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[30]:ffffff8000e2d440
[ 22.188383] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[31]:ffffff8000e2d4a0
[ 22.197058] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[32]:ffffff8000e2d500
[ 22.205740] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[33]:ffffff8000e2d560
[ 22.214389] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[34]:ffffff8000e2d5c0
[ 22.223056] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[35]:ffffff8000e2d620
[ 22.231944] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[36]:ffffff8000e2d680
[ 22.240589] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[37]:ffffff8000e2d6e0
[ 22.249266] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[38]:ffffff8000e2d740
[ 22.257904] AICWFDBG(LOGTRACE) rwnx_init_cmd_array cmd_queue[39]:ffffff8000e2d7a0
[ 22.266573] AICWFDBG(LOGTRACE) rwnx_init_cmd_array Exit
[ 22.272681] aicbsp: aicbsp_set_subsys, subsys: AIC_WIFI, state to: 1
[ 22.279923] aicbsp: aicbsp_set_subsys, power state change to 1 dure to AIC_WIFI
[ 22.288171] aicbsp: aicbsp_platform_power_on
[ 22.292993] sunxi-wlan soc@03000000:wlan@0: bus_index: 1
[ 22.406805] sunxi-wlan soc@03000000:wlan@0: check wlan wlan_power voltage: 1900000
[ 22.480711] sunxi-mmc sdc1: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 22.511126] sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 22.538570] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 22.545360] sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
[ 22.555640] type=1400 audit(1733305014.650:96): avc: denied { getattr } for comm="system_server" path="/sys/devices/platform/soc/twi3/i2c-3/3-0051/rtc/rtc0/hctosys" dev="sysfs" ino=21117 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
[ 22.557299] sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 22.568263] sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[ 22.598825] sunxi-mmc sdc1: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing SD-HS(SDR25) dt B
[ 22.598942] sunxi-mmc sdc1: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 1 timing SD-HS(SDR25) dt B
[ 22.599150] sunxi-mmc sdc1: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 4 timing SD-HS(SDR25) dt B
[ 22.601324] mmc2: new high speed SDIO card at address 390b
[ 22.612677] snddaudio snddaudio0: codec: snd-soc-dummy, codec_dai: snd-soc-dummy-dai.
[ 22.612693] snddaudio snddaudio0: ASoC: CPU DAI (null) not registered
[ 22.612698] snddaudio snddaudio0: snd_soc_register_card failed
[ 22.624319] snddaudio snddaudio0: codec: snd-soc-dummy, codec_dai: snd-soc-dummy-dai.
[ 22.624334] snddaudio snddaudio0: ASoC: CPU DAI (null) not registered
[ 22.624339] snddaudio snddaudio0: snd_soc_register_card failed
[ 22.632664] aicbsp: aicbsp_sdio_probe:1 vid:0xC8A1 did:0x0082
[ 22.632751] aicbsp: aicbsp_sdio_probe:2 vid:0xC8A1 did:0x0182
[ 22.632754] aicbsp: aicbsp_sdio_probe after replace:1
[ 22.632759] AICWFDBG(LOGINFO) aicwf_sdio_chipmatch USE AIC8800D80
[ 22.632764] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz
[ 22.632767] aicbsp: aicwf_sdio_reg_init
[ 22.633947] snddaudio snddaudio0: codec: snd-soc-dummy, codec_dai: snd-soc-dummy-dai.
[ 22.633962] snddaudio snddaudio0: ASoC: CPU DAI (null) not registered
[ 22.633967] snddaudio snddaudio0: snd_soc_register_card failed
[ 22.636187] AICWFDBG(LOGINFO) aicbsp: aicbsp_driver_fw_init, chip rev: 7
[ 22.636195] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fw_patch_table_8800d80_u02.bin
[ 22.639597] file md5:313babc74ae8b1d44dc0e0a4c4c73686
[ 22.639707] rwnx_plat_bin_fw_upload_android
[ 22.639712] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fw_adid_8800d80_u02.bin
[ 22.640442] file md5:f546881a81b960d89a672578eb45a809
[ 22.641951] rwnx_plat_bin_fw_upload_android
[ 22.641958] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fw_patch_8800d80_u02.bin
[ 22.644338] file md5:8e83d7b94620c2a5444b2aaaab1a510d
[ 22.849795] type=1400 audit(1733305018.050:97): avc: denied { getattr } for comm="webview_zygote" path="/data/data/com.android.webview" dev="mmcblk0p17" ino=1068 scontext=u:r:webview_zygote:s0 tcontext=u:object_r:app_data_file:s0:c99,c256,c512,c768 tclass=dir permissive=1
[ 23.706006] axp803_usb_power: current limit setted: usb pc type
[ 23.706006]
[ 24.269910] aicbt_patch_table_load bt btmode[3]:5
[ 24.281183] aicbt_patch_table_load bt uart_baud[3]:115200
[ 24.297300] aicbt_patch_table_load bt uart_flowctrl[3]:1
[ 24.314325] aicbt_patch_table_load bt lpm_enable[3]:0
[ 24.424044] aicbt_patch_table_load bt tx_pwr[3]:28463
[ 24.462749] aicbsp: bt patch version: - Jul 11 2024 10:38:54 - git 73d2ce5
[ 24.470653] rwnx_plat_bin_fw_upload_android
[ 24.478138] rwnx_load_firmware :firmware path = /vendor/etc/firmware/fmacfw_8800d80_u02.bin
[ 24.510099] file md5:b39016c6531b5a0f6f5012eca50bc258
[ 24.706566] rd_version_val=06090101
[ 24.731561] AICWFDBG(LOGDEBUG) aicwf_sdio_probe:1
[ 24.737028] AICWFDBG(LOGDEBUG) Class=7
[ 24.741367] AICWFDBG(LOGDEBUG) sdio vendor ID: 0xc8a1
[ 24.751448] AICWFDBG(LOGDEBUG) sdio device ID: 0x0082
[ 24.757303] AICWFDBG(LOGDEBUG) Function#: 1
[ 24.762144] AICWFDBG(LOGINFO) aicwf_sdio_chipmatch USE AIC8800D80
[ 24.763909] aicbsp: sdio_err:<aicwf_sdio_bus_pwrctl,1402>: bus down
[ 24.776501] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz
[ 24.784426] aicsdio: aicwf_sdio_reg_init
[ 24.794027] AICWFDBG(LOGINFO) sdio ready
[ 24.798585] aicwf_prealloc_init enter
[ 24.803127] pre alloc rxbuff list len: 30
[ 24.807700] aicbsp: aicbsp_resv_mem_alloc_skb, alloc resv_mem_txdata succuss, id: 0, size: 98304
[ 24.819584] AICWFDBG(LOGINFO) sdio_bustx_thread the policy of current thread is:1
[ 24.828090] AICWFDBG(LOGINFO) sdio_bustx_thread the rt_priority of current thread is:1
[ 24.828163] AICWFDBG(LOGINFO) sdio_busrx_thread the policy of current thread is:1
[ 24.828165] AICWFDBG(LOGINFO) sdio_busrx_thread the rt_priority of current thread is:1
[ 24.828167] AICWFDBG(LOGINFO) sdio_busrx_thread the current pid is:3331
[ 24.828496] AICWFDBG(LOGTRACE) >>> rwnx_platform_init()
[ 24.828500] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_init()
[ 24.828628] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz
[ 24.828643] AICWFDBG(LOGINFO) rwnx_cfg80211_init sizeof(struct rwnx_hw):17784
[ 24.828777] AICWFDBG(LOGTRACE) >>> rwnx_init_aic()
[ 24.828784] AICWFDBG(LOGTRACE) >>> rwnx_cmd_mgr_init()
[ 24.833600] tcp_ack_init
[ 24.833610] AICWFDBG(LOGINFO) aicwf_prealloc_txq_alloc size is diff will to be kzalloc
[ 24.833634] AICWFDBG(LOGINFO) aicwf_prealloc_txq_alloc txq kzalloc successful
[ 24.845622] AICWFDBG(LOGTRACE) >>> rwnx_send_dbg_mem_read_req()
[ 24.845629] AICWFDBG(LOGTRACE) rwnx_send_msg (1025)DBG_MEM_READ_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 24.845638] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 24.947619] AICWFDBG(LOGINFO) sdio_bustx_thread the current pid is:3330
[ 24.955470] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x401
[ 24.962356] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 24.970760] AICWFDBG(LOGTRACE) >>> rwnx_send_dbg_mem_read_req()
[ 24.977479] AICWFDBG(LOGTRACE) rwnx_send_msg (1025)DBG_MEM_READ_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 24.990279] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 24.999945] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x401
[ 25.006889] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 25.015037] AICWFDBG(LOGINFO) FDRV chip_id=7, chip_sub_id=2!!
[ 25.021566] AICWFDBG(LOGTRACE) >>> rwnx_platform_on()
[ 25.027295] AICWFDBG(LOGINFO) userconfig file path:aic_userconfig_8800d80.txt
[ 25.035555] AICWFDBG(LOGINFO) ### Load file aic_userconfig_8800d80.txt
[ 25.042980] AICWFDBG(LOGINFO) rwnx_load_firmware :firmware path = /vendor/etc/firmware/aic_userconfig_8800d80.txt
[ 25.056857] AICWFDBG(LOGINFO) file md5:35c8e99f3edd34d2a39bc9920e1da494
[ 25.064702] AICWFDBG(LOGINFO) ### Load file done: aic_userconfig_8800d80.txt, size=2683
[ 25.073751] AICWFDBG(LOGINFO) rwnx_plat_userconfig_parsing3: AIC USERCONFIG 2022/0803/1707
[ 25.083501] AICWFDBG(LOGINFO) rwnx_plat_userconfig_parsing3: txpwr_lvl
[ 25.090940] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=enable value=1
[ 25.099694] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_1m_2g4 value=18
[ 25.109518] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_2m_2g4 value=18
[ 25.119728] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_5m5_2g4 value=18
[ 25.129802] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_11m_2g4 value=18
[ 25.139710] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_6m_2g4 value=18
[ 25.149479] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_9m_2g4 value=18
[ 25.159410] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_12m_2g4 value=18
[ 25.169533] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_18m_2g4 value=18
[ 25.179603] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_24m_2g4 value=16
[ 25.189505] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_36m_2g4 value=16
[ 25.199409] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_48m_2g4 value=15
[ 25.209275] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11b_11ag_54m_2g4 value=15
[ 25.220404] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs0_2g4 value=18
[ 25.230717] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs1_2g4 value=18
[ 25.241127] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs2_2g4 value=18
[ 25.251502] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs3_2g4 value=18
[ 25.261535] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs4_2g4 value=16
[ 25.272512] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs5_2g4 value=16
[ 25.283110] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs6_2g4 value=15
[ 25.293120] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs7_2g4 value=15
[ 25.303469] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs8_2g4 value=14
[ 25.313727] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs9_2g4 value=14
[ 25.323720] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs0_2g4 value=18
[ 25.333625] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs1_2g4 value=18
[ 25.343232] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs2_2g4 value=18
[ 25.353204] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs3_2g4 value=18
[ 25.363165] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs4_2g4 value=16
[ 25.372793] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs5_2g4 value=16
[ 25.382513] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs6_2g4 value=15
[ 25.392110] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs7_2g4 value=15
[ 25.401674] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs8_2g4 value=14
[ 25.411246] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs9_2g4 value=14
[ 25.421068] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs10_2g4 value=13
[ 25.430970] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs11_2g4 value=13
[ 25.440620] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11a_6m_5g value=18
[ 25.449834] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11a_9m_5g value=18
[ 25.459007] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11a_12m_5g value=18
[ 25.468300] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11a_18m_5g value=18
[ 25.477567] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11a_24m_5g value=16
[ 25.486902] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11a_36m_5g value=16
[ 25.496162] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11a_48m_5g value=15
[ 25.505715] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11a_54m_5g value=15
[ 25.515138] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs0_5g value=18
[ 25.525086] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs1_5g value=18
[ 25.534969] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs2_5g value=18
[ 25.544822] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs3_5g value=18
[ 25.554720] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs4_5g value=16
[ 25.564632] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs5_5g value=16
[ 25.574486] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs6_5g value=15
[ 25.584599] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs7_5g value=15
[ 25.594487] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs8_5g value=14
[ 25.604521] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11n_11ac_mcs9_5g value=14
[ 25.614394] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs0_5g value=18
[ 25.623939] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs1_5g value=18
[ 25.633425] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs2_5g value=18
[ 25.642876] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs3_5g value=18
[ 25.652358] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs4_5g value=16
[ 25.661808] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs5_5g value=16
[ 25.671574] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs6_5g value=14
[ 25.681196] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs7_5g value=14
[ 25.690649] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs8_5g value=13
[ 25.700178] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs9_5g value=13
[ 25.709681] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs10_5g value=12
[ 25.719276] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_11ax_mcs11_5g value=12
[ 25.728855] AICWFDBG(LOGINFO) rwnx_plat_userconfig_parsing3: txpwr_lvl_adj
[ 25.736701] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_enable value=0
[ 25.745890] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_2g4_chan_1_4 value=0
[ 25.755954] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_2g4_chan_5_9 value=0
[ 25.765893] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_2g4_chan_10_13 value=0
[ 25.775922] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_5g_chan_42 value=0
[ 25.785511] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_5g_chan_58 value=0
[ 25.795097] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_5g_chan_106 value=0
[ 25.805798] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_5g_chan_122 value=0
[ 25.816543] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_5g_chan_138 value=0
[ 25.826264] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=lvl_adj_5g_chan_155 value=0
[ 25.836295] AICWFDBG(LOGINFO) rwnx_plat_userconfig_parsing3: txpwr_loss
[ 25.843858] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=loss_enable value=0
[ 25.853098] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=loss_value value=2
[ 25.861949] AICWFDBG(LOGINFO) rwnx_plat_userconfig_parsing3: txpwr_ofst
[ 25.869786] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_enable value=0
[ 25.878693] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_2g4_11b_chan_1_4 value=0
[ 25.888638] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_2g4_11b_chan_5_9 value=0
[ 25.898525] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_2g4_11b_chan_10_13 value=0
[ 25.908681] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_2g4_ofdm_highrate_chan_1_4 value=0
[ 25.919831] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_2g4_ofdm_highrate_chan_5_9 value=0
[ 25.930853] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_2g4_ofdm_highrate_chan_10_13 value=0
[ 25.942179] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_2g4_ofdm_lowrate_chan_1_4 value=0
[ 25.953372] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_2g4_ofdm_lowrate_chan_5_9 value=0
[ 25.964287] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_2g4_ofdm_lowrate_chan_10_13 value=0
[ 25.975544] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_lowrate_chan_42 value=0
[ 25.986474] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_lowrate_chan_58 value=0
[ 25.997227] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_lowrate_chan_106 value=0
[ 26.008148] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_lowrate_chan_122 value=0
[ 26.018994] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_lowrate_chan_138 value=0
[ 26.029699] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_lowrate_chan_155 value=0
[ 26.040368] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_highrate_chan_42 value=0
[ 26.051271] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_highrate_chan_58 value=0
[ 26.062001] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_highrate_chan_106 value=0
[ 26.073681] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_highrate_chan_122 value=0
[ 26.084875] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_highrate_chan_138 value=0
[ 26.096620] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_highrate_chan_155 value=0
[ 26.107409] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_midrate_chan_42 value=0
[ 26.118258] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_midrate_chan_58 value=0
[ 26.128821] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_midrate_chan_106 value=0
[ 26.139733] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_midrate_chan_122 value=0
[ 26.150469] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_midrate_chan_138 value=0
[ 26.161295] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=ofst_5g_ofdm_midrate_chan_155 value=0
[ 26.172284] AICWFDBG(LOGINFO) rwnx_plat_userconfig_parsing3: xtal cap
[ 26.179800] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=xtal_enable value=0
[ 26.188739] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=xtal_cap value=24
[ 26.197415] AICWFDBG(LOGINFO) rwnx_plat_nvram_set_value_v3:command=xtal_cap_fine value=31
[ 26.206611] AICWFDBG(LOGINFO) userconfig download complete
[ 26.206611]
[ 26.214481] AICWFDBG(LOGTRACE) rwnx_send_msg (124)MM_SET_STACK_START_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 26.226285] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 26.235464] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x7c
[ 26.242323] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 26.250567] AICWFDBG(LOGINFO) is 5g support = 1, vendor_info = 0x21
[ 26.257597] AICWFDBG(LOGTRACE) rwnx_send_msg (129)MM_GET_FW_VERSION_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 26.269473] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 26.278245] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x81
[ 26.285041] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 26.293124] AICWFDBG(LOGINFO) Firmware Version: la Jul 03 2024 15:25:18 - g21266be
[ 26.302741] AICWFDBG(LOGTRACE) >>> rwnx_send_txpwr_lvl_v3_req()
[ 26.309433] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:enable:1
[ 26.317379] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_1m_2g4:18
[ 26.326569] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_2m_2g4:18
[ 26.336288] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_5m5_2g4:18
[ 26.345895] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_11m_2g4:18
[ 26.355488] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_6m_2g4:18
[ 26.364762] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_9m_2g4:18
[ 26.373943] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_12m_2g4:18
[ 26.383459] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_18m_2g4:18
[ 26.392785] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_24m_2g4:16
[ 26.402399] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_36m_2g4:16
[ 26.411953] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_48m_2g4:15
[ 26.421604] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11b_11ag_54m_2g4:15
[ 26.430977] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs0_2g4:18
[ 26.440677] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs1_2g4:18
[ 26.450414] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs2_2g4:18
[ 26.460099] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs3_2g4:18
[ 26.469918] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs4_2g4:16
[ 26.479480] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs5_2g4:16
[ 26.489182] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs6_2g4:15
[ 26.498908] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs7_2g4:15
[ 26.499284] init: processing action (sys.boot_completed=1) from (/init.rc:800)
[ 26.499374] init: processing action (sys.boot_completed=1) from (/vendor/etc/init/hw/init.device.rc:54)
[ 26.502461] init: Command 'write /sys/class/gpio/export 66' action=sys.boot_completed=1 (/vendor/etc/init/hw/init.device.rc:60) took 0ms and failed: Unable to write to file '/sys/class/gpio/export': Unable to write file contents: Device or resource busy
[ 26.503255] init: Command 'write /sys/class/gpio/export 67' action=sys.boot_completed=1 (/vendor/etc/init/hw/init.device.rc:61) took 0ms and failed: Unable to write to file '/sys/class/gpio/export': Unable to write file contents: Device or resource busy
[ 26.506224] init: Command 'write /sys/class/gpio/export 68' action=sys.boot_completed=1 (/vendor/etc/init/hw/init.device.rc:70) took 0ms and failed: Unable to write to file '/sys/class/gpio/export': Unable to write file contents: Device or resource busy
[ 26.511515] init: Command 'write /sys/class/gpio/export 76' action=sys.boot_completed=1 (/vendor/etc/init/hw/init.device.rc:71) took 5ms and failed: Unable to write to file '/sys/class/gpio/export': Unable to write file contents: Device or resource busy
[ 26.519515] init: processing action (sys.boot_completed=1) from (/system/etc/init/aw_thermal.rc:10)
[ 26.519658] init: starting service 'aw_thermal'...
[ 26.525641] init: processing action (sys.boot_completed=1 && sys.logbootcomplete=1) from (/system/etc/init/bootstat.rc:78)
[ 26.526435] init: starting service 'exec 11 (/system/bin/bootstat --record_boot_complete --record_boot_reason --record_time_since_factory_reset -l)'...
[ 26.533575] sdcardfs version 2.0
[ 26.533582] sdcardfs: dev_name -> /data/media
[ 26.533585] sdcardfs: options -> fsuid=1023,fsgid=1023,multiuser,derive_gid,default_normal,unshared_obb,mask=6,userid=0,gid=1015
[ 26.533589] sdcardfs: mnt -> ffffffc072e741e0
[ 26.533668] sdcardfs: mounted on top of /data/media type f2fs
[ 26.534809] Remount options were mask=23,gid=9997 for vfsmnt ffffffc072e75c20.
[ 26.534822] sdcardfs : options - debug:1
[ 26.534825] sdcardfs : options - gid:9997
[ 26.534827] sdcardfs : options - mask:23
[ 26.535273] Remount options were mask=7,gid=9997 for vfsmnt ffffffc07382ec60.
[ 26.535278] sdcardfs : options - debug:1
[ 26.535280] sdcardfs : options - gid:9997
[ 26.535282] sdcardfs : options - mask:7
[ 26.535747] Remount options were mask=7,gid=9997 for vfsmnt ffffffc073718020.
[ 26.535752] sdcardfs : options - debug:1
[ 26.535754] sdcardfs : options - gid:9997
[ 26.535756] sdcardfs : options - mask:7
[ 26.773429] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs8_2g4:14
[ 26.782804] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs9_2g4:14
[ 26.792116] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs0_2g4:18
[ 26.801051] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs1_2g4:18
[ 26.809971] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs2_2g4:18
[ 26.818894] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs3_2g4:18
[ 26.827886] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs4_2g4:16
[ 26.836922] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs5_2g4:16
[ 26.845962] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs6_2g4:15
[ 26.855006] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs7_2g4:15
[ 26.863999] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs8_2g4:14
[ 26.872974] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs9_2g4:14
[ 26.881947] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs10_2g4:13
[ 26.891005] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs11_2g4:13
[ 26.900091] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_1m_5g:-128
[ 26.908887] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_2m_5g:-128
[ 26.917649] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_5m5_5g:-128
[ 26.926532] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_11m_5g:-128
[ 26.935431] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_6m_5g:18
[ 26.944003] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_9m_5g:18
[ 26.952594] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_12m_5g:18
[ 26.961336] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_18m_5g:18
[ 26.970042] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_24m_5g:16
[ 26.978723] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_36m_5g:16
[ 26.987384] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_48m_5g:15
[ 26.996052] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11a_54m_5g:15
[ 27.004721] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs0_5g:18
[ 27.013982] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs1_5g:18
[ 27.023246] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs2_5g:18
[ 27.032496] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs3_5g:18
[ 27.041794] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs4_5g:16
[ 27.051107] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs5_5g:16
[ 27.060373] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs6_5g:15
[ 27.069653] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs7_5g:15
[ 27.078980] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs8_5g:14
[ 27.088260] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11n_11ac_mcs9_5g:14
[ 27.097498] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs0_5g:18
[ 27.106405] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs1_5g:18
[ 27.115282] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs2_5g:18
[ 27.124151] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs3_5g:18
[ 27.133013] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs4_5g:16
[ 27.141891] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs5_5g:16
[ 27.150745] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs6_5g:14
[ 27.159673] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs7_5g:14
[ 27.168616] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs8_5g:13
[ 27.177488] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs9_5g:13
[ 27.186384] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs10_5g:12
[ 27.195363] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_v3_in_fdrv:lvl_11ax_mcs11_5g:12
[ 27.204348] AICWFDBG(LOGINFO) get_userconfig_txpwr_loss:loss_enable:0
[ 27.211710] AICWFDBG(LOGINFO) get_userconfig_txpwr_loss:loss_value:2
[ 27.218924] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:enable:1
[ 27.225926] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_1m_2g4:18
[ 27.234204] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_2m_2g4:18
[ 27.242552] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_5m5_2g4:18
[ 27.251302] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_11m_2g4:18
[ 27.259788] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_6m_2g4:18
[ 27.268667] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_9m_2g4:18
[ 27.277025] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_12m_2g4:18
[ 27.286033] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_18m_2g4:18
[ 27.294974] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_24m_2g4:16
[ 27.304009] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_36m_2g4:16
[ 27.313037] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_48m_2g4:15
[ 27.321476] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11b_11ag_54m_2g4:15
[ 27.329940] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs0_2g4:18
[ 27.338537] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs1_2g4:18
[ 27.347120] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs2_2g4:18
[ 27.355688] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs3_2g4:18
[ 27.364254] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs4_2g4:16
[ 27.372935] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs5_2g4:16
[ 27.381913] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs6_2g4:15
[ 27.391336] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs7_2g4:15
[ 27.399957] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs8_2g4:14
[ 27.409037] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs9_2g4:14
[ 27.418246] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs0_2g4:18
[ 27.432537] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs1_2g4:18
[ 27.441027] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs2_2g4:18
[ 27.449928] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs3_2g4:18
[ 27.458621] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs4_2g4:16
[ 27.468676] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs5_2g4:16
[ 27.480474] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs6_2g4:15
[ 27.488836] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs7_2g4:15
[ 27.497722] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs8_2g4:14
[ 27.506475] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs9_2g4:14
[ 27.515088] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs10_2g4:13
[ 27.524112] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs11_2g4:13
[ 27.534372] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_1m_5g:-128
[ 27.542857] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_2m_5g:-128
[ 27.551450] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_5m5_5g:-128
[ 27.559590] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_11m_5g:-128
[ 27.569035] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_6m_5g:18
[ 27.576980] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_9m_5g:18
[ 27.588499] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_12m_5g:18
[ 27.596894] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_18m_5g:18
[ 27.605860] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_24m_5g:16
[ 27.617934] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_36m_5g:16
[ 27.631156] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_48m_5g:15
[ 27.639608] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11a_54m_5g:15
[ 27.647935] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs0_5g:18
[ 27.656359] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs1_5g:18
[ 27.665382] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs2_5g:18
[ 27.674509] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs3_5g:18
[ 27.683530] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs4_5g:16
[ 27.692056] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs5_5g:16
[ 27.701079] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs6_5g:15
[ 27.709519] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs7_5g:15
[ 27.718406] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs8_5g:14
[ 27.726847] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11n_11ac_mcs9_5g:14
[ 27.735655] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs0_5g:18
[ 27.743715] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs1_5g:18
[ 27.752478] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs2_5g:18
[ 27.760560] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs3_5g:18
[ 27.769230] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs4_5g:16
[ 27.777311] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs5_5g:16
[ 27.785359] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs6_5g:14
[ 27.794336] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs7_5g:14
[ 27.815144] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs8_5g:13
[ 27.823406] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs9_5g:13
[ 27.831709] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs10_5g:12
[ 27.840035] AICWFDBG(LOGINFO) rwnx_send_txpwr_lvl_v3_req:lvl_11ax_mcs11_5g:12
[ 27.848582] AICWFDBG(LOGTRACE) rwnx_send_msg (120)MM_SET_TXPWR_IDX_LVL_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 27.861160] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 27.870669] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x78
[ 27.877440] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 27.892890] AICWFDBG(LOGTRACE) >>> rwnx_send_txpwr_lvl_adj_req()
[ 27.914340] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:enable:0
[ 27.922786] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:lvl_adj_2g4_chan_1_4:0
[ 27.934483] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:lvl_adj_2g4_chan_5_9:0
[ 27.944282] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:lvl_adj_2g4_chan_10_13:0
[ 27.956352] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:lvl_adj_5g_chan_42:0
[ 27.967430] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:lvl_adj_5g_chan_58:0
[ 27.977049] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:lvl_adj_5g_chan_106:0
[ 28.013963] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:lvl_adj_5g_chan_122:0
[ 28.028935] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:lvl_adj_5g_chan_138:0
[ 28.038452] AICWFDBG(LOGINFO) get_userconfig_txpwr_lvl_adj_in_fdrv:lvl_adj_5g_chan_155:0
[ 28.048426] AICWFDBG(LOGTRACE) >>> rwnx_msg_free()
[ 28.057273] AICWFDBG(LOGTRACE) >>> rwnx_send_txpwr_ofst2x_req()
[ 28.063939] AICWFDBG(LOGINFO) get_userconfig_txpwr_ofst2x_in_fdrv:enable :0
[ 28.089546] AICWFDBG(LOGINFO) pwrofst2x 2.4g: [0]:11b, [1]:ofdm_highrate, [2]:ofdm_lowrate
chan= 1-4 5-9 10-13AICWFDBG(LOGINFO)
[0] =AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO)
[1] =AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO)
[2] =AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO)
pwrofst2x 5g: [0]:ofdm_lowrate, [1]:ofdm_highrate, [2]:ofdm_midrate
chan= 36-50 51-64 98-114 115-130 131-146 147-166AICWFDBG(LOGINFO)
[0] =AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO)
[1] =AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO)
[2] =AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO) 0AICWFDBG(LOGINFO)
[ 28.195388] AICWFDBG(LOGINFO) rwnx_send_txpwr_ofst2x_req:Do not use txpwr_ofst2x
[ 28.204254] AICWFDBG(LOGTRACE) >>> rwnx_msg_free()
[ 28.209705] AICWFDBG(LOGTRACE) >>> rwnx_send_rf_calib_req()
[ 28.216214] AICWFDBG(LOGINFO) get_userconfig_xtal_cap:enable :0
[ 28.223595] AICWFDBG(LOGINFO) get_userconfig_xtal_cap:xtal_cap :0
[ 28.230968] AICWFDBG(LOGINFO) get_userconfig_xtal_cap:xtal_cap_fine:0
[ 28.238289] AICWFDBG(LOGTRACE) rwnx_send_msg (106)MM_SET_RF_CALIB_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 28.249880] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 28.416672] BOOTEVENT: 28416.656140: OFF
[ 29.047710] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x6a
[ 29.054587] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.062952] AICWFDBG(LOGTRACE) >>> rwnx_send_get_macaddr_req()
[ 29.070349] AICWFDBG(LOGTRACE) rwnx_send_msg (116)MM_GET_MAC_ADDR_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 29.083528] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 29.093940] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x74
[ 29.102272] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.114245] AICWFDBG(LOGINFO) get macaddr: 40:9c:a7:38:78:54
[ 29.121520] AICWFDBG(LOGTRACE) >>> rwnx_send_reset()
[ 29.127238] AICWFDBG(LOGTRACE) rwnx_send_msg (1)MM_RESET_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 29.138165] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 29.147666] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1
[ 29.154510] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.162541] AICWFDBG(LOGTRACE) >>> rwnx_send_version_req()
[ 29.168870] AICWFDBG(LOGTRACE) rwnx_send_msg (5)MM_VERSION_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 29.180147] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 29.189087] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x5
[ 29.195847] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.203917] AICWFDBG(LOGTRACE) >>> rwnx_set_vers()
[ 29.209309] AICWFDBG(LOGTRACE) >>> rwnx_send_me_config_req()
[ 29.215710] ieee80211 phy0: HT supp 1, VHT supp 1, HE supp 0
[ 29.222050] AICWFDBG(LOGTRACE) rwnx_send_msg (5121)ME_CONFIG_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 29.233076] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 29.241936] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1401
[ 29.248930] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.257601] AICWFDBG(LOGTRACE) >>> rwnx_send_me_chan_config_req()
[ 29.264479] AICWFDBG(LOGTRACE) rwnx_send_msg (5123)ME_CHAN_CONFIG_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 29.280709] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 29.289827] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1403
[ 29.296909] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.305842] AICWFDBG(LOGINFO) getRegdomainFromRwnxDB set ccode:00
[ 29.314369] AICWFDBG(LOGINFO) rwnx_get_countrycode_channels support channel:1 2 3 4 5 6 7 8 9 10 11 12 13 14 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 144 149 153 157 161 165
[ 29.334724] ieee80211 phy0:
[ 29.334724] *******************************************************
[ 29.334724] ** CAUTION: USING PERMISSIVE CUSTOM REGULATORY RULES **
[ 29.334724] *******************************************************
[ 29.358992] AICWFDBG(LOGTRACE) >>> rwnx_send_me_chan_config_req()
[ 29.366015] AICWFDBG(LOGTRACE) rwnx_send_msg (5123)ME_CHAN_CONFIG_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 29.377569] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 29.386757] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1403
[ 29.393983] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.401981] AICWFDBG(LOGTRACE) >>> rwnx_dbgfs_register()
[ 29.408710] AICWFDBG(LOGINFO) rwnx_interface_add: wlan%d, 2, 10
[ 29.415649] AICWFDBG(LOGINFO) interface add:40 9c a7 38 78 54
[ 29.477736] get_txpwr_max:txpwr_max:18
[ 29.484661] AICWFDBG(LOGINFO) New interface create wlan0
[ 29.491859] snddaudio snddaudio0: codec: snd-soc-dummy, codec_dai: snd-soc-dummy-dai.
[ 29.502313] snddaudio snddaudio0: ASoC: CPU DAI (null) not registered
[ 29.510906] snddaudio snddaudio0: snd_soc_register_card failed
[ 29.698780] capability: warning: `wpa_supplicant' uses 32-bit capabilities (legacy support in use)
[ 29.762485] apexd: Can't open /product/apex for reading : No such file or directory
[ 29.765872] AICWFDBG(LOGTRACE) >>> rwnx_open()
[ 29.765877] AICWFDBG(LOGTRACE) >>> rwnx_send_start()
[ 29.765883] AICWFDBG(LOGTRACE) rwnx_send_msg (3)MM_START_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 29.765893] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 29.771744] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x3
[ 29.771779] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.771785] AICWFDBG(LOGTRACE) >>> rwnx_send_coex_req()
[ 29.771791] AICWFDBG(LOGTRACE) rwnx_send_msg (102)MM_SET_COEX_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 29.771796] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 29.772026] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x66
[ 29.773007] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.773015] AICWFDBG(LOGDEBUG) rwnx_open rwnx_vif->drv_flags:4
[ 29.773018] AICWFDBG(LOGTRACE) >>> rwnx_send_add_if()
[ 29.773023] AICWFDBG(LOGTRACE) rwnx_send_msg (7)MM_ADD_IF_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 29.773031] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 29.783704] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x7
[ 29.783907] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 29.783913] AICWFDBG(LOGDEBUG) rwnx_open sta create vif in rwnx_hw->vif_table[0]
[ 29.860772] get_txpwr_max:txpwr_max:18
[ 29.960084] get_txpwr_max:txpwr_max:18
[ 29.965353] get_txpwr_max:txpwr_max:18
[ 29.972112] get_txpwr_max:txpwr_max:18
[ 29.977145] get_txpwr_max:txpwr_max:18
[ 29.985292] get_txpwr_max:txpwr_max:18
[ 30.054573] rwnx_virtual_interface_add: 10, p2p-dev-wlan0
[ 30.060639] rwnx_virtual_interface_add, ifname=p2p-dev-wlan0, wdev=ffffffc04eabe018, vif_idx=1
[ 30.070623] p2p dev addr=40 9c a7 38 78 55
[ 30.075501] get_txpwr_max:txpwr_max:18
[ 30.080156] get_txpwr_max:txpwr_max:18
[ 30.091680] get_txpwr_max:txpwr_max:18
[ 30.107030] get_txpwr_max:txpwr_max:18
[ 30.125679] get_txpwr_max:txpwr_max:18
[ 30.176831] get_txpwr_max:txpwr_max:18
[ 30.193734] get_txpwr_max:txpwr_max:18
[ 30.204523] get_txpwr_max:txpwr_max:18
[ 30.213634] P2P interface started
[ 30.381214] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 30.393944] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 30.403707] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "BTCOEXSCAN-STOP" on wlan0
[ 30.413793] AICWFDBG(LOGINFO) cmd = 35313
[ 30.420948] AICWFDBG(LOGINFO) buf_size=4096
[ 30.427579] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 30.437580] AICWFDBG(LOGERROR) Unknown command 'BTCOEXSCAN-STOP'
[ 30.455676] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 30.460476] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 30.466252] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "RXFILTER-STOP" on wlan0
[ 30.475808] AICWFDBG(LOGINFO) cmd = 35313
[ 30.480437] AICWFDBG(LOGINFO) buf_size=4096
[ 30.485160] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 30.491077] AICWFDBG(LOGERROR) Unknown command 'RXFILTER-STOP'
[ 30.498891] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 30.503682] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 30.509420] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "RXFILTER-ADD 2" on wlan0
[ 30.519017] AICWFDBG(LOGINFO) cmd = 35313
[ 30.523537] AICWFDBG(LOGINFO) buf_size=4096
[ 30.528316] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 30.534236] AICWFDBG(LOGERROR) Unknown command 'RXFILTER-ADD'
[ 30.542439] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 30.547191] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 30.553762] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "RXFILTER-START" on wlan0
[ 30.563846] AICWFDBG(LOGINFO) cmd = 35313
[ 30.568415] AICWFDBG(LOGINFO) buf_size=4096
[ 30.574652] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 30.580619] AICWFDBG(LOGERROR) Unknown command 'RXFILTER-START'
[ 30.589249] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 30.594213] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 30.600106] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "RXFILTER-STOP" on wlan0
[ 30.609681] AICWFDBG(LOGINFO) cmd = 35313
[ 30.614202] AICWFDBG(LOGINFO) buf_size=4096
[ 30.618921] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 30.624830] AICWFDBG(LOGERROR) Unknown command 'RXFILTER-STOP'
[ 30.632272] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 30.637069] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 30.642875] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "RXFILTER-ADD 3" on wlan0
[ 30.654129] AICWFDBG(LOGINFO) cmd = 35313
[ 30.658857] AICWFDBG(LOGINFO) buf_size=4096
[ 30.663732] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 30.669671] AICWFDBG(LOGERROR) Unknown command 'RXFILTER-ADD'
[ 30.676833] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 30.681580] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 30.687285] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "RXFILTER-START" on wlan0
[ 30.696846] AICWFDBG(LOGINFO) cmd = 35313
[ 30.701354] AICWFDBG(LOGINFO) buf_size=4096
[ 30.706075] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 30.711944] AICWFDBG(LOGERROR) Unknown command 'RXFILTER-START'
[ 30.719387] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 30.724109] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 30.729792] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "SETSUSPENDMODE 0" on wlan0
[ 30.739519] AICWFDBG(LOGINFO) cmd = 35313
[ 30.744020] AICWFDBG(LOGINFO) buf_size=4096
[ 30.810959] type=1400 audit(1733305018.050:97): avc: denied { getattr } for comm="webview_zygote" path="/data/data/com.android.webview" dev="mmcblk0p17" ino=1068 scontext=u:r:webview_zygote:s0 tcontext=u:object_r:app_data_file:s0:c99,c256,c512,c768 tclass=dir permissive=1
[ 30.815940] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_scan()
[ 30.815944] AICWFDBG(LOGTRACE) >>> rwnx_send_scanu_req()
[ 30.815953] AICWFDBG(LOGDEBUG) scan channel:1(2412)
[ 30.815955] AICWFDBG(LOGDEBUG) scan channel:2(2417)
[ 30.815957] AICWFDBG(LOGDEBUG) scan channel:3(2422)
[ 30.815959] AICWFDBG(LOGDEBUG) scan channel:4(2427)
[ 30.815961] AICWFDBG(LOGDEBUG) scan channel:5(2432)
[ 30.815963] AICWFDBG(LOGDEBUG) scan channel:6(2437)
[ 30.815965] AICWFDBG(LOGDEBUG) scan channel:7(2442)
[ 30.815967] AICWFDBG(LOGDEBUG) scan channel:8(2447)
[ 30.815969] AICWFDBG(LOGDEBUG) scan channel:9(2452)
[ 30.815971] AICWFDBG(LOGDEBUG) scan channel:10(2457)
[ 30.815973] AICWFDBG(LOGDEBUG) scan channel:11(2462)
[ 30.815975] AICWFDBG(LOGDEBUG) scan channel:12(2467)
[ 30.815977] AICWFDBG(LOGDEBUG) scan channel:13(2472)
[ 30.815979] AICWFDBG(LOGDEBUG) scan channel:14(2484)
[ 30.815981] AICWFDBG(LOGDEBUG) scan channel:36(5180)
[ 30.815983] AICWFDBG(LOGDEBUG) scan channel:40(5200)
[ 30.815985] AICWFDBG(LOGDEBUG) scan channel:44(5220)
[ 30.815987] AICWFDBG(LOGDEBUG) scan channel:48(5240)
[ 30.815989] AICWFDBG(LOGDEBUG) scan channel:52(5260)
[ 30.815991] AICWFDBG(LOGDEBUG) scan channel:56(5280)
[ 30.815993] AICWFDBG(LOGDEBUG) scan channel:60(5300)
[ 30.815994] AICWFDBG(LOGDEBUG) scan channel:64(5320)
[ 30.815996] AICWFDBG(LOGDEBUG) scan channel:100(5500)
[ 30.815998] AICWFDBG(LOGDEBUG) scan channel:104(5520)
[ 30.816000] AICWFDBG(LOGDEBUG) scan channel:108(5540)
[ 30.816002] AICWFDBG(LOGDEBUG) scan channel:112(5560)
[ 30.816004] AICWFDBG(LOGDEBUG) scan channel:116(5580)
[ 30.816006] AICWFDBG(LOGDEBUG) scan channel:120(5600)
[ 30.816008] AICWFDBG(LOGDEBUG) scan channel:124(5620)
[ 30.816010] AICWFDBG(LOGDEBUG) scan channel:128(5640)
[ 30.816012] AICWFDBG(LOGDEBUG) scan channel:132(5660)
[ 30.816014] AICWFDBG(LOGDEBUG) scan channel:136(5680)
[ 30.816016] AICWFDBG(LOGDEBUG) scan channel:140(5700)
[ 30.816018] AICWFDBG(LOGDEBUG) scan channel:144(5720)
[ 30.816020] AICWFDBG(LOGDEBUG) scan channel:149(5745)
[ 30.816022] AICWFDBG(LOGDEBUG) scan channel:153(5765)
[ 30.816024] AICWFDBG(LOGDEBUG) scan channel:157(5785)
[ 30.816026] AICWFDBG(LOGDEBUG) scan channel:161(5805)
[ 30.816028] AICWFDBG(LOGDEBUG) scan channel:165(5825)
[ 30.816033] AICWFDBG(LOGTRACE) rwnx_send_msg (4105)SCANU_START_CFM_ADDTIONAL reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 30.816042] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 30.838446] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1009
[ 30.838531] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 30.843375] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 30.847299] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 30.878051] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 30.886920] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 30.893457] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 30.918467] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 30.928463] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 30.941297] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 30.963489] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 30.998527] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.005728] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 31.033580] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.055484] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 31.092287] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.103309] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 31.127310] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.162338] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.197359] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.245882] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.252914] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 31.261140] type=1400 audit(1733305026.303:98): avc: granted { read } for comm="main" name="u:object_r:net_dns_prop:s0" dev="tmpfs" ino=421 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:net_dns_prop:s0 tclass=file app=com.android.email
[ 31.287380] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.322381] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.377409] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.412410] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.419186] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 31.426155] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 31.449237] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 31.456177] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 31.467402] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.502476] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.557464] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.592498] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.627584] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.662535] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.697527] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.732618] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.767575] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.802590] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.837633] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.872596] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.907674] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.942757] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 31.977680] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.012720] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.047701] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.082753] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.117744] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.152819] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.159589] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 32.166586] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 32.173624] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 32.180683] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 32.187703] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 32.194743] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 32.201733] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.242857] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.298043] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.353072] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.388214] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 32.395124] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1001
[ 32.402167] AICWFDBG(LOGTRACE) >>> rwnx_rx_scanu_start_cfm()
[ 32.476541] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_remain_on_channel_()
[ 32.483857] remain:0,0,0
[ 32.486737] AICWFDBG(LOGTRACE) >>> rwnx_send_roc()
[ 32.492191] AICWFDBG(LOGTRACE) rwnx_send_msg (71)MM_REMAIN_ON_CHANNEL_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 32.504110] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 32.513839] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x47
[ 32.520611] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x44
[ 32.520619] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 32.535671] AICWFDBG(LOGDEBUG) mgmt xmit d0 0 AICWFDBG(LOGINFO) need cfm mgmt:d0,user_idx=1, skb=ffffffc04f74ae00
[ 32.549673] AICWFDBG(LOGINFO) sdio_host_tx_cfm_handler:used_idx=0, 0xffffffc040a00700, status=9
[ 32.559527] done=1 retry_required=0 sw_retry_required=0 acknowledged=1
[ 32.567112] AICWFDBG(LOGTRACE) >>> rwnx_close()
[ 32.572222] aicwf_sdio mmc2:390b:1 wlan0: CLOSE
[ 32.577302] rwnx_close clear roc
[ 32.580936] AICWFDBG(LOGDEBUG) rwnx_close rwnx_vif[0] down
[ 32.588378] AICWFDBG(LOGTRACE) >>> rwnx_send_remove_if()
[ 32.594466] rwnx_send_msg1 (9)MM_REMOVE_IF_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 32.603859] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 32.612672] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x9
[ 32.619371] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 32.627292] AICWFDBG(LOGTRACE) >>> rwnx_send_coex_req()
[ 32.633139] AICWFDBG(LOGTRACE) rwnx_send_msg (102)MM_SET_COEX_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 32.644248] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 32.653039] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x66
[ 32.659778] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 32.667665] AICWFDBG(LOGTRACE) >>> rwnx_send_reset()
[ 32.673324] AICWFDBG(LOGTRACE) rwnx_send_msg (1)MM_RESET_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 32.684109] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 32.693359] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1
[ 32.699998] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 32.707893] AICWFDBG(LOGTRACE) >>> rwnx_send_me_config_req()
[ 32.714214] ieee80211 phy0: HT supp 1, VHT supp 1, HE supp 0
[ 32.720544] AICWFDBG(LOGTRACE) rwnx_send_msg (5121)ME_CONFIG_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 32.731511] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 32.740828] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1401
[ 32.747799] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 32.755828] AICWFDBG(LOGTRACE) >>> rwnx_send_me_chan_config_req()
[ 32.762696] AICWFDBG(LOGTRACE) rwnx_send_msg (5123)ME_CHAN_CONFIG_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 32.774176] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 32.783193] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1403
[ 32.790152] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 32.798079] AICWFDBG(LOGDEBUG) rwnx_close rwnx_vif->drv_flags:0
[ 32.805221] AICWFDBG(LOGTRACE) rwnx_set_mac_address enter
[ 32.811585] AICWFDBG(LOGINFO) rwnx_set_mac_address set D6:EB:B7:0D:F8:AF
[ 32.819502] AICWFDBG(LOGTRACE) >>> rwnx_open()
[ 32.824511] AICWFDBG(LOGTRACE) >>> rwnx_send_start()
[ 32.830075] AICWFDBG(LOGTRACE) rwnx_send_msg (3)MM_START_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 32.840666] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 32.850324] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x3
[ 32.856983] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 32.864868] AICWFDBG(LOGTRACE) >>> rwnx_send_coex_req()
[ 32.870697] AICWFDBG(LOGTRACE) rwnx_send_msg (102)MM_SET_COEX_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 32.881764] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 32.891321] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x66
[ 32.898075] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 32.906037] AICWFDBG(LOGDEBUG) rwnx_open rwnx_vif->drv_flags:4
[ 32.912745] AICWFDBG(LOGTRACE) >>> rwnx_send_add_if()
[ 32.918441] AICWFDBG(LOGTRACE) rwnx_send_msg (7)MM_ADD_IF_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 32.929166] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 32.938293] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x7
[ 32.945032] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 32.952993] AICWFDBG(LOGDEBUG) rwnx_open sta create vif in rwnx_hw->vif_table[0]
[ 32.965288] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_cancel_remain_on_channel()
[ 33.108440] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_scan()
[ 33.114369] AICWFDBG(LOGTRACE) >>> rwnx_send_scanu_req()
[ 33.120376] AICWFDBG(LOGTRACE) rwnx_send_msg (4104)SCANU_VENDOR_IE_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 33.132102] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 33.141537] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1008
[ 33.148527] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 33.156472] AICWFDBG(LOGDEBUG) scan channel:1(2412)
[ 33.162146] AICWFDBG(LOGDEBUG) scan channel:2(2417)
[ 33.167829] AICWFDBG(LOGDEBUG) scan channel:3(2422)
[ 33.173503] AICWFDBG(LOGDEBUG) scan channel:4(2427)
[ 33.179199] AICWFDBG(LOGDEBUG) scan channel:5(2432)
[ 33.184889] AICWFDBG(LOGDEBUG) scan channel:6(2437)
[ 33.190591] AICWFDBG(LOGDEBUG) scan channel:7(2442)
[ 33.196289] AICWFDBG(LOGDEBUG) scan channel:8(2447)
[ 33.202066] AICWFDBG(LOGDEBUG) scan channel:9(2452)
[ 33.207768] AICWFDBG(LOGDEBUG) scan channel:10(2457)
[ 33.213572] AICWFDBG(LOGDEBUG) scan channel:11(2462)
[ 33.219376] AICWFDBG(LOGDEBUG) scan channel:12(2467)
[ 33.225171] AICWFDBG(LOGDEBUG) scan channel:13(2472)
[ 33.230963] AICWFDBG(LOGDEBUG) scan channel:14(2484)
[ 33.236761] AICWFDBG(LOGDEBUG) scan channel:36(5180)
[ 33.242553] AICWFDBG(LOGDEBUG) scan channel:40(5200)
[ 33.248358] AICWFDBG(LOGDEBUG) scan channel:44(5220)
[ 33.254133] AICWFDBG(LOGDEBUG) scan channel:48(5240)
[ 33.259998] AICWFDBG(LOGDEBUG) scan channel:52(5260)
[ 33.265754] AICWFDBG(LOGDEBUG) scan channel:56(5280)
[ 33.271504] AICWFDBG(LOGDEBUG) scan channel:60(5300)
[ 33.277290] AICWFDBG(LOGDEBUG) scan channel:64(5320)
[ 33.283184] AICWFDBG(LOGDEBUG) scan channel:100(5500)
[ 33.289079] AICWFDBG(LOGDEBUG) scan channel:104(5520)
[ 33.294994] AICWFDBG(LOGDEBUG) scan channel:108(5540)
[ 33.300980] AICWFDBG(LOGDEBUG) scan channel:112(5560)
[ 33.306906] AICWFDBG(LOGDEBUG) scan channel:116(5580)
[ 33.312805] AICWFDBG(LOGDEBUG) scan channel:120(5600)
[ 33.318799] AICWFDBG(LOGDEBUG) scan channel:124(5620)
[ 33.324718] AICWFDBG(LOGDEBUG) scan channel:128(5640)
[ 33.330899] AICWFDBG(LOGDEBUG) scan channel:132(5660)
[ 33.336816] AICWFDBG(LOGDEBUG) scan channel:136(5680)
[ 33.342698] AICWFDBG(LOGDEBUG) scan channel:140(5700)
[ 33.348557] AICWFDBG(LOGDEBUG) scan channel:144(5720)
[ 33.354574] AICWFDBG(LOGDEBUG) scan channel:149(5745)
[ 33.360681] AICWFDBG(LOGDEBUG) scan channel:153(5765)
[ 33.366767] AICWFDBG(LOGDEBUG) scan channel:157(5785)
[ 33.372995] AICWFDBG(LOGDEBUG) scan channel:161(5805)
[ 33.379527] AICWFDBG(LOGDEBUG) scan channel:165(5825)
[ 33.385512] AICWFDBG(LOGTRACE) rwnx_send_msg (4105)SCANU_START_CFM_ADDTIONAL reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 33.398260] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 33.407059] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1009
[ 33.414006] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 33.414007] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.414025] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.435943] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.453571] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.462133] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.478574] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.497297] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.532341] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.567486] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.602570] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.614390] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.657477] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.664220] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.673475] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.692495] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.727669] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.763065] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.797645] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.808600] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.853002] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.888125] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.942616] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.977874] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 33.984752] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 33.991815] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 34.009628] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 34.016689] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 34.032838] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.067780] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.123200] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.158103] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.192902] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.227920] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.262637] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.297559] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.332551] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.367608] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.402542] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.437812] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.472874] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.508409] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.543441] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.578177] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.613047] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.648255] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.683522] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.718581] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.725455] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 34.732522] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 34.739585] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 34.753093] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.808504] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.815395] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 34.863609] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.918588] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.952925] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 34.959719] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1001
[ 34.966666] AICWFDBG(LOGTRACE) >>> rwnx_rx_scanu_start_cfm()
[ 34.980946] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_connect()
[ 34.987167] AICWFDBG(LOGTRACE) >>> rwnx_send_sm_connect_req()
[ 34.993657] rwnx_send_sm_connect_req drv_vif_index:0 connect to whycan(6) channel:2412 auth_type:0
[ 35.003933] AICWFDBG(LOGTRACE) rwnx_send_msg (6145)SM_CONNECT_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 35.015105] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 35.024493] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1801
[ 35.031513] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 35.039677] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x4f
[ 35.046454] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1004
[ 35.329686] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x44
[ 35.372385] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1802
[ 35.379462] AICWFDBG(LOGTRACE) >>> rwnx_rx_sm_connect_ind()
[ 35.385814] AICWFDBG(LOGINFO) rwnx_rx_sm_connect_ind ind->status_code:0
[ 35.393541] AICWFDBG(LOGINFO) rwnx_rx_sm_connect_ind ind->roamed:0 ind->status_code:0 rwnx_vif->drv_conn_state:2
[ 35.405203] AICWFDBG(LOGINFO) rwnx_rx_sm_connect_ind cfg80211_connect_result pass, rwnx_vif->drv_conn_state:3
[ 35.419611] AICWFDBG(LOGINFO) need cfm ethertype: 8e88,user_idx=2, skb=ffffffc04f201800
[ 35.434120] AICWFDBG(LOGINFO) sdio_host_tx_cfm_handler:used_idx=1, 0xffffffc040a00700, status=9
[ 35.444933] AICWFDBG(LOGINFO) need cfm ethertype: 8e88,user_idx=3, skb=ffffffc04f201800
[ 35.455028] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_add_key()
[ 35.461324] AICWFDBG(LOGTRACE) >>> rwnx_send_key_add()
[ 35.467383] AICWFDBG(LOGTRACE) rwnx_send_key_add: sta_idx:0 key_idx:0 inst_nbr:0 cipher:2 key_len:16
[ 35.467506] AICWFDBG(LOGINFO) sdio_host_tx_cfm_handler:used_idx=2, 0xffffffc040a00700, status=9
[ 35.487821] key: 00000000: 7d 49 82 46 49 7c f4 45 c9 1e 00 dd 1a b7 c3 0b }I.FI|.E........
[ 35.497411] AICWFDBG(LOGTRACE) rwnx_send_msg (37)MM_KEY_ADD_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 35.508729] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 35.518256] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x25
[ 35.525096] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 35.533588] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_set_default_key()
[ 35.541929] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_add_key()
[ 35.548157] AICWFDBG(LOGTRACE) >>> rwnx_send_key_add()
[ 35.553998] AICWFDBG(LOGTRACE) rwnx_send_key_add: sta_idx:255 key_idx:2 inst_nbr:0 cipher:2 key_len:16
[ 35.564778] key: 00000000: b2 63 27 8f ce 76 e0 30 7d 0e 24 cd 8e 85 bc a5 .c'..v.0}.$.....
[ 35.574526] AICWFDBG(LOGTRACE) rwnx_send_msg (37)MM_KEY_ADD_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 35.585743] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 35.595344] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x25
[ 35.602150] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 35.610888] AICWFDBG(LOGTRACE) >>> rwnx_cfg80211_add_key()
[ 35.617106] AICWFDBG(LOGTRACE) >>> rwnx_send_key_add()
[ 35.622915] AICWFDBG(LOGTRACE) rwnx_send_key_add: sta_idx:255 key_idx:5 inst_nbr:0 cipher:5 key_len:16
[ 35.633496] key: 00000000: 9a 61 64 f0 f3 06 8f 29 d5 c2 76 6a d2 0a 16 f7 .ad....)..vj....
[ 35.643082] AICWFDBG(LOGTRACE) rwnx_send_msg (37)MM_KEY_ADD_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 35.654135] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 35.664183] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x25
[ 35.671131] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 35.680273] AICWFDBG(LOGTRACE) >>> rwnx_send_me_set_control_port_req()
[ 35.687728] AICWFDBG(LOGTRACE) rwnx_send_msg (5125)ME_SET_CONTROL_PORT_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 35.699869] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 35.708953] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x1405
[ 35.716058] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 35.773727] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 35.778507] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 35.784182] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "BTCOEXMODE 2" on wlan0
[ 35.793511] AICWFDBG(LOGINFO) cmd = 35313
[ 35.797995] AICWFDBG(LOGINFO) buf_size=4096
[ 35.802667] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 35.808504] AICWFDBG(LOGERROR) Unknown command 'BTCOEXMODE'
[ 35.837463] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 35.849078] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 35.857910] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
[ 35.864700] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 35.872647] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:8 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-28
[ 35.937946] nf_conntrack: default automatic helper assignment has been turned off for security reasons and CT-based firewall rule not found. Use the iptables CT target to attach helpers instead.
[ 35.944651] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 35.944658] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 35.944671] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "BTCOEXMODE 1" on wlan0
[ 35.944678] AICWFDBG(LOGINFO) cmd = 35313
[ 35.944681] AICWFDBG(LOGINFO) buf_size=4096
[ 35.944686] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 35.944694] AICWFDBG(LOGERROR) Unknown command 'BTCOEXMODE'
[ 35.945337] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 35.945343] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 35.945353] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "SETSUSPENDMODE 0" on wlan0
[ 35.945359] AICWFDBG(LOGINFO) cmd = 35313
[ 35.945362] AICWFDBG(LOGINFO) buf_size=4096
[ 36.027834] AICWFDBG(LOGINFO) reord_init_sta:d6:eb:b7:0d:f8:af
[ 36.063935] AICWFDBG(LOGINFO) paired=fac04, should=fac04
[ 36.069892] AICWFDBG(LOGTRACE) >>> rwnx_send_arpoffload_en_req()
[ 36.076594] AICWFDBG(LOGTRACE) rwnx_send_msg (98)MM_SET_ARPOFFLOAD_CFM reqcfm:1 in_irq:0 in_softirq:512 in_atomic:1
[ 36.088321] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 36.096928] AICWFDBG(LOGTRACE) >>> cmd_mgr_task_process()
[ 36.103805] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x62
[ 36.109414] AICWFDBG(LOGINFO) IOCTL PRIVATE
[ 36.109423] AICWFDBG(LOGTRACE) >>> android_priv_cmd()
[ 36.109444] AICWFDBG(LOGINFO) android_priv_cmd: Android private cmd "BTCOEXMODE 2" on wlan0
[ 36.109453] AICWFDBG(LOGINFO) cmd = 35313
[ 36.109458] AICWFDBG(LOGINFO) buf_size=4096
[ 36.109464] AICWFDBG(LOGTRACE) >>> handle_private_cmd()
[ 36.109475] AICWFDBG(LOGERROR) Unknown command 'BTCOEXMODE'
[ 36.151911] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 36.255434] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x140b
[ 36.262424] AICWFDBG(LOGTRACE) >>> rwnx_rx_me_tx_credits_update_ind()
[ 36.315431] init: processing action (sys.sysctl.tcp_def_init_rwnd=*) from (/init.rc:810)
[ 37.202384] type=1400 audit(1733305026.303:98): avc: granted { read } for comm="main" name="u:object_r:net_dns_prop:s0" dev="tmpfs" ino=421 scontext=u:r:untrusted_app_25:s0:c512,c768 tcontext=u:object_r:net_dns_prop:s0 tclass=file app=com.android.email
[ 37.227511] type=1400 audit(1733305032.696:99): avc: denied { dac_override } for comm="irqbalance" capability=1 scontext=u:r:shell:s0 tcontext=u:r:shell:s0 tclass=capability permissive=1
[ 38.909733] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 38.921392] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
[ 38.930910] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
[ 38.937876] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
[ 38.945939] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:8 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-29
12-04 16:39:58.393 2451 2661 E[ 877.899234] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
WifiVendorHal: getWifiLinkLayer[ 877.912624] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
Stats_1_3_Internal(l.926) failed[ 877.924856] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
{.code = ERROR_NOT_AVAILABLE, .[ 877.933604] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
description = }
[ 877.944334] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:6 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-35
12-04 16:40:00.003 2768 2768 D KeyguardClockSwitch: Updating clock: 440
12-04 16:40:00.931 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:01.025 2451 7203 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cmp=com.android.settings/.SubSettings (has extras)} from uid 1000
12-04 16:40:01.016 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:01.029 2140 2140 I AW_PowerHAL_Platform: ==LAUNCH_MODE==
12-04 16:40:01.030 2130 4727 D audio_hw_primary: start_output_stream
12-04 16:40:01.030 2130 4727 V audio_platform: disable backend pcm(direction:PCM_OUT)
12-04 16:40:01.030 2130 4727 D audio_route: Apply path: out-reset
12-04 16:40:01.030 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.030 2130 4727 D audio_route: Apply path: media-speaker
12-04 16:40:01.030 2130 4727 D audio_hw_primary: select device(out):pdev:OUT_DULSPK, path:media-speaker
12-04 16:40:01.030 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.030 2130 4727 D audio_hw_primary: +++++++++++++++ start_output_stream: pcm sample_rate: 48000,pcm fmt: 0x00000000,pcm channels: 2
12-04 16:40:01.031 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.052 2140 2140 D AW_PowerHAL: c-s = 8
12-04 16:40:01.068 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.079 2130 4727 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 16:40:01.091 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.096 3026 3026 W ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@ba65f49
12-04 16:40:01.109 2146 2227 D AudioFlinger: mixer(0x77d6647f80) throttle end: throttle time(11)
12-04 16:40:01.112 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.118 3026 3026 D SettingsActivity: Starting onCreate
12-04 16:40:01.131 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.142 3026 3026 D SettingsActivity: Starting to set activity title
12-04 16:40:01.143 3026 3026 D SettingsActivity: Done setting title
12-04 16:40:01.143 3026 3026 D SettingsActivity: Switching to fragment com.android.settings.bluetooth.BluetoothPairingDetail
12-04 16:40:01.143 3026 3026 D SubSettings: Launching fragment com.android.settings.bluetooth.BluetoothPairingDetail
12-04 16:40:01.147 3026 3026 D PrefCtrlListHelper: Could not find Context-only controller for pref: com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController
12-04 16:40:01.153 3026 3026 D BluetoothPairingDetail: NO dashboard tiles for BluetoothPairingDetail
12-04 16:40:01.153 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.153 3026 3026 D BluetoothPairingDetail: All preferences added, reporting fully drawn
12-04 16:40:01.158 2451 2499 I ActivityTaskManager: Fully drawn com.android.settings/.SubSettings: +131ms
12-04 16:40:01.162 3026 3026 D SettingsActivity: Executed frag manager pendingTransactions
12-04 16:40:01.174 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.181 3026 3026 D LocalBluetoothManager: setting foreground activity to non-null context
12-04 16:40:01.182 2451 7203 D BluetoothManagerService: enable(com.android.settings): mBluetooth =null mBinding = false mState = OFF
12-04 16:40:01.182 2451 7203 D BluetoothManagerService: enable returning
12-04 16:40:01.182 2451 2492 D BluetoothManagerService: MESSAGE_ENABLE(0): mBluetooth = null
12-04 16:40:01.194 3026 6738 W TileUtils: Found com.android.settings.Settings$DataUsageSummaryActivity for intent Intent { act=com.android.settings.action.SETTINGS pkg=com.android.settings } missing metadata com.android.settings.category
12-04 16:40:01.195 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.211 2124 2124 D Zygote : Forked child process 8620
12-04 16:40:01.217 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.217 2451 2501 I ActivityManager: app.processName = com.android.bluetooth
12-04 16:40:01.217 2451 2501 I ActivityManager: Start proc 8620:com.android.bluetooth/1002 for service {com.android.bluetooth/com.android.bluetooth.btservice.AdapterService}
12-04 16:40:01.218 8620 8620 I Zygote : seccomp disabled by setenforce 0
12-04 16:40:01.243 2451 3243 D PackageManager: Instant App installer not found with android.intent.action.INSTALL_INSTANT_APP_PACKAGE
12-04 16:40:01.244 2451 3243 D PackageManager: Clear ephemeral installer activity
12-04 16:40:01.250 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.267 3026 8619 D SettingsActivity: Enabled state changed for some tiles, reloading all categories {com.android.settings/com.android.settings.Settings$PowerUsageSummaryActivity},
12-04 16:40:01.273 2130 4727 V audio_platfor[ 880.972191] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
m: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.295 2130 4727 V audio_platform: mode(0),devices(0x2):p[ 880.996240] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
latform device:OUT_DULSPK(0x4)
[ 881.005789] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
12-04 16:40:01.296 3026 6738 W TileUtils: Found com.android.se[ 881.017080] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
ttings.Settings$DataUsageSummaryActivity for intent Intent { act[ 881.031524] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:6 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-34
=com.android.settings.action.SETTINGS pkg=com.android.settings } missing metadata com.android.settings.category
12-04 16:40:01.305 8620 8620 I droid.bluetoot: The ClassLoaderContext is a special shared library.
12-04 16:40:01.313 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.369 2451 7111 D PackageManager: Instant App installer not found with android.intent.action.INSTALL_INSTANT_APP_PACKAGE
12-04 16:40:01.369 2451 7111 D PackageManager: Clear ephemeral installer activity
12-04 16:40:01.376 2130 4727 I chatty : uid=1041(audioserver) writer identical 3 lines
12-04 16:40:01.397 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.399 8620 8620 D BluetoothOppFileProvider: Initialized
12-04 16:40:01.418 3026 8619 D SettingsActivity: Enabled state changed for some tiles, reloading all categories {com.android.settings/com.android.settings.Settings$PowerUsageSummaryActivity},
12-04 16:40:01.422 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.430 3026 6738 W TileUtils: Found com.android.settings.Settings$DataUsageSummaryActivity for intent Intent { act=com.android.settings.action.SETTINGS pkg=com.android.settings } missing metadata com.android.settings.category
12-04 16:40:01.432 2140 2140 I AW_PowerHAL_Platform: ==NORMAL MODE==
12-04 16:40:01.436 2140 2140 D AW_PowerHAL: c-s = 18
12-04 16:40:01.442 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.462 2130 4727 V audio_platform: mode(0)[ 881.186922] bluetooth_set_power: start_block=1
,devices(0x2):platform device:OU[ 881.193501] aicbsp: aicbsp_set_subsys, subsys: AIC_BLUETOOTH, state to: 0
T_DULSPK(0x4)
12-04 16:40:01.46[ 881.203569] aicbsp: aicbsp_set_subsys, power state no need to change, current: 1
5 2451 2661 E WifiVendorHal: g[ 881.214784] bluetooth_set_power: end_block=1
etWifiLinkLayerStats_1_3_Interna[ 881.222610] bluetooth_set_power: start_block=0
l(l.926) failed {.code = ERROR_N[ 881.230064] aicbsp: aicbsp_set_subsys, subsys: AIC_BLUETOOTH, state to: 1
OT_AVAILABLE, .description = }
[ 881.240387] aicbsp: aicbsp_set_subsys, power state no need to change, current: 1
12-04 16:40:01.480 8620 8620 V[ 881.251412] bluetooth_set_power: end_block=0
AdapterServiceConfig: Adding HeadsetService
12-04 16:40:01.482[ 881.262458] [BT_LPM] bluesleep_outgoing_data: tx was sleeping, wakeup it
8620 8620 V AdapterServiceCon[ 881.272082] [BT_LPM] hsuart_power: bsi->uport = NULL, has_lpm_enabled = 0
fig: Adding A2dpService
12-04 16:40:01.482 8620 8620 V AdapterServiceConfig: Adding HidHostService
12-04 16:40:01.482 8620 8620 V AdapterServiceConfig: Adding PanService
12-04 16:40:01.482 8620 8620 V AdapterServiceConfig: Adding GattService
12-04 16:40:01.482 8620 8620 V AdapterServiceConfig: Adding BluetoothMapService
12-04 16:40:01.482 8620 8620 V AdapterServiceConfig: Adding AvrcpTargetService
12-04 16:40:01.482 8620 8620 V AdapterServiceConfig: Adding HidDeviceService
12-04 16:40:01.482 8620 8620 V AdapterServiceConfig: Adding BluetoothOppService
12-04 16:40:01.482 8620 8620 V AdapterServiceConfig: Adding BluetoothPbapService
12-04 16:40:01.483 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.485 3026 3041 I ndroid.setting: Background concurrent copying GC freed 67525(3451KB) AllocSpace objects, 28(616KB) LOS objects, 49% free, 4827KB/9654KB, paused 102us total 243.028ms
12-04 16:40:01.507 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.520 8620 8620 I : [1204/164001.520505:INFO:com_android_bluetooth_btservice_AdapterService.cpp(628)] hal_util_load_bt_library loaded HAL: btinterface=0x79b8b64440, handle=0x2ad82ce9145ff26d
12-04 16:40:01.521 8620 8620 D BluetoothAdapterService: onCreate()
12-04 16:40:01.526 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.528 8620 8620 D AdapterState: make() - Creating AdapterState
12-04 16:40:01.528 2230 2230 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 16:40:01.531 8620 8660 I AdapterState: OFF : entered
12-04 16:40:01.531 8620 8660 D AdapterProperties: Setting state to OFF
12-04 16:40:01.532 8620 8620 I bt_btif : init: start restricted = 0 ; single user = 0
12-04 16:40:01.532 8620 8620 D bt_osi_allocation_tracker: canary initialized
12-04 16:40:01.533 8620 8661 I : [1204/164001.533189:INFO:message_loop_thread.cc(175)] Run: message loop starting for thread bt_stack_manager_thread
12-04 16:40:01.533 8620 8661 I bt_stack_manager: event_init_stack is initializing the stack
12-04 16:40:01.536 8620 8661 I : [1204/164001.536857:INFO:btif_config.cc(647)] hash_file: Disabled for multi-user
12-04 16:40:01.536 8620 8661 I : [1204/164001.536961:INFO:btif_config.cc(675)] read_checksum_file: Disabled for multi-user
12-04 16:40:01.537 8620 8661 E bt_btif_config: Config is missing adapter section
12-04 16:40:01.537 8620 8661 W bt_btif_config: init unable to load config file: /data/misc/bluedroid/bt_config.conf; using backup.
12-04 16:40:01.537 8620 8661 I : [1204/164001.537382:INFO:btif_config.cc(647)] hash_file: Disabled for multi-user
12-04 16:40:01.537 8620 8661 I : [1204/164001.537440:INFO:btif_config.cc(675)] read_checksum_file: Disabled for multi-user
12-04 16:40:01.537 8620 8661 E bt_btif_config: Config is missing adapter section
12-04 16:40:01.537 8620 8661 W bt_btif_config: init unable to load backup; attempting to transcode legacy file.
12-04 16:40:01.538 8620 8661 E bt_btif_config_transcode: btif_config_transcode unable to load XML file '/data/misc/bluedroid/bt_config.xml': 3
12-04 16:40:01.538 8620 8661 E bt_btif_config: init unable to transcode legacy file; creating empty config.
12-04 16:40:01.538 8620 8661 W : [1204/164001.538167:WARNING:btif_config.cc(151)] read_or_set_metrics_salt: Failed to read metrics salt from config
12-04 16:40:01.538 8620 8661 I : [1204/164001.538239:INFO:btif_config.cc(162)] read_or_set_metrics_salt: Metrics salt is not invalid, creating new one
12-04 16:40:01.539 8620 8661 E bt_osi_alarm: timer_create_internal unable to create timer with clock 9: Unknown error 524
12-04 16:40:01.539 8620 8661 E bt_osi_alarm: The kernel might not have support for timer_create(CLOCK_BOOTTIME_ALARM): https://lwn.net/Articles/429925/
12-04 16:40:01.539 8620 8661 E bt_osi_alarm: See following patches: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/?qt=grep&q=CLOCK_BOOTTIME_ALARM
12-04 16:40:01.540 8620 8665 I bt_osi_thread: run_thread: thread id 8665, thread name alarm_default_ca started
12-04 16:40:01.541 8620 8666 I bt_osi_thread: run_thread: thread id 8666, thread name alarm_dispatcher started
12-04 16:40:01.543 8620 8661 I bt_btif_core: btif_init_bluetooth entered
12-04 16:40:01.544 8620 8661 I bt_stack_config: init attempt to load stack conf from /etc/bluetooth/bt_stack.conf
12-04 16:40:01.545 8620 8667 I : [1204/164001.545291:INFO:message_loop_thread.cc(175)] Run: message loop starting for thread bt_jni_thread
12-04 16:40:01.545 8620 8661 I bt_btif_core: btif_init_bluetooth finished
12-04 16:40:01.545 8620 8661 I bt_stack_manager: event_init_stack finished
12-04 16:40:01.545 8620 8620 I bt_osi_wakelock: wakelock_set_os_callouts set to non-native
12-04 16:40:01.545 8620 8620 I bt_btif : get_profile_interface: id = socket
12-04 16:40:01.546 8620 8667 E bt_btif_storage: btif_storage_get_adapter_property: Controller not ready! Unable to return Bluetooth Address
12-04 16:40:01.546 8620 8667 E BluetoothServiceJni: adapter_properties_callback: Status 1 is incorrect
12-04 16:40:01.547 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.548 8620 8620 I bt_btif : get_profile_interface: id = sdp
12-04 16:40:01.548 8620 8667 D AdapterProperties: Name is: QUAD-CORE A133 c3
12-04 16:40:01.548 8620 8667 D AdapterProperties: BT Class:1a011c
12-04 16:40:01.549 2451 2451 D BluetoothManagerService: Bluetooth Adapter name changed to QUAD-CORE A133 c3
12-04 16:40:01.549 2451 2451 D BluetoothManagerService: Stored Bluetooth name: QUAD-CORE A133 c3
12-04 16:40:01.551 8620 8620 I BluetoothAdapterService: Phone policy enabled
12-04 16:40:01.553 2768 2768 W StatusBarIconController: setIconVisibility index: 27
12-04 16:40:01.556 8620 8620 D BluetoothActiveDeviceManager: start()
12-04 16:40:01.568 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.569 8620 8670 D BluetoothActiveDeviceManager: onAudioDevicesAdded
12-04 16:40:01.571 8620 8670 D BluetoothActiveDeviceManager: Audio device added: QUAD-CORE A133 c3 type: 2
12-04 16:40:01.571 8620 8670 D BluetoothActiveDeviceManager: Audio device added: QUAD-CORE A133 c3 type: 15
12-04 16:40:01.580 3026 3026 D LocalBluetoothManager: setting foreground activity to null
12-04 16:40:01.583 8620 8620 D BluetoothDatabase: start()
12-04 16:40:01.585 8620 8620 D BluetoothDatabase: Load Database
12-04 16:40:01.589 8620 8620 D BluetoothAdapterService: setAdapterService() - trying to set service to com.android.bluetooth.btservice.AdapterService@3d23669
12-04 16:40:01.589 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.598 8620 8620 D BluetoothAdapterService: onBind()
12-04 16:40:01.599 2451 2451 D BluetoothManagerService: BluetoothServiceConnection: com.android.bluetooth.btservice.AdapterService
12-04 16:40:01.599 2451 2492 D BluetoothManagerService: MESSAGE_BLUETOOTH_SERVICE_CONNECTED: 1
12-04 16:40:01.601 2451 2492 D BluetoothManagerService: Broadcasting onBluetoothServiceUp() to 5 receivers.
12-04 16:40:01.601 2451 2492 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@b27333
12-04 16:40:01.602 3026 3045 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@bf2291e
12-04 16:40:01.602 2768 2786 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@407851d
12-04 16:40:01.602 2894 3435 D BluetoothAdapter: onBluetoothServiceUp: android.bluetooth.IBluetooth$Stub$Proxy@c170371
12-04 16:40:01.603 8620 8640 D BluetoothAdapter: onBluetoothServiceUp: com.android.bluetooth.btservice.AdapterService$AdapterServiceBinder@f0d0c95
12-04 16:40:01.605 8620 8643 D BluetoothAdapterService: enable() - Enable called with quiet mode status = false
12-04 16:40:01.606 8620 8660 I AdapterState: BLE_TURNING_ON : entered
12-04 16:40:01.606 8620 8660 D AdapterProperties: Setting state to BLE_TURNING_ON
12-04 16:40:01.606 8620 8660 D BluetoothAdapterService: updateAdapterState() - Broadcasting state BLE_TURNING_ON to 1 receivers.
12-04 16:40:01.607 2451 2492 D BluetoothManagerService: MESSAGE_GET_NAME_AND_ADDRESS
12-04 16:40:01.612 2230 2940 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 16:40:01.613 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.614 2451 2492 D BluetoothManagerService: Stored Bluetooth name: QUAD-CORE A133 c3
12-04 16:40:01.615 2451 2492 D BluetoothManagerService: MESSAGE_BLUETOOTH_STATE_CHANGE: OFF > BLE_TURNING_ON
12-04 16:40:01.615 2451 2492 D BluetoothManagerService: Sending BLE State Change: OFF > BLE_TURNING_ON
12-04 16:40:01.626 8620 8660 D BluetoothAdapterService: bleOnProcessStart()
12-04 16:40:01.627 8620 8660 I AdapterProperties: init(), maxConnectedAudioDevices, default=5, propertyOverlayed=5, finalValue=5
12-04 16:40:01.628 8620 8672 I BluetoothDatabase: cacheMetadata
12-04 16:40:01.630 8620 8660 D BluetoothAdapterService: bleOnProcessStart() - Make Bond State Machine
12-04 16:40:01.630 8620 8660 D BluetoothBondStateMachine: make
12-04 16:40:01.632 8620 8681 I BluetoothBondStateMachine: StableState(): Entering Off State
12-04 16:40:01.632 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.638 8620 8620 I BtGatt.JNI: classInitNative(L876): classInitNative: Success!
12-04 16:40:01.642 8620 8620 D BtGatt.DebugUtils: handleDebugAction() action=null
12-04 16:40:01.644 8620 8620 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@3d23669
12-04 16:40:01.647 8620 8620 I bt_btif : get_profile_interface: id = gatt
12-04 16:40:01.647 8620 8620 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@3d23669
12-04 16:40:01.654 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.669 8620 8620 D BluetoothAdapterService: getAdapterService() - returning com.android.bluetooth.btservice.AdapterService@3d23669
12-04 16:40:01.675 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.675 8620 8661 I bt_stack_manager: event_start_up_stack is bringing up the stack
12-04 16:40:01.675 8620 8661 I bt_core_module: module_start_up Starting module "btif_config_module"
12-04 16:40:01.676 8620 8661 I bt_core_module: module_start_up Started module "btif_config_module"
12-04 16:40:01.676 8620 8661 I bt_core_module: module_start_up Starting module "btsnoop_module"
12-04 16:40:01.677 8620 8661 I : [1204/164001.676979:INFO:btsnoop.cc(207)] start_up: Snoop Logs disabled
12-04 16:40:01.677 8620 8661 I : [1204/164001.677131:INFO:btsnoop.cc(338)] delete_btsnoop_files: Deleting snoop logs if they exist. filtered = 1
12-04 16:40:01.677 8620 8661 I : [1204/164001.677400:INFO:btsnoop.cc(338)] delete_btsnoop_files: Deleting snoop logs if they exist. filtered = 0
12-04 16:40:01.677 8620 8661 I bt_core_module: module_start_up Started module "btsnoop_module"
12-04 16:40:01.677 8620 8661 I bt_core_module: module_start_up Starting module "hci_module"
12-04 16:40:01.677 8620 8661 I bt_hci : hci_module_start_up
12-04 16:40:01.678 8620 8688 I : [1204/164001.678402:INFO:message_loop_thread.cc(175)] Run: message loop starting for thread bt_hci_thread
12-04 16:40:01.678 8620 8661 D bt_hci : hci_module_start_up starting async portion
12-04 16:40:01.678 8620 8688 I bt_hci : hci_initialize
12-04 16:40:01.681 8620 8688 I bt_hci : hci_initialize: IBluetoothHci::getService() returned 0x7a0b7d8220 (remote)
12-04 16:40:01.681 5034 5040 I android.hardware.bluetooth@1.0-impl: BluetoothHci::initialize()
12-04 16:40:01.682 5034 5040 D : get_local_address: Trying /sys/class/addr_mgt/addr_bt
12-04 16:40:01.682 5034 5040 D : get_local_address: Got Factory BDA 52:24:EB:E7:63:5D
12-04 16:40:01.682 5034 5040 I bt_vendor: init
12-04 16:40:01.682 5034 5040 W bt_vendor: *****************************************************************
12-04 16:40:01.682 5034 5040 W bt_vendor: *****************************************************************
12-04 16:40:01.682 5034 5040 W bt_vendor: ** Warning - BT Vendor Lib is loaded in debug tuning mode!
12-04 16:40:01.682 5034 5040 W bt_vendor: **
12-04 16:40:01.682 5034 5040 W bt_vendor: ** If this is not intentional, rebuild libbt-vendor.so
12-04 16:40:01.682 5034 5040 W bt_vendor: ** with VENDOR_LIB_RUNTIME_TUNING_ENABLED=FALSE and
12-04 16:40:01.682 5034 5040 W bt_vendor: ** check if any run-time tuning parameters needed to be
12-04 16:40:01.682 5034 5040 W bt_vendor: ** carried to the build-time configuration accordingly.
12-04 16:40:01.682 5034 5040 W bt_vendor: *****************************************************************
12-04 16:40:01.682 5034 5040 W bt_vendor: *****************************************************************
12-04 16:40:01.683 5034 5040 I bt_vnd_conf: Attempt to load conf from /etc/bluetooth/bt_vendor.conf
12-04 16:40:01.683 5034 5040 I bt_vnd_conf: vnd_load_conf file >/etc/bluetooth/bt_vendor.conf< not found
12-04 16:40:01.683 5034 5040 D android.hardware.bluetooth@1.0-impl: Open vendor library loaded
12-04 16:40:01.683 5034 5040 D bt_vendor: op for 0
12-04 16:40:01.683 5034 5040 D bt_upio : init_rfkill: rfkill path /sys/devices/platform/aic-bt/rfkill/rfkill1
12-04 16:40:01.700 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.718 5034 5040 W bt_vendor: NOTE: BT_VND_PWR_ON now forces power-off first
12-04 16:40:01.718 5034 5040 D bt_upio : init_rfkill: rfkill path /sys/devices/platform/aic-bt/rfkill/rfkill1
12-04 16:40:01.726 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.742 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.756 5034 5040 D bt_vendor: op for 3
12-04 16:40:01.757 5034 5040 I bt_userial_vendor: userial vendor open: opening /dev/ttyS1
12-04 16:40:01.757 5034 5040 I bt_userial_vendor: device fd = 6 open
12-04 16:40:01.757 5034 5040 D bt_vendor: op for 1
12-04 16:40:01.757 5034 5040 E bt_hwcfg: hw_config_start
12-04 16:40:01.758 5034 5040 D bt_vendor: op for 7
12-04 16:40:01.758 5034 5040 E bt_hwcfg: set_wake_stat 1
12-04 16:40:01.758 5034 5040 D bt_upio : upio_set : pio 0 action 2, polarity 1
12-04 16:40:01.766 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:01.779 5034 5040 D bt_upio : upio_set: proc btwrite assertion, buffer: 1, timer_armed 1 0
12-04 16:40:01.790 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:02.272 2130 4727 I chatty : uid=1041(audioserver) writer identical 23 lines
12-04 16:40:02.294 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:02.302 2451 2499 E system_server: No package ID 7f found for ID 0x7f08024a.
12-04 16:40:02.302 2451 2499 E system_server: No package ID 7f found for ID 0x7f1211a1.
12-04 16:40:02.302 2451 2499 E system_server: No package ID 7f found for ID 0x7f080249.
12-04 16:40:02.303 2451 2499 E system_server: No package ID 7f found for ID 0x7f1204e0.
12-04 16:40:02.303 2451 2499 E system_server: No package ID 7f found for ID 0x7f080248.
12-04 16:40:02.303 2451 2499 E system_server: No package ID 7f found for ID 0x7f120afa.
12-04 16:40:02.309 2894 2894 E PhoneInterfaceManager: [PhoneIntfMgr] getCarrierPackageNamesForIntent: No UICC
12-04 16:40:02.309 2894 2894 D CarrierSvcBindHelper: No carrier app for: 0
12-04 16:40:02.310 2451 2451 D DeviceIdleController: find package null
12-04 16:40:02.314 2451 2639 I InputReader: Reconfiguring input devices. changes=0x00000010
12-04 16:40:02.316 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:02.320 2451 2451 I Telecom : DefaultDialerCache: Refreshing default dialer for user 0: now null: DDC.oR@ABE
12-04 16:40:02.325 3026 6738 W TileUtils: Found com.android.settings.Settings$DataUsageSummaryActivity for intent Intent { act=com.android.settings.action.SETTINGS pkg=com.android.settings } missing metadata com.android.settings.category
12-04 16:40:02.326 2451 2499 W VoiceInteractionManagerService: no available voice interaction services found for user 0
12-04 16:40:02.336 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:03.106 2130 4727 I chatty : uid=1041(audioserver) writer identical 36 lines
12-04 16:40:03.126 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:03.146 2230 2276 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 16:40:03.147 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:03.168 2130 4727 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 16:40:03.190 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:03.210 2230 2276 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 16:40:03.211 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.149 2130 4727 I chatty : uid=1041(audioserver) writer identical 44 lines
12-04 16:40:04.171 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.177 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:04.188 2768 2768 W KeyButtonRipple: mSupportHardware: true mDark: true mLastDark: false pressed: true
12-04 16:40:04.189 2768 2768 W KeyButtonRipple: mDelayTouchFeedback: false
12-04 16:40:04.189 2768 2768 W KeyButtonRipple: enterHardware cancelAnimations
12-04 16:40:04.189 2768 2768 W KeyButtonRipple: enterHardware isHorizontal is true!
12-04 16:40:04.191 2768 2768 W KeyButtonRipple: enterHardware mDelayTouchFeedback: false mPressed: false
12-04 16:40:04.191 2768 2768 W KeyButtonView: mCode: 4
12-04 16:40:04.192 2768 2768 I KeyButtonView: Back button event: ACTION_DOWN
12-04 16:40:04.192 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.195 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:04.205 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.225 2130 4727 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 16:40:04.247 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.261 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:04.262 2768 2768 W KeyButtonRipple: mSupportHardware: true mDark: true mLastDark: true pressed: false
12-04 16:40:04.264 2768 2768 I KeyButtonView: Back button event: ACTION_UP
12-04 16:40:04.267 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.268 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:04.268 2451 2491 D AutofillManagerService: onBackKeyPressed()
12-04 16:40:04.268 2451 2491 D AutofillManagerServiceImpl: Reset component for user 0:
12-04 16:40:04.269 2451 2491 D AutofillUI: destroySaveUiUiThread(): already destroyed
12-04 16:40:04.291 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.304 3026 3026 E ActivityThread: Failed to find provider info for com.google.android.gms.nearby.fastpair
12-04 16:40:04.306 3026 6738 E ActivityThread: Failed to find provider info for com.google.android.gms.nearby.fastpair
12-04 16:40:04.306 3026 3026 D LocalBluetoothManager: setting foreground activity to non-null context
12-04 16:40:04.306 3026 6738 W SliceManager: Unknown URI: content://com.google.android.gms.nearby.fastpair/device_status_list_item
12-04 16:40:04.308 3026 3026 D LocalBluetoothManager: setting foreground activity to non-null context
12-04 16:40:04.311 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.317 3026 3026 D LocalBluetoothManager: setting foreground activity to non-null context
12-04 16:40:04.331 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.337 3026 6738 W TileUtils: Found com.android.settings.Settings$DataUsageSummaryActivity for intent Intent { act=com.android.settings.action.SETTINGS pkg=com.android.settings } missing metadata com.android.settings.category
12-04 16:40:04.352 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.366 3026 8619 D SettingsActivity: No enabled state changed, skipping updateCategory call
12-04 16:40:04.374 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
[ 884.064240] AICWFDBG(LOGTRACE) rwnx_send_msg (118)MM_GET_STA_INFO_CFM reqcfm:1 in_irq:0 in_softirq:0 in_atomic:0
[ 884.075822] AICWFDBG(LOGTRACE) rwnx_cmd_malloc get cmd_array[0]:ffffff8000e2c900
12-04 16:40:04.512 2130 4727 I[ 884.084809] AICWFDBG(LOGDEBUG) rwnx_rx_handle_msg msg->id:0x76
chatty : uid=1041(audioserver)[ 884.095772] AICWFDBG(LOGTRACE) rwnx_cmd_free cmd_array[0]:ffffff8000e2c900
writer identical 6 lines
12-04[ 884.104606] AICWFDBG(LOGDEBUG) rwnx_fill_station_info ModTx(0):4 TxIndex:6 ModRx(0):0 RxHTIndex:0 RxVHTIndex:0 RxHEIndex:0 RSSI:-35
16:40:04.533 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.557 2451 2661 E WifiVendorHal: getWifiLinkLayerStats_1_3_Internal(l.926) failed {.code = ERROR_NOT_AVAILABLE, .description = }
12-04 16:40:04.558 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.603 2130 4727 I chatty : uid=1041(audioserver) writer identical 2 lines
12-04 16:40:04.619 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.622 2768 2768 W StatusBarIconController: setIconVisibility index: 27
12-04 16:40:04.637 3026 3026 D LocalBluetoothManager: setting foreground activity to null
12-04 16:40:04.640 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.651 2451 3438 E TaskPersister: File error accessing recents directory (directory doesn't exist?).
12-04 16:40:04.790 2130 4727 I chatty : uid=1041(audioserver) writer identical 7 lines
12-04 16:40:04.811 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.812 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:04.813 2768 2768 W KeyButtonRipple: mSupportHardware: true mDark: true mLastDark: true pressed: true
12-04 16:40:04.813 2768 2768 W KeyButtonRipple: mDelayTouchFeedback: false
12-04 16:40:04.813 2768 2768 W KeyButtonRipple: enterHardware cancelAnimations
12-04 16:40:04.813 2768 2768 W KeyButtonRipple: enterHardware isHorizontal is true!
12-04 16:40:04.815 2768 2768 W KeyButtonRipple: enterHardware mDelayTouchFeedback: false mPressed: false
12-04 16:40:04.815 2768 2768 W KeyButtonView: mCode: 4
12-04 16:40:04.816 2768 2768 I KeyButtonView: Back button event: ACTION_DOWN
12-04 16:40:04.821 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:04.830 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.865 2130 4727 I chatty : uid=1041(audioserver) writer identical 2 lines
12-04 16:40:04.886 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.896 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:04.897 2768 2768 W KeyButtonRipple: mSupportHardware: true mDark: true mLastDark: true pressed: false
12-04 16:40:04.898 2768 2768 I KeyButtonView: Back button event: ACTION_UP
12-04 16:40:04.899 2230 2276 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 16:40:04.899 2451 2491 D AutofillManagerService: onBackKeyPressed()
12-04 16:40:04.900 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:04.907 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.929 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.936 2451 7203 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: com.google.android.simappdialog.gts
12-04 16:40:04.936 2451 3243 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: com.google.android.simappdialog.gts
12-04 16:40:04.936 2451 3243 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: android.net.cts
12-04 16:40:04.936 2451 7203 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: android.net.cts
12-04 16:40:04.945 2451 2507 E BatteryExternalStatsWorker: no controller energy info supplied for bluetooth
12-04 16:40:04.946 3026 3026 D AvatarViewMixin: Feature disabled by config. Skipping
12-04 16:40:04.950 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.961 2230 2940 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 16:40:04.964 2451 2507 E KernelCpuSpeedReader: Failed to read cpu-freq: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state: open failed: ENOENT (No such file or directory)
12-04 16:40:04.965 2451 7111 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: com.google.android.simappdialog.gts
12-04 16:40:04.965 2451 7111 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: android.net.cts
12-04 16:40:04.967 2451 2507 W BatteryExternalStatsWorker: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
12-04 16:40:04.967 2451 2507 D KernelCpuUidUserSysTimeReader: Removing uids 1037-1037
12-04 16:40:04.971 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.996 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.998 3026 8619 D BatteryInfo: time for getStats: 63ms
12-04 16:40:04.999 3026 4758 D BatteryTipLoader: BatteryInfoLoader post query: 1ms
12-04 16:40:04.999 3026 4758 D BatteryInfo: time for getBatteryInfo: 0ms
12-04 16:40:04.999 3026 4758 D BatteryTipLoader: BatteryInfoLoader.loadInBackground: 1ms
12-04 16:40:05.001 3026 8619 D BatteryInfo: time for regular BatteryInfo: 3ms
12-04 16:40:05.001 3026 8619 D BatteryInfo: time for getBatteryInfo: 0ms
12-04 16:40:05.014 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:05.046 2130 4727 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 16:40:05.067 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:05.089 2451 6775 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: com.google.android.simappdialog.gts
12-04 16:40:05.089 2451 6775 E TAG : Exception = android.content.pm.PackageManager$NameNotFoundException: android.net.cts
12-04 16:40:05.091 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:04.969 2451 2507 D KernelCpuUidUserSysTimeReader: Removing uids 1037-1037
12-04 16:40:05.101 2451 2507 E BatteryExternalStatsWorker: no controller energy info supplied for bluetooth
12-04 16:40:05.112 2451 2507 E KernelCpuSpeedReader: Failed to read cpu-freq: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state: open failed: ENOENT (No such file or directory)
12-04 16:40:05.110 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:05.117 3026 3026 D BatteryInfo: time for callback: 0ms
12-04 16:40:05.119 2451 2507 W BatteryExternalStatsWorker: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
12-04 16:40:05.132 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:05.153 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:05.156 3026 4758 D BatteryTipLoader: BatteryInfoLoader post query: 1ms
12-04 16:40:05.157 3026 4758 D BatteryInfo: time for getBatteryInfo: 1ms
12-04 16:40:05.157 3026 4758 D BatteryTipLoader: BatteryInfoLoader.loadInBackground: 3ms
12-04 16:40:05.174 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:05.211 2451 3438 E TaskPersister: File error accessing recents directory (directory doesn't exist?).
12-04 16:40:05.600 2130 4727 I chatty : uid=1041(audioserver) writer identical 20 lines
12-04 16:40:05.621 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:05.630 8620 8660 E AdapterState: BLE_TURNING_ON : BLE_START_TIMEOUT
12-04 16:40:05.630 8620 8660 I AdapterState: BLE_TURNING_OFF : entered
12-04 16:40:05.630 8620 8660 D AdapterProperties: Setting state to BLE_TURNING_OFF
12-04 16:40:05.630 8620 8660 D BluetoothAdapterService: updateAdapterState() - Broadcasting state BLE_TURNING_OFF to 1 receivers.
12-04 16:40:05.631 2451 2492 D BluetoothManagerService: MESSAGE_BLUETOOTH_STATE_CHANGE: BLE_TURNING_ON > BLE_TURNING_OFF
12-04 16:40:05.631 2451 2492 D BluetoothManagerService: Sending BLE State Change: BLE_TURNING_ON > BLE_TURNING_OFF
12-04 16:40:05.631 8620 8660 D AdapterProperties: onBleDisable
12-04 16:40:05.633 8620 8620 D BtGatt.DebugUtils: handleDebugAction() action=null
12-04 16:40:05.638 8620 8620 W : [1204/164005.637971:WARNING:bta_gattc_api.cc(61)] GATTC Module not enabled/already disabled
12-04 16:40:05.638 8620 8620 W : [1204/164005.638173:WARNING:bta_gatts_api.cc(56)] GATTS Module not enabled/already disabled
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: exception when invoking removeOnUidImportanceListener
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: java.lang.IllegalArgumentException: Listener not registered: com.android.bluetooth.gatt.ScanManager$2@7371d49
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at android.app.ActivityManager.removeOnUidImportanceListener(ActivityManager.java:3382)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at com.android.bluetooth.gatt.ScanManager.cleanup(ScanManager.java:157)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at com.android.bluetooth.gatt.GattService.cleanup(GattService.java:254)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at com.android.bluetooth.btservice.ProfileService.onDestroy(ProfileService.java:211)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at android.app.ActivityThread.handleStopService(ActivityThread.java:4140)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at android.app.ActivityThread.access$1900(ActivityThread.java:219)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1905)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at android.os.Handler.dispatchMessage(Handler.java:107)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at android.os.Looper.loop(Looper.java:214)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at android.app.ActivityThread.main(ActivityThread.java:7386)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at java.lang.reflect.Method.invoke(Native Method)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
12-04 16:40:05.639 8620 8620 W BtGatt.ScanManager: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1072)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: exception when invoking unregisterReceiver(mLocationReceiver)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: java.lang.IllegalArgumentException: Receiver not registered: com.android.bluetooth.gatt.ScanManager$3@cd9e64e
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:1429)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1543)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:664)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at com.android.bluetooth.gatt.ScanManager.cleanup(ScanManager.java:178)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at com.android.bluetooth.gatt.GattService.cleanup(GattService.java:254)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at com.android.bluetooth.btservice.ProfileService.onDestroy(ProfileService.java:211)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at android.app.ActivityThread.handleStopService(ActivityThread.java:4140)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at android.app.ActivityThread.access$1900(ActivityThread.java:219)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1905)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at android.os.Handler.dispatchMessage(Handler.java:107)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at android.os.Looper.loop(Looper.java:214)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at android.app.ActivityThread.main(ActivityThread.java:7386)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at java.lang.reflect.Method.invoke(Native Method)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
12-04 16:40:05.640 8620 8620 W BtGatt.ScanManager: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1072)
12-04 16:40:05.643 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.475 2130 4727 I chatty : uid=1041(audioserver) writer identical 39 lines
12-04 16:40:06.496 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.505 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:06.506 2768 2768 W KeyButtonRipple: mSupportHardware: true mDark: true mLastDark: true pressed: true
12-04 16:40:06.506 2768 2768 W KeyButtonRipple: mDelayTouchFeedback: false
12-04 16:40:06.506 2768 2768 W KeyButtonRipple: enterHardware cancelAnimations
12-04 16:40:06.507 2768 2768 W KeyButtonRipple: enterHardware isHorizontal is true!
12-04 16:40:06.509 2768 2768 W KeyButtonRipple: enterHardware mDelayTouchFeedback: false mPressed: false
12-04 16:40:06.509 2768 2768 W KeyButtonView: mCode: 4
12-04 16:40:06.509 2768 2768 I KeyButtonView: Back button event: ACTION_DOWN
12-04 16:40:06.514 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:06.518 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.551 2130 4727 I chatty : uid=1041(audioserver) writer identical 2 lines
12-04 16:40:06.572 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.582 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:06.584 2768 2768 W KeyButtonRipple: mSupportHardware: true mDark: true mLastDark: true pressed: false
12-04 16:40:06.586 2768 2768 I KeyButtonView: Back button event: ACTION_UP
12-04 16:40:06.588 2451 2491 D AutofillManagerService: onBackKeyPressed()
12-04 16:40:06.588 2451 2638 V InputDispatcher: Asynchronous input event injection succeeded.
12-04 16:40:06.593 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.614 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.633 8620 8660 E AdapterState: BLE_TURNING_OFF : BLE_STOP_TIMEOUT
12-04 16:40:06.633 8620 8660 I AdapterState: OFF : entered
12-04 16:40:06.633 8620 8660 D AdapterProperties: Setting state to OFF
12-04 16:40:06.634 8620 8660 D BluetoothAdapterService: updateAdapterState() - Broadcasting state OFF to 1 receivers.
12-04 16:40:06.634 2451 2492 D BluetoothManagerService: MESSAGE_BLUETOOTH_STATE_CHANGE: BLE_TURNING_OFF > OFF
12-04 16:40:06.634 2451 2492 D BluetoothManagerService: Bluetooth is complete send Service Down
12-04 16:40:06.634 2451 2492 D BluetoothManagerService: Broadcasting onBluetoothServiceDown() to 5 receivers.
12-04 16:40:06.635 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.635 2451 2492 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@b27333
12-04 16:40:06.635 3026 3045 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@bf2291e
12-04 16:40:06.636 2768 2786 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@407851d
12-04 16:40:06.636 2451 2492 D BluetoothManagerService: unbindAndFinish(): android.bluetooth.IBluetooth$Stub$Proxy@b27333 mBinding = false mUnbinding = false
12-04 16:40:06.636 8620 8676 D BluetoothAdapter: onBluetoothServiceDown: com.android.bluetooth.btservice.AdapterService$AdapterServiceBinder@f0d0c95
12-04 16:40:06.636 2894 3435 D BluetoothAdapter: onBluetoothServiceDown: android.bluetooth.IBluetooth$Stub$Proxy@c170371
12-04 16:40:06.657 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.662 8620 8620 D BluetoothAdapterService: onUnbind() - calling cleanup
12-04 16:40:06.662 8620 8620 D BluetoothAdapterService: cleanup()
12-04 16:40:06.672 2451 2492 D BluetoothManagerService: Sending BLE State Change: BLE_TURNING_OFF > OFF
12-04 16:40:06.678 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.681 2451 2492 D BluetoothManagerService: Entering STATE_OFF but mEnabled is true; restarting.
12-04 16:40:06.681 8620 8620 W BluetoothSdpJni: Cleaning up Bluetooth SDP Interface...
12-04 16:40:06.681 2451 2492 E BluetoothManagerService: waitForState [10] time out
12-04 16:40:06.681 8620 8620 W BluetoothSdpJni: Cleaning up Bluetooth SDP object
12-04 16:40:06.681 8620 8620 D BluetoothAdapterService: cleanup() - Cleaning up adapter native
12-04 16:40:06.699 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.720 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.729 3194 3194 I Launcher: Launcher:onResume start
12-04 16:40:06.731 3194 3194 I Launcher: Launcher:onResume end
12-04 16:40:06.733 2230 2230 D omx_venc: <__AwOmxVencFillThisBuffer:2082>: vencOutPort: fill_this_buffer 50 times
12-04 16:40:06.753 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.774 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.797 2230 2940 D omx_venc: <__AwOmxVencEmptyThisBuffer:2043>: vencInPort: , empty_this_buffer 50 times
12-04 16:40:06.798 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.816 2130 4727 I chatty : uid=1041(audioserver) writer identical 1 line
12-04 16:40:06.839 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_DULSPK(0x4)
12-04 16:40:06.860 2149 2525 D PermissionCache: checking android.permission.READ_FRAME_BUFFER for uid=1000 => granted (274 us)
12-04 16:40:06.861 2135 2340 E IMGSRV : :0: OSMMapPMR: SVM mmap not supported on architecture.
12-04 16:40:06.863 2135 2340 I chatty : uid=1000(system) HwBinder:2135_1 identical 36 lines
12-04 16:40:06.863 2135 2340 E IMGSRV : :0: OSMMapPMR: SVM mmap not supported on architecture.
12-04 16:40:06.866 2130 4727 V audio_platform: mode(0),devices(0x2):platform device:OUT_
求助帖: 自制V3s 开发板 OV2640 拍照测试 照片为全绿
https://whycan.com/t_9665.html
荔枝派跑ov2640摄像头拍图效果不好,请问怎么解决
https://whycan.com/t_9486.html
[BOOT0] BOOT0 is starting DBG: bootinfo error1
melis v1.7 挂这里了!不知道为啥
请教一下C200S 的官方直接下载V1.6 无法正常启动
https://bbs.aw-ol.com/topic/1833
根据这个帖子搞定了,用 git reset --hard 复位一下源码目录
DBG: init uart OK, running at 102000000M
fes1 is starting
init dram , base is 0x80000000
init dram , clk is 120
init dram , access_mode is 1
init dram , cs_num is 0x00000001
init dram , ddr8_remap is 0
init dram , sdr_ddr is 1
init dram , bwidth is 16
init dram , col_width is 10
init dram , row_width is 13
init dram , bank_size is 4
init dram , cas is 3
init dram , size is 120
dram init successed,size is 64
init dram OK, size is 64
fes init dram OK, size is 64
U-Boot 2011.09-rc1-00000-g1d30c34-dirty (Mar 21 2024 - 21:12:43) Allwinner Technology
DRAM: 64 MiB
storage_type: 3
work_mode: 0x10
read flash error
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
work mode=0x10
run usb efex
delay time 2500
usb init ok
usb_set_address_delay_time:15
usb_set_address_delay_time:15
the 0 mbr table is ok
the 1 mbr table is ok
the 2 mbr table is ok
the 3 mbr table is ok
do not need erase flash
sunxi spinor is initing...
OK
spinor id = 0x182085 ret = 0x0
flash size is 8 Mbytes
spinor id = 0x182085
==================================
erase nor flash now , waiting ...
==================================
nor flash erasered finish
==================================
begin to burn[0] , waiting ...
==================================
==================================
begin to burn[1] , waiting ...
==================================
==================================
begin to burn[2] , waiting ...
==================================
==================================
begin to burn[3] , waiting ...
==================================
==================================
begin to burn[4] , waiting ...
==================================
==================================
begin to burn[5] , waiting ...
==================================
==================================
begin to burn[6] , waiting ...
==================================
==================================
begin to burn[7] , waiting ...
==================================
spinor read: start 0x0, sector 0x800
==============================
addr:0 = a9 0 0 ea 65 47 4f 4e 2e 42 54 30 b3 88 9e dc
addr:400 = 0 20 a0 e1 10 40 2d e9 2c 1 9f e5 1 1b a0 e3
==============================
spinor read: start 0x800, sector 0x800
==============================
addr:800 = 11 20 c0 1 88 43 10 d1 c8 49 88 6a 40 1c 88 62
addr:c00 = 63 60 60 60 60 59 57 57 57 57 57 50 57 50 50 50
==============================
spinor read: start 0x1000, sector 0x800
==============================
addr:1000 = 8a ff 82 84 8a ff 82 84 8a ff 82 84 8a ff 82 84
addr:1400 = 3d 4c c8 38 ae c8 b5 a8 2c 65 19 75 2c 89 cf 15
==============================
spinor read: start 0x1800, sector 0x800
==============================
addr:1800 = a c3 4e d6 c5 66 98 11 cb 2d 8d af 72 f4 c0 4a
addr:1c00 = a8 3e 1b 9b 51 88 6f 6f eb 28 a9 fe d2 e9 10 57
==============================
spinor read: start 0x2000, sector 0x800
==============================
addr:2000 = 7f 52 aa a f3 e8 26 0 cc f5 4d 8 1a c1 ed ce
addr:2400 = 32 db f6 e5 d2 f 71 92 e 33 2e d4 fb 97 59 9d
==============================
spinor read: start 0x2800, sector 0x800
==============================
addr:2800 = 1 fe 98 ca 86 b1 f7 ae fe 9 4d 5d 65 ac 70 65
addr:2c00 = c9 f7 fa 6b 34 df 6b 41 4f bd 4b 8d ff fd 84 51
==============================
spinor read: start 0x3000, sector 0x800
==============================
addr:3000 = 4a 52 8a 52 4b 52 34 9a 10 94 29 10 49 12 82 12
addr:3400 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
==============================
spinor read: start 0x3800, sector 0x800
==============================
addr:3800 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
addr:3c00 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
==============================
read check sum = 0x5a386cac
force sunxi spinor exit
exit usb
next work 2
SUNXI_UPDATE_NEXT_ACTION_REBOOT
set next system normal
[BOOT0] BOOT0 is starting
DBG: bootinfo error1
换了个8M的flash,可以烧完了,但是不知道有没有起来。
DBG: init uart OK, running at 102000000M
fes1 is starting
init dram , base is 0x80000000
init dram , clk is 120
init dram , access_mode is 1
init dram , cs_num is 0x00000001
init dram , ddr8_remap is 0
init dram , sdr_ddr is 1
init dram , bwidth is 16
init dram , col_width is 10
init dram , row_width is 13
init dram , bank_size is 4
init dram , cas is 3
init dram , size is 120
dram init successed,size is 64
init dram OK, size is 64
fes init dram OK, size is 64
U-Boot 2011.09-rc1-00000-g1d30c34-dirty (Mar 21 2024 - 21:12:43) Allwinner Technology
DRAM: 64 MiB
storage_type: 3
work_mode: 0x10
read flash error
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
work mode=0x10
run usb efex
delay time 2500
usb init ok
usb_set_address_delay_time:15
usb_set_address_delay_time:15
the 0 mbr table is ok
the 1 mbr table is ok
the 2 mbr table is ok
the 3 mbr table is ok
do not need erase flash
sunxi spinor is initing...
OK
spinor id = 0x1620c2 ret = 0x0
flash size is 4 Mbytes
spinor id = 0x1620c2
==================================
erase nor flash now , waiting ...
==================================
nor flash erasered finish
==================================
begin to burn[0] , waiting ...
==================================
==================================
begin to burn[1] , waiting ...
==================================
==================================
begin to burn[2] , waiting ...
==================================
==================================
begin to burn[3] , waiting ...
==================================
==================================
begin to burn[4] , waiting ...
==================================
==================================
begin to burn[5] , waiting ...
==================================
==================================
begin to burn[6] , waiting ...
==================================
==================================
begin to burn[7] , waiting ...
==================================
spinor read: start 0x0, sector 0x800
==============================
addr:0 = 29 0 0 a 61 40 6 0 c 40 44 0 12 80 8c cc
addr:400 = 0 0 a0 e1 10 0 21 80 c 1 e c4 1 13 0 81
==============================
spinor read: start 0x800, sector 0x800
==============================
addr:800 = 1 20 80 0 80 1 10 80 c8 9 8 48 40 c 0 60
addr:c00 = 41 60 60 60 20 59 43 41 47 15 43 0 57 50 0 50
==============================
spinor read: start 0x1000, sector 0x800
==============================
addr:1000 = a 52 82 0 a 52 0 80 0 94 0 0 8 12 82 0
addr:1400 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
==============================
spinor read: start 0x1800, sector 0x800
==============================
addr:1800 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
addr:1c00 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
==============================
spinor read: start 0x2000, sector 0x800
==============================
addr:2000 = 29 0 0 a 61 40 6 0 c 40 44 0 12 80 8c cc
addr:2400 = 0 0 a0 e1 10 0 21 80 c 1 e c4 1 13 0 81
==============================
spinor read: start 0x2800, sector 0x800
==============================
addr:2800 = 1 20 80 0 80 1 10 80 c8 9 8 48 40 c 0 60
addr:2c00 = 41 60 60 60 20 59 43 41 47 15 43 0 57 50 0 50
==============================
spinor read: start 0x3000, sector 0x800
==============================
addr:3000 = a 52 82 0 a 52 0 80 0 94 0 0 8 12 82 0
addr:3400 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
==============================
spinor read: start 0x3800, sector 0x800
==============================
addr:3800 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
addr:3c00 = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
==============================
read check sum = 0xd0a16c1a
force sunxi spinor exit
https://whycan.com/files/members/718/default.png
大佬,我这边在t113-s3上调试aic8800d遇到点问题
试一试这个:
modprobe aic8800_fdrv 出错,请问是什么原因呢?
https://whycan.com/t_10618.html#p102052
CONFIG_PLATFORM_ALLWINNER ?= y
CONFIG_PLATFORM_UBUNTU ?= n
GUI Guider 的 3D 动画是这个软件一帧帧生成的,
widgets_init.c
const lv_img_dsc_t * screen2_image3D_1_imgs[30] = {
&screen2_image3D_1second_needle_2000,
&screen2_image3D_1second_needle_2001,
&screen2_image3D_1second_needle_2002,
&screen2_image3D_1second_needle_2003,
&screen2_image3D_1second_needle_2004,
&screen2_image3D_1second_needle_2005,
&screen2_image3D_1second_needle_2006,
&screen2_image3D_1second_needle_2007,
&screen2_image3D_1second_needle_2008,
&screen2_image3D_1second_needle_2009,
&screen2_image3D_1second_needle_2010,
&screen2_image3D_1second_needle_2011,
&screen2_image3D_1second_needle_2012,
&screen2_image3D_1second_needle_2013,
&screen2_image3D_1second_needle_2014,
&screen2_image3D_1second_needle_2015,
&screen2_image3D_1second_needle_2016,
&screen2_image3D_1second_needle_2017,
&screen2_image3D_1second_needle_2018,
&screen2_image3D_1second_needle_2019,
&screen2_image3D_1second_needle_2020,
&screen2_image3D_1second_needle_2021,
&screen2_image3D_1second_needle_2022,
&screen2_image3D_1second_needle_2023,
&screen2_image3D_1second_needle_2024,
&screen2_image3D_1second_needle_2025,
&screen2_image3D_1second_needle_2026,
&screen2_image3D_1second_needle_2027,
&screen2_image3D_1second_needle_2028,
&screen2_image3D_1second_needle_2029,
};
main.c
int main(int argc, char ** argv)
{
(void) argc; /*Unused*/
(void) argv; /*Unused*/
/*Initialize LittlevGL*/
lv_init();
/*Initialize the HAL (display, input devices, tick) for LittlevGL*/
hal_init();
/*Create a GUI-Guider app */
setup_ui(&guider_ui); //运行第一个screen,在编辑选中的那个screen最先启动
events_init(&guider_ui);
custom_init(&guider_ui);
gui_guider.c
void setup_ui(lv_ui *ui)
{
init_scr_del_flag(ui);
setup_scr_screen1(ui); //初始化第一个 screen,先设置ui,再执行用户自定义代码
lv_scr_load(ui->screen1); //加载第一个screen
}
setup_scr_screenX.c //screenX 初始化
void setup_scr_screenX(lv_ui *ui)
{
}
多group 的 demo
lv_obj_t *btn1, *btn2, *btn3, *btn4;
lv_group_t* group1;
lv_group_t* group2;
void change_group_event_cb(lv_event_t* e)
{
lv_indev_t * cur_drv = NULL;
cur_drv = lv_indev_get_next(cur_drv);
if(!cur_drv) {
}
lv_indev_set_group(cur_drv, group1);
lv_group_focus_obj(btn1);
}
void init_multi_groups(void)
{
// 创建第一个组的对象
lv_obj_t* textarea1 = lv_textarea_create(lv_scr_act());
lv_obj_set_size(textarea1, 200, 100);
lv_obj_align(textarea1, LV_ALIGN_CENTER, -150, -100);
btn1 = lv_btn_create(lv_scr_act());
lv_obj_set_size(btn1, 100, 50);
lv_obj_align(btn1, LV_ALIGN_CENTER, -150, 0);
lv_obj_t *label1 = lv_label_create(btn1);
lv_label_set_text(label1, "Button 1");
btn2 = lv_btn_create(lv_scr_act());
lv_obj_set_size(btn2, 100, 50);
lv_obj_align(btn2, LV_ALIGN_CENTER, -150, 100);
lv_obj_t *label2 = lv_label_create(btn2);
lv_label_set_text(label2, "Button 2");
// 创建第二个组的对象
lv_obj_t* textarea2 = lv_textarea_create(lv_scr_act());
lv_obj_set_size(textarea2, 200, 100);
lv_obj_align(textarea2, LV_ALIGN_CENTER, 150, -100);
btn3 = lv_btn_create(lv_scr_act());
lv_obj_set_size(btn3, 100, 50);
lv_obj_align(btn3, LV_ALIGN_CENTER, 150, 0);
lv_obj_t *label3 = lv_label_create(btn3);
lv_label_set_text(label3, "Button 3");
btn4 = lv_btn_create(lv_scr_act());
lv_obj_set_size(btn4, 100, 50);
lv_obj_align(btn4, LV_ALIGN_CENTER, 150, 100);
lv_obj_t *label4 = lv_label_create(btn4);
lv_label_set_text(label4, "Button 4");
// 创建两个输入设备组
group1 = lv_group_create();
lv_group_add_obj(group1, textarea1);
lv_group_add_obj(group1, btn1);
lv_group_add_obj(group1, btn2);
group2 = lv_group_create();
lv_group_add_obj(group2, textarea2);
lv_group_add_obj(group2, btn3);
lv_group_add_obj(group2, btn4);
lv_obj_add_event_cb(btn4, change_group_event_cb, LV_EVENT_CLICKED, NULL);
// 初始焦点设置到第一个组的第一个对象
lv_indev_t * cur_drv = NULL;
cur_drv = lv_indev_get_next(cur_drv);
if(!cur_drv) {
}
lv_indev_set_group(cur_drv, group2);
lv_group_focus_obj(textarea2);
}
这个demo默认焦点在 group2 上,点击btn4之后,默认焦点切换到group1。
static int g_encoder_status = 0; //记住按键是否被按下,1:按下,0:抬起
if(drv->type == LV_INDEV_TYPE_ENCODER) {
if (g_encoder_status == 1) {
data->state = 1;
data->enc_diff = 0;
}
}
} else if(drv->type == LV_INDEV_TYPE_ENCODER) {
switch(in.code) {
case KEY_UP: //模拟编码器向上滚
data->state = 0;
if(in.value == 1) {
data->enc_diff = -1;
} else {
data->enc_diff = 0;
}
break;
case KEY_DOWN: //模拟编码器向下滚
data->state = 0;
if(in.value == 1) {
data->enc_diff = 1;
} else {
data->enc_diff = 0;
}
break;
case KEY_ENTER: //模拟编码器按下
g_encoder_status = in.value;
data->state = in.value;
data->enc_diff = 0;
break;
}
加入一个全局变量解决这个问题。
大概找到问题了,linux 的 event 设备,按键一直按住,也只触发一次。
https://elinux.org/images/9/93/Evtest.c
/*
* $Id: evtest.c,v 1.23 2005/02/06 13:51:42 vojtech Exp $
*
* Copyright (c) 1999-2000 Vojtech Pavlik
*
* Event device test program
*/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Should you need to contact me, the author, you can do so either by
* e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
* Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
*/
#include <stdint.h>
#include <linux/input.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#ifndef EV_SYN
#define EV_SYN 0
#endif
char *events[EV_MAX + 1] = {
[0 ... EV_MAX] = NULL,
[EV_SYN] = "Sync", [EV_KEY] = "Key",
[EV_REL] = "Relative", [EV_ABS] = "Absolute",
[EV_MSC] = "Misc", [EV_LED] = "LED",
[EV_SND] = "Sound", [EV_REP] = "Repeat",
[EV_FF] = "ForceFeedback", [EV_PWR] = "Power",
[EV_FF_STATUS] = "ForceFeedbackStatus",
};
char *keys[KEY_MAX + 1] = {
[0 ... KEY_MAX] = NULL,
[KEY_RESERVED] = "Reserved", [KEY_ESC] = "Esc",
[KEY_1] = "1", [KEY_2] = "2",
[KEY_3] = "3", [KEY_4] = "4",
[KEY_5] = "5", [KEY_6] = "6",
[KEY_7] = "7", [KEY_8] = "8",
[KEY_9] = "9", [KEY_0] = "0",
[KEY_MINUS] = "Minus", [KEY_EQUAL] = "Equal",
[KEY_BACKSPACE] = "Backspace", [KEY_TAB] = "Tab",
[KEY_Q] = "Q", [KEY_W] = "W",
[KEY_E] = "E", [KEY_R] = "R",
[KEY_T] = "T", [KEY_Y] = "Y",
[KEY_U] = "U", [KEY_I] = "I",
[KEY_O] = "O", [KEY_P] = "P",
[KEY_LEFTBRACE] = "LeftBrace", [KEY_RIGHTBRACE] = "RightBrace",
[KEY_ENTER] = "Enter", [KEY_LEFTCTRL] = "LeftControl",
[KEY_A] = "A", [KEY_S] = "S",
[KEY_D] = "D", [KEY_F] = "F",
[KEY_G] = "G", [KEY_H] = "H",
[KEY_J] = "J", [KEY_K] = "K",
[KEY_L] = "L", [KEY_SEMICOLON] = "Semicolon",
[KEY_APOSTROPHE] = "Apostrophe", [KEY_GRAVE] = "Grave",
[KEY_LEFTSHIFT] = "LeftShift", [KEY_BACKSLASH] = "BackSlash",
[KEY_Z] = "Z", [KEY_X] = "X",
[KEY_C] = "C", [KEY_V] = "V",
[KEY_B] = "B", [KEY_N] = "N",
[KEY_M] = "M", [KEY_COMMA] = "Comma",
[KEY_DOT] = "Dot", [KEY_SLASH] = "Slash",
[KEY_RIGHTSHIFT] = "RightShift", [KEY_KPASTERISK] = "KPAsterisk",
[KEY_LEFTALT] = "LeftAlt", [KEY_SPACE] = "Space",
[KEY_CAPSLOCK] = "CapsLock", [KEY_F1] = "F1",
[KEY_F2] = "F2", [KEY_F3] = "F3",
[KEY_F4] = "F4", [KEY_F5] = "F5",
[KEY_F6] = "F6", [KEY_F7] = "F7",
[KEY_F8] = "F8", [KEY_F9] = "F9",
[KEY_F10] = "F10", [KEY_NUMLOCK] = "NumLock",
[KEY_SCROLLLOCK] = "ScrollLock", [KEY_KP7] = "KP7",
[KEY_KP8] = "KP8", [KEY_KP9] = "KP9",
[KEY_KPMINUS] = "KPMinus", [KEY_KP4] = "KP4",
[KEY_KP5] = "KP5", [KEY_KP6] = "KP6",
[KEY_KPPLUS] = "KPPlus", [KEY_KP1] = "KP1",
[KEY_KP2] = "KP2", [KEY_KP3] = "KP3",
[KEY_KP0] = "KP0", [KEY_KPDOT] = "KPDot",
[KEY_ZENKAKUHANKAKU] = "Zenkaku/Hankaku", [KEY_102ND] = "102nd",
[KEY_F11] = "F11", [KEY_F12] = "F12",
[KEY_RO] = "RO", [KEY_KATAKANA] = "Katakana",
[KEY_HIRAGANA] = "HIRAGANA", [KEY_HENKAN] = "Henkan",
[KEY_KATAKANAHIRAGANA] = "Katakana/Hiragana", [KEY_MUHENKAN] = "Muhenkan",
[KEY_KPJPCOMMA] = "KPJpComma", [KEY_KPENTER] = "KPEnter",
[KEY_RIGHTCTRL] = "RightCtrl", [KEY_KPSLASH] = "KPSlash",
[KEY_SYSRQ] = "SysRq", [KEY_RIGHTALT] = "RightAlt",
[KEY_LINEFEED] = "LineFeed", [KEY_HOME] = "Home",
[KEY_UP] = "Up", [KEY_PAGEUP] = "PageUp",
[KEY_LEFT] = "Left", [KEY_RIGHT] = "Right",
[KEY_END] = "End", [KEY_DOWN] = "Down",
[KEY_PAGEDOWN] = "PageDown", [KEY_INSERT] = "Insert",
[KEY_DELETE] = "Delete", [KEY_MACRO] = "Macro",
[KEY_MUTE] = "Mute", [KEY_VOLUMEDOWN] = "VolumeDown",
[KEY_VOLUMEUP] = "VolumeUp", [KEY_POWER] = "Power",
[KEY_KPEQUAL] = "KPEqual", [KEY_KPPLUSMINUS] = "KPPlusMinus",
[KEY_PAUSE] = "Pause", [KEY_KPCOMMA] = "KPComma",
[KEY_HANGUEL] = "Hanguel", [KEY_HANJA] = "Hanja",
[KEY_YEN] = "Yen", [KEY_LEFTMETA] = "LeftMeta",
[KEY_RIGHTMETA] = "RightMeta", [KEY_COMPOSE] = "Compose",
[KEY_STOP] = "Stop", [KEY_AGAIN] = "Again",
[KEY_PROPS] = "Props", [KEY_UNDO] = "Undo",
[KEY_FRONT] = "Front", [KEY_COPY] = "Copy",
[KEY_OPEN] = "Open", [KEY_PASTE] = "Paste",
[KEY_FIND] = "Find", [KEY_CUT] = "Cut",
[KEY_HELP] = "Help", [KEY_MENU] = "Menu",
[KEY_CALC] = "Calc", [KEY_SETUP] = "Setup",
[KEY_SLEEP] = "Sleep", [KEY_WAKEUP] = "WakeUp",
[KEY_FILE] = "File", [KEY_SENDFILE] = "SendFile",
[KEY_DELETEFILE] = "DeleteFile", [KEY_XFER] = "X-fer",
[KEY_PROG1] = "Prog1", [KEY_PROG2] = "Prog2",
[KEY_WWW] = "WWW", [KEY_MSDOS] = "MSDOS",
[KEY_COFFEE] = "Coffee", [KEY_DIRECTION] = "Direction",
[KEY_CYCLEWINDOWS] = "CycleWindows", [KEY_MAIL] = "Mail",
[KEY_BOOKMARKS] = "Bookmarks", [KEY_COMPUTER] = "Computer",
[KEY_BACK] = "Back", [KEY_FORWARD] = "Forward",
[KEY_CLOSECD] = "CloseCD", [KEY_EJECTCD] = "EjectCD",
[KEY_EJECTCLOSECD] = "EjectCloseCD", [KEY_NEXTSONG] = "NextSong",
[KEY_PLAYPAUSE] = "PlayPause", [KEY_PREVIOUSSONG] = "PreviousSong",
[KEY_STOPCD] = "StopCD", [KEY_RECORD] = "Record",
[KEY_REWIND] = "Rewind", [KEY_PHONE] = "Phone",
[KEY_ISO] = "ISOKey", [KEY_CONFIG] = "Config",
[KEY_HOMEPAGE] = "HomePage", [KEY_REFRESH] = "Refresh",
[KEY_EXIT] = "Exit", [KEY_MOVE] = "Move",
[KEY_EDIT] = "Edit", [KEY_SCROLLUP] = "ScrollUp",
[KEY_SCROLLDOWN] = "ScrollDown", [KEY_KPLEFTPAREN] = "KPLeftParenthesis",
[KEY_KPRIGHTPAREN] = "KPRightParenthesis", [KEY_F13] = "F13",
[KEY_F14] = "F14", [KEY_F15] = "F15",
[KEY_F16] = "F16", [KEY_F17] = "F17",
[KEY_F18] = "F18", [KEY_F19] = "F19",
[KEY_F20] = "F20", [KEY_F21] = "F21",
[KEY_F22] = "F22", [KEY_F23] = "F23",
[KEY_F24] = "F24", [KEY_PLAYCD] = "PlayCD",
[KEY_PAUSECD] = "PauseCD", [KEY_PROG3] = "Prog3",
[KEY_PROG4] = "Prog4", [KEY_SUSPEND] = "Suspend",
[KEY_CLOSE] = "Close", [KEY_PLAY] = "Play",
[KEY_FASTFORWARD] = "Fast Forward", [KEY_BASSBOOST] = "Bass Boost",
[KEY_PRINT] = "Print", [KEY_HP] = "HP",
[KEY_CAMERA] = "Camera", [KEY_SOUND] = "Sound",
[KEY_QUESTION] = "Question", [KEY_EMAIL] = "Email",
[KEY_CHAT] = "Chat", [KEY_SEARCH] = "Search",
[KEY_CONNECT] = "Connect", [KEY_FINANCE] = "Finance",
[KEY_SPORT] = "Sport", [KEY_SHOP] = "Shop",
[KEY_ALTERASE] = "Alternate Erase", [KEY_CANCEL] = "Cancel",
[KEY_BRIGHTNESSDOWN] = "Brightness down", [KEY_BRIGHTNESSUP] = "Brightness up",
[KEY_MEDIA] = "Media", [KEY_UNKNOWN] = "Unknown",
[BTN_0] = "Btn0", [BTN_1] = "Btn1",
[BTN_2] = "Btn2", [BTN_3] = "Btn3",
[BTN_4] = "Btn4", [BTN_5] = "Btn5",
[BTN_6] = "Btn6", [BTN_7] = "Btn7",
[BTN_8] = "Btn8", [BTN_9] = "Btn9",
[BTN_LEFT] = "LeftBtn", [BTN_RIGHT] = "RightBtn",
[BTN_MIDDLE] = "MiddleBtn", [BTN_SIDE] = "SideBtn",
[BTN_EXTRA] = "ExtraBtn", [BTN_FORWARD] = "ForwardBtn",
[BTN_BACK] = "BackBtn", [BTN_TASK] = "TaskBtn",
[BTN_TRIGGER] = "Trigger", [BTN_THUMB] = "ThumbBtn",
[BTN_THUMB2] = "ThumbBtn2", [BTN_TOP] = "TopBtn",
[BTN_TOP2] = "TopBtn2", [BTN_PINKIE] = "PinkieBtn",
[BTN_BASE] = "BaseBtn", [BTN_BASE2] = "BaseBtn2",
[BTN_BASE3] = "BaseBtn3", [BTN_BASE4] = "BaseBtn4",
[BTN_BASE5] = "BaseBtn5", [BTN_BASE6] = "BaseBtn6",
[BTN_DEAD] = "BtnDead", [BTN_A] = "BtnA",
[BTN_B] = "BtnB", [BTN_C] = "BtnC",
[BTN_X] = "BtnX", [BTN_Y] = "BtnY",
[BTN_Z] = "BtnZ", [BTN_TL] = "BtnTL",
[BTN_TR] = "BtnTR", [BTN_TL2] = "BtnTL2",
[BTN_TR2] = "BtnTR2", [BTN_SELECT] = "BtnSelect",
[BTN_START] = "BtnStart", [BTN_MODE] = "BtnMode",
[BTN_THUMBL] = "BtnThumbL", [BTN_THUMBR] = "BtnThumbR",
[BTN_TOOL_PEN] = "ToolPen", [BTN_TOOL_RUBBER] = "ToolRubber",
[BTN_TOOL_BRUSH] = "ToolBrush", [BTN_TOOL_PENCIL] = "ToolPencil",
[BTN_TOOL_AIRBRUSH] = "ToolAirbrush", [BTN_TOOL_FINGER] = "ToolFinger",
[BTN_TOOL_MOUSE] = "ToolMouse", [BTN_TOOL_LENS] = "ToolLens",
[BTN_TOUCH] = "Touch", [BTN_STYLUS] = "Stylus",
[BTN_STYLUS2] = "Stylus2", [BTN_TOOL_DOUBLETAP] = "Tool Doubletap",
[BTN_TOOL_TRIPLETAP] = "Tool Tripletap", [BTN_GEAR_DOWN] = "WheelBtn",
[BTN_GEAR_UP] = "Gear up", [KEY_OK] = "Ok",
[KEY_SELECT] = "Select", [KEY_GOTO] = "Goto",
[KEY_CLEAR] = "Clear", [KEY_POWER2] = "Power2",
[KEY_OPTION] = "Option", [KEY_INFO] = "Info",
[KEY_TIME] = "Time", [KEY_VENDOR] = "Vendor",
[KEY_ARCHIVE] = "Archive", [KEY_PROGRAM] = "Program",
[KEY_CHANNEL] = "Channel", [KEY_FAVORITES] = "Favorites",
[KEY_EPG] = "EPG", [KEY_PVR] = "PVR",
[KEY_MHP] = "MHP", [KEY_LANGUAGE] = "Language",
[KEY_TITLE] = "Title", [KEY_SUBTITLE] = "Subtitle",
[KEY_ANGLE] = "Angle", [KEY_ZOOM] = "Zoom",
[KEY_MODE] = "Mode", [KEY_KEYBOARD] = "Keyboard",
[KEY_SCREEN] = "Screen", [KEY_PC] = "PC",
[KEY_TV] = "TV", [KEY_TV2] = "TV2",
[KEY_VCR] = "VCR", [KEY_VCR2] = "VCR2",
[KEY_SAT] = "Sat", [KEY_SAT2] = "Sat2",
[KEY_CD] = "CD", [KEY_TAPE] = "Tape",
[KEY_RADIO] = "Radio", [KEY_TUNER] = "Tuner",
[KEY_PLAYER] = "Player", [KEY_TEXT] = "Text",
[KEY_DVD] = "DVD", [KEY_AUX] = "Aux",
[KEY_MP3] = "MP3", [KEY_AUDIO] = "Audio",
[KEY_VIDEO] = "Video", [KEY_DIRECTORY] = "Directory",
[KEY_LIST] = "List", [KEY_MEMO] = "Memo",
[KEY_CALENDAR] = "Calendar", [KEY_RED] = "Red",
[KEY_GREEN] = "Green", [KEY_YELLOW] = "Yellow",
[KEY_BLUE] = "Blue", [KEY_CHANNELUP] = "ChannelUp",
[KEY_CHANNELDOWN] = "ChannelDown", [KEY_FIRST] = "First",
[KEY_LAST] = "Last", [KEY_AB] = "AB",
[KEY_NEXT] = "Next", [KEY_RESTART] = "Restart",
[KEY_SLOW] = "Slow", [KEY_SHUFFLE] = "Shuffle",
[KEY_BREAK] = "Break", [KEY_PREVIOUS] = "Previous",
[KEY_DIGITS] = "Digits", [KEY_TEEN] = "TEEN",
[KEY_TWEN] = "TWEN", [KEY_DEL_EOL] = "Delete EOL",
[KEY_DEL_EOS] = "Delete EOS", [KEY_INS_LINE] = "Insert line",
[KEY_DEL_LINE] = "Delete line",
};
char *absval[5] = { "Value", "Min ", "Max ", "Fuzz ", "Flat " };
char *relatives[REL_MAX + 1] = {
[0 ... REL_MAX] = NULL,
[REL_X] = "X", [REL_Y] = "Y",
[REL_Z] = "Z", [REL_HWHEEL] = "HWheel",
[REL_DIAL] = "Dial", [REL_WHEEL] = "Wheel",
[REL_MISC] = "Misc",
};
char *absolutes[ABS_MAX + 1] = {
[0 ... ABS_MAX] = NULL,
[ABS_X] = "X", [ABS_Y] = "Y",
[ABS_Z] = "Z", [ABS_RX] = "Rx",
[ABS_RY] = "Ry", [ABS_RZ] = "Rz",
[ABS_THROTTLE] = "Throttle", [ABS_RUDDER] = "Rudder",
[ABS_WHEEL] = "Wheel", [ABS_GAS] = "Gas",
[ABS_BRAKE] = "Brake", [ABS_HAT0X] = "Hat0X",
[ABS_HAT0Y] = "Hat0Y", [ABS_HAT1X] = "Hat1X",
[ABS_HAT1Y] = "Hat1Y", [ABS_HAT2X] = "Hat2X",
[ABS_HAT2Y] = "Hat2Y", [ABS_HAT3X] = "Hat3X",
[ABS_HAT3Y] = "Hat 3Y", [ABS_PRESSURE] = "Pressure",
[ABS_DISTANCE] = "Distance", [ABS_TILT_X] = "XTilt",
[ABS_TILT_Y] = "YTilt", [ABS_TOOL_WIDTH] = "Tool Width",
[ABS_VOLUME] = "Volume", [ABS_MISC] = "Misc",
};
char *misc[MSC_MAX + 1] = {
[ 0 ... MSC_MAX] = NULL,
[MSC_SERIAL] = "Serial", [MSC_PULSELED] = "Pulseled",
[MSC_GESTURE] = "Gesture", [MSC_RAW] = "RawData",
[MSC_SCAN] = "ScanCode",
};
char *leds[LED_MAX + 1] = {
[0 ... LED_MAX] = NULL,
[LED_NUML] = "NumLock", [LED_CAPSL] = "CapsLock",
[LED_SCROLLL] = "ScrollLock", [LED_COMPOSE] = "Compose",
[LED_KANA] = "Kana", [LED_SLEEP] = "Sleep",
[LED_SUSPEND] = "Suspend", [LED_MUTE] = "Mute",
[LED_MISC] = "Misc",
};
char *repeats[REP_MAX + 1] = {
[0 ... REP_MAX] = NULL,
[REP_DELAY] = "Delay", [REP_PERIOD] = "Period"
};
char *sounds[SND_MAX + 1] = {
[0 ... SND_MAX] = NULL,
[SND_CLICK] = "Click", [SND_BELL] = "Bell",
[SND_TONE] = "Tone"
};
char **names[EV_MAX + 1] = {
[0 ... EV_MAX] = NULL,
[EV_SYN] = events, [EV_KEY] = keys,
[EV_REL] = relatives, [EV_ABS] = absolutes,
[EV_MSC] = misc, [EV_LED] = leds,
[EV_SND] = sounds, [EV_REP] = repeats,
};
#define BITS_PER_LONG (sizeof(long) * 8)
#define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
#define OFF(x) ((x)%BITS_PER_LONG)
#define BIT(x) (1UL<<OFF(x))
#define LONG(x) ((x)/BITS_PER_LONG)
#define test_bit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1)
int main (int argc, char **argv)
{
int fd, rd, i, j, k;
struct input_event ev[64];
int version;
unsigned short id[4];
unsigned long bit[EV_MAX][NBITS(KEY_MAX)];
char name[256] = "Unknown";
int abs[5];
if (argc < 2) {
printf("Usage: evtest /dev/input/eventX\n");
printf("Where X = input device number\n");
return 1;
}
if ((fd = open(argv[argc - 1], O_RDONLY)) < 0) {
perror("evtest");
return 1;
}
if (ioctl(fd, EVIOCGVERSION, &version)) {
perror("evtest: can't get version");
return 1;
}
printf("Input driver version is %d.%d.%d\n",
version >> 16, (version >> 8) & 0xff, version & 0xff);
ioctl(fd, EVIOCGID, id);
printf("Input device ID: bus 0x%x vendor 0x%x product 0x%x version 0x%x\n",
id[ID_BUS], id[ID_VENDOR], id[ID_PRODUCT], id[ID_VERSION]);
ioctl(fd, EVIOCGNAME(sizeof(name)), name);
printf("Input device name: \"%s\"\n", name);
memset(bit, 0, sizeof(bit));
ioctl(fd, EVIOCGBIT(0, EV_MAX), bit[0]);
printf("Supported events:\n");
for (i = 0; i < EV_MAX; i++)
if (test_bit(i, bit[0])) {
printf(" Event type %d (%s)\n", i, events[i] ? events[i] : "?");
if (!i) continue;
ioctl(fd, EVIOCGBIT(i, KEY_MAX), bit[i]);
for (j = 0; j < KEY_MAX; j++)
if (test_bit(j, bit[i])) {
printf(" Event code %d (%s)\n", j, names[i] ? (names[i][j] ? names[i][j] : "?") : "?");
if (i == EV_ABS) {
ioctl(fd, EVIOCGABS(j), abs);
for (k = 0; k < 5; k++)
if ((k < 3) || abs[k])
printf(" %s %6d\n", absval[k], abs[k]);
}
}
}
printf("Testing ... (interrupt to exit)\n");
while (1) {
rd = read(fd, ev, sizeof(struct input_event) * 64);
if (rd < (int) sizeof(struct input_event)) {
printf("yyy\n");
perror("\nevtest: error reading");
return 1;
}
for (i = 0; i < rd / sizeof(struct input_event); i++)
if (ev[i].type == EV_SYN) {
printf("Event: time %ld.%06ld, -------------- %s ------------\n",
ev[i].time.tv_sec, ev[i].time.tv_usec, ev[i].code ? "Config Sync" : "Report Sync" );
} else if (ev[i].type == EV_MSC && (ev[i].code == MSC_RAW || ev[i].code == MSC_SCAN)) {
printf("Event: time %ld.%06ld, type %d (%s), code %d (%s), value %02x\n",
ev[i].time.tv_sec, ev[i].time.tv_usec, ev[i].type,
events[ev[i].type] ? events[ev[i].type] : "?",
ev[i].code,
names[ev[i].type] ? (names[ev[i].type][ev[i].code] ? names[ev[i].type][ev[i].code] : "?") : "?",
ev[i].value);
} else {
printf("Event: time %ld.%06ld, type %d (%s), code %d (%s), value %d\n",
ev[i].time.tv_sec, ev[i].time.tv_usec, ev[i].type,
events[ev[i].type] ? events[ev[i].type] : "?",
ev[i].code,
names[ev[i].type] ? (names[ev[i].type][ev[i].code] ? names[ev[i].type][ev[i].code] : "?") : "?",
ev[i].value);
}
}
}
上面是阻塞式代码,然后我改成非阻塞式(O_NONBLOCK)代码:
/*
* $Id: evtest.c,v 1.23 2005/02/06 13:51:42 vojtech Exp $
*
* Copyright (c) 1999-2000 Vojtech Pavlik
*
* Event device test program
*/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Should you need to contact me, the author, you can do so either by
* e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
* Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
*/
#include <stdint.h>
#include <linux/input.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#ifndef EV_SYN
#define EV_SYN 0
#endif
char *events[EV_MAX + 1] = {
[0 ... EV_MAX] = NULL,
[EV_SYN] = "Sync", [EV_KEY] = "Key",
[EV_REL] = "Relative", [EV_ABS] = "Absolute",
[EV_MSC] = "Misc", [EV_LED] = "LED",
[EV_SND] = "Sound", [EV_REP] = "Repeat",
[EV_FF] = "ForceFeedback", [EV_PWR] = "Power",
[EV_FF_STATUS] = "ForceFeedbackStatus",
};
char *keys[KEY_MAX + 1] = {
[0 ... KEY_MAX] = NULL,
[KEY_RESERVED] = "Reserved", [KEY_ESC] = "Esc",
[KEY_1] = "1", [KEY_2] = "2",
[KEY_3] = "3", [KEY_4] = "4",
[KEY_5] = "5", [KEY_6] = "6",
[KEY_7] = "7", [KEY_8] = "8",
[KEY_9] = "9", [KEY_0] = "0",
[KEY_MINUS] = "Minus", [KEY_EQUAL] = "Equal",
[KEY_BACKSPACE] = "Backspace", [KEY_TAB] = "Tab",
[KEY_Q] = "Q", [KEY_W] = "W",
[KEY_E] = "E", [KEY_R] = "R",
[KEY_T] = "T", [KEY_Y] = "Y",
[KEY_U] = "U", [KEY_I] = "I",
[KEY_O] = "O", [KEY_P] = "P",
[KEY_LEFTBRACE] = "LeftBrace", [KEY_RIGHTBRACE] = "RightBrace",
[KEY_ENTER] = "Enter", [KEY_LEFTCTRL] = "LeftControl",
[KEY_A] = "A", [KEY_S] = "S",
[KEY_D] = "D", [KEY_F] = "F",
[KEY_G] = "G", [KEY_H] = "H",
[KEY_J] = "J", [KEY_K] = "K",
[KEY_L] = "L", [KEY_SEMICOLON] = "Semicolon",
[KEY_APOSTROPHE] = "Apostrophe", [KEY_GRAVE] = "Grave",
[KEY_LEFTSHIFT] = "LeftShift", [KEY_BACKSLASH] = "BackSlash",
[KEY_Z] = "Z", [KEY_X] = "X",
[KEY_C] = "C", [KEY_V] = "V",
[KEY_B] = "B", [KEY_N] = "N",
[KEY_M] = "M", [KEY_COMMA] = "Comma",
[KEY_DOT] = "Dot", [KEY_SLASH] = "Slash",
[KEY_RIGHTSHIFT] = "RightShift", [KEY_KPASTERISK] = "KPAsterisk",
[KEY_LEFTALT] = "LeftAlt", [KEY_SPACE] = "Space",
[KEY_CAPSLOCK] = "CapsLock", [KEY_F1] = "F1",
[KEY_F2] = "F2", [KEY_F3] = "F3",
[KEY_F4] = "F4", [KEY_F5] = "F5",
[KEY_F6] = "F6", [KEY_F7] = "F7",
[KEY_F8] = "F8", [KEY_F9] = "F9",
[KEY_F10] = "F10", [KEY_NUMLOCK] = "NumLock",
[KEY_SCROLLLOCK] = "ScrollLock", [KEY_KP7] = "KP7",
[KEY_KP8] = "KP8", [KEY_KP9] = "KP9",
[KEY_KPMINUS] = "KPMinus", [KEY_KP4] = "KP4",
[KEY_KP5] = "KP5", [KEY_KP6] = "KP6",
[KEY_KPPLUS] = "KPPlus", [KEY_KP1] = "KP1",
[KEY_KP2] = "KP2", [KEY_KP3] = "KP3",
[KEY_KP0] = "KP0", [KEY_KPDOT] = "KPDot",
[KEY_ZENKAKUHANKAKU] = "Zenkaku/Hankaku", [KEY_102ND] = "102nd",
[KEY_F11] = "F11", [KEY_F12] = "F12",
[KEY_RO] = "RO", [KEY_KATAKANA] = "Katakana",
[KEY_HIRAGANA] = "HIRAGANA", [KEY_HENKAN] = "Henkan",
[KEY_KATAKANAHIRAGANA] = "Katakana/Hiragana", [KEY_MUHENKAN] = "Muhenkan",
[KEY_KPJPCOMMA] = "KPJpComma", [KEY_KPENTER] = "KPEnter",
[KEY_RIGHTCTRL] = "RightCtrl", [KEY_KPSLASH] = "KPSlash",
[KEY_SYSRQ] = "SysRq", [KEY_RIGHTALT] = "RightAlt",
[KEY_LINEFEED] = "LineFeed", [KEY_HOME] = "Home",
[KEY_UP] = "Up", [KEY_PAGEUP] = "PageUp",
[KEY_LEFT] = "Left", [KEY_RIGHT] = "Right",
[KEY_END] = "End", [KEY_DOWN] = "Down",
[KEY_PAGEDOWN] = "PageDown", [KEY_INSERT] = "Insert",
[KEY_DELETE] = "Delete", [KEY_MACRO] = "Macro",
[KEY_MUTE] = "Mute", [KEY_VOLUMEDOWN] = "VolumeDown",
[KEY_VOLUMEUP] = "VolumeUp", [KEY_POWER] = "Power",
[KEY_KPEQUAL] = "KPEqual", [KEY_KPPLUSMINUS] = "KPPlusMinus",
[KEY_PAUSE] = "Pause", [KEY_KPCOMMA] = "KPComma",
[KEY_HANGUEL] = "Hanguel", [KEY_HANJA] = "Hanja",
[KEY_YEN] = "Yen", [KEY_LEFTMETA] = "LeftMeta",
[KEY_RIGHTMETA] = "RightMeta", [KEY_COMPOSE] = "Compose",
[KEY_STOP] = "Stop", [KEY_AGAIN] = "Again",
[KEY_PROPS] = "Props", [KEY_UNDO] = "Undo",
[KEY_FRONT] = "Front", [KEY_COPY] = "Copy",
[KEY_OPEN] = "Open", [KEY_PASTE] = "Paste",
[KEY_FIND] = "Find", [KEY_CUT] = "Cut",
[KEY_HELP] = "Help", [KEY_MENU] = "Menu",
[KEY_CALC] = "Calc", [KEY_SETUP] = "Setup",
[KEY_SLEEP] = "Sleep", [KEY_WAKEUP] = "WakeUp",
[KEY_FILE] = "File", [KEY_SENDFILE] = "SendFile",
[KEY_DELETEFILE] = "DeleteFile", [KEY_XFER] = "X-fer",
[KEY_PROG1] = "Prog1", [KEY_PROG2] = "Prog2",
[KEY_WWW] = "WWW", [KEY_MSDOS] = "MSDOS",
[KEY_COFFEE] = "Coffee", [KEY_DIRECTION] = "Direction",
[KEY_CYCLEWINDOWS] = "CycleWindows", [KEY_MAIL] = "Mail",
[KEY_BOOKMARKS] = "Bookmarks", [KEY_COMPUTER] = "Computer",
[KEY_BACK] = "Back", [KEY_FORWARD] = "Forward",
[KEY_CLOSECD] = "CloseCD", [KEY_EJECTCD] = "EjectCD",
[KEY_EJECTCLOSECD] = "EjectCloseCD", [KEY_NEXTSONG] = "NextSong",
[KEY_PLAYPAUSE] = "PlayPause", [KEY_PREVIOUSSONG] = "PreviousSong",
[KEY_STOPCD] = "StopCD", [KEY_RECORD] = "Record",
[KEY_REWIND] = "Rewind", [KEY_PHONE] = "Phone",
[KEY_ISO] = "ISOKey", [KEY_CONFIG] = "Config",
[KEY_HOMEPAGE] = "HomePage", [KEY_REFRESH] = "Refresh",
[KEY_EXIT] = "Exit", [KEY_MOVE] = "Move",
[KEY_EDIT] = "Edit", [KEY_SCROLLUP] = "ScrollUp",
[KEY_SCROLLDOWN] = "ScrollDown", [KEY_KPLEFTPAREN] = "KPLeftParenthesis",
[KEY_KPRIGHTPAREN] = "KPRightParenthesis", [KEY_F13] = "F13",
[KEY_F14] = "F14", [KEY_F15] = "F15",
[KEY_F16] = "F16", [KEY_F17] = "F17",
[KEY_F18] = "F18", [KEY_F19] = "F19",
[KEY_F20] = "F20", [KEY_F21] = "F21",
[KEY_F22] = "F22", [KEY_F23] = "F23",
[KEY_F24] = "F24", [KEY_PLAYCD] = "PlayCD",
[KEY_PAUSECD] = "PauseCD", [KEY_PROG3] = "Prog3",
[KEY_PROG4] = "Prog4", [KEY_SUSPEND] = "Suspend",
[KEY_CLOSE] = "Close", [KEY_PLAY] = "Play",
[KEY_FASTFORWARD] = "Fast Forward", [KEY_BASSBOOST] = "Bass Boost",
[KEY_PRINT] = "Print", [KEY_HP] = "HP",
[KEY_CAMERA] = "Camera", [KEY_SOUND] = "Sound",
[KEY_QUESTION] = "Question", [KEY_EMAIL] = "Email",
[KEY_CHAT] = "Chat", [KEY_SEARCH] = "Search",
[KEY_CONNECT] = "Connect", [KEY_FINANCE] = "Finance",
[KEY_SPORT] = "Sport", [KEY_SHOP] = "Shop",
[KEY_ALTERASE] = "Alternate Erase", [KEY_CANCEL] = "Cancel",
[KEY_BRIGHTNESSDOWN] = "Brightness down", [KEY_BRIGHTNESSUP] = "Brightness up",
[KEY_MEDIA] = "Media", [KEY_UNKNOWN] = "Unknown",
[BTN_0] = "Btn0", [BTN_1] = "Btn1",
[BTN_2] = "Btn2", [BTN_3] = "Btn3",
[BTN_4] = "Btn4", [BTN_5] = "Btn5",
[BTN_6] = "Btn6", [BTN_7] = "Btn7",
[BTN_8] = "Btn8", [BTN_9] = "Btn9",
[BTN_LEFT] = "LeftBtn", [BTN_RIGHT] = "RightBtn",
[BTN_MIDDLE] = "MiddleBtn", [BTN_SIDE] = "SideBtn",
[BTN_EXTRA] = "ExtraBtn", [BTN_FORWARD] = "ForwardBtn",
[BTN_BACK] = "BackBtn", [BTN_TASK] = "TaskBtn",
[BTN_TRIGGER] = "Trigger", [BTN_THUMB] = "ThumbBtn",
[BTN_THUMB2] = "ThumbBtn2", [BTN_TOP] = "TopBtn",
[BTN_TOP2] = "TopBtn2", [BTN_PINKIE] = "PinkieBtn",
[BTN_BASE] = "BaseBtn", [BTN_BASE2] = "BaseBtn2",
[BTN_BASE3] = "BaseBtn3", [BTN_BASE4] = "BaseBtn4",
[BTN_BASE5] = "BaseBtn5", [BTN_BASE6] = "BaseBtn6",
[BTN_DEAD] = "BtnDead", [BTN_A] = "BtnA",
[BTN_B] = "BtnB", [BTN_C] = "BtnC",
[BTN_X] = "BtnX", [BTN_Y] = "BtnY",
[BTN_Z] = "BtnZ", [BTN_TL] = "BtnTL",
[BTN_TR] = "BtnTR", [BTN_TL2] = "BtnTL2",
[BTN_TR2] = "BtnTR2", [BTN_SELECT] = "BtnSelect",
[BTN_START] = "BtnStart", [BTN_MODE] = "BtnMode",
[BTN_THUMBL] = "BtnThumbL", [BTN_THUMBR] = "BtnThumbR",
[BTN_TOOL_PEN] = "ToolPen", [BTN_TOOL_RUBBER] = "ToolRubber",
[BTN_TOOL_BRUSH] = "ToolBrush", [BTN_TOOL_PENCIL] = "ToolPencil",
[BTN_TOOL_AIRBRUSH] = "ToolAirbrush", [BTN_TOOL_FINGER] = "ToolFinger",
[BTN_TOOL_MOUSE] = "ToolMouse", [BTN_TOOL_LENS] = "ToolLens",
[BTN_TOUCH] = "Touch", [BTN_STYLUS] = "Stylus",
[BTN_STYLUS2] = "Stylus2", [BTN_TOOL_DOUBLETAP] = "Tool Doubletap",
[BTN_TOOL_TRIPLETAP] = "Tool Tripletap", [BTN_GEAR_DOWN] = "WheelBtn",
[BTN_GEAR_UP] = "Gear up", [KEY_OK] = "Ok",
[KEY_SELECT] = "Select", [KEY_GOTO] = "Goto",
[KEY_CLEAR] = "Clear", [KEY_POWER2] = "Power2",
[KEY_OPTION] = "Option", [KEY_INFO] = "Info",
[KEY_TIME] = "Time", [KEY_VENDOR] = "Vendor",
[KEY_ARCHIVE] = "Archive", [KEY_PROGRAM] = "Program",
[KEY_CHANNEL] = "Channel", [KEY_FAVORITES] = "Favorites",
[KEY_EPG] = "EPG", [KEY_PVR] = "PVR",
[KEY_MHP] = "MHP", [KEY_LANGUAGE] = "Language",
[KEY_TITLE] = "Title", [KEY_SUBTITLE] = "Subtitle",
[KEY_ANGLE] = "Angle", [KEY_ZOOM] = "Zoom",
[KEY_MODE] = "Mode", [KEY_KEYBOARD] = "Keyboard",
[KEY_SCREEN] = "Screen", [KEY_PC] = "PC",
[KEY_TV] = "TV", [KEY_TV2] = "TV2",
[KEY_VCR] = "VCR", [KEY_VCR2] = "VCR2",
[KEY_SAT] = "Sat", [KEY_SAT2] = "Sat2",
[KEY_CD] = "CD", [KEY_TAPE] = "Tape",
[KEY_RADIO] = "Radio", [KEY_TUNER] = "Tuner",
[KEY_PLAYER] = "Player", [KEY_TEXT] = "Text",
[KEY_DVD] = "DVD", [KEY_AUX] = "Aux",
[KEY_MP3] = "MP3", [KEY_AUDIO] = "Audio",
[KEY_VIDEO] = "Video", [KEY_DIRECTORY] = "Directory",
[KEY_LIST] = "List", [KEY_MEMO] = "Memo",
[KEY_CALENDAR] = "Calendar", [KEY_RED] = "Red",
[KEY_GREEN] = "Green", [KEY_YELLOW] = "Yellow",
[KEY_BLUE] = "Blue", [KEY_CHANNELUP] = "ChannelUp",
[KEY_CHANNELDOWN] = "ChannelDown", [KEY_FIRST] = "First",
[KEY_LAST] = "Last", [KEY_AB] = "AB",
[KEY_NEXT] = "Next", [KEY_RESTART] = "Restart",
[KEY_SLOW] = "Slow", [KEY_SHUFFLE] = "Shuffle",
[KEY_BREAK] = "Break", [KEY_PREVIOUS] = "Previous",
[KEY_DIGITS] = "Digits", [KEY_TEEN] = "TEEN",
[KEY_TWEN] = "TWEN", [KEY_DEL_EOL] = "Delete EOL",
[KEY_DEL_EOS] = "Delete EOS", [KEY_INS_LINE] = "Insert line",
[KEY_DEL_LINE] = "Delete line",
};
char *absval[5] = { "Value", "Min ", "Max ", "Fuzz ", "Flat " };
char *relatives[REL_MAX + 1] = {
[0 ... REL_MAX] = NULL,
[REL_X] = "X", [REL_Y] = "Y",
[REL_Z] = "Z", [REL_HWHEEL] = "HWheel",
[REL_DIAL] = "Dial", [REL_WHEEL] = "Wheel",
[REL_MISC] = "Misc",
};
char *absolutes[ABS_MAX + 1] = {
[0 ... ABS_MAX] = NULL,
[ABS_X] = "X", [ABS_Y] = "Y",
[ABS_Z] = "Z", [ABS_RX] = "Rx",
[ABS_RY] = "Ry", [ABS_RZ] = "Rz",
[ABS_THROTTLE] = "Throttle", [ABS_RUDDER] = "Rudder",
[ABS_WHEEL] = "Wheel", [ABS_GAS] = "Gas",
[ABS_BRAKE] = "Brake", [ABS_HAT0X] = "Hat0X",
[ABS_HAT0Y] = "Hat0Y", [ABS_HAT1X] = "Hat1X",
[ABS_HAT1Y] = "Hat1Y", [ABS_HAT2X] = "Hat2X",
[ABS_HAT2Y] = "Hat2Y", [ABS_HAT3X] = "Hat3X",
[ABS_HAT3Y] = "Hat 3Y", [ABS_PRESSURE] = "Pressure",
[ABS_DISTANCE] = "Distance", [ABS_TILT_X] = "XTilt",
[ABS_TILT_Y] = "YTilt", [ABS_TOOL_WIDTH] = "Tool Width",
[ABS_VOLUME] = "Volume", [ABS_MISC] = "Misc",
};
char *misc[MSC_MAX + 1] = {
[ 0 ... MSC_MAX] = NULL,
[MSC_SERIAL] = "Serial", [MSC_PULSELED] = "Pulseled",
[MSC_GESTURE] = "Gesture", [MSC_RAW] = "RawData",
[MSC_SCAN] = "ScanCode",
};
char *leds[LED_MAX + 1] = {
[0 ... LED_MAX] = NULL,
[LED_NUML] = "NumLock", [LED_CAPSL] = "CapsLock",
[LED_SCROLLL] = "ScrollLock", [LED_COMPOSE] = "Compose",
[LED_KANA] = "Kana", [LED_SLEEP] = "Sleep",
[LED_SUSPEND] = "Suspend", [LED_MUTE] = "Mute",
[LED_MISC] = "Misc",
};
char *repeats[REP_MAX + 1] = {
[0 ... REP_MAX] = NULL,
[REP_DELAY] = "Delay", [REP_PERIOD] = "Period"
};
char *sounds[SND_MAX + 1] = {
[0 ... SND_MAX] = NULL,
[SND_CLICK] = "Click", [SND_BELL] = "Bell",
[SND_TONE] = "Tone"
};
char **names[EV_MAX + 1] = {
[0 ... EV_MAX] = NULL,
[EV_SYN] = events, [EV_KEY] = keys,
[EV_REL] = relatives, [EV_ABS] = absolutes,
[EV_MSC] = misc, [EV_LED] = leds,
[EV_SND] = sounds, [EV_REP] = repeats,
};
#define BITS_PER_LONG (sizeof(long) * 8)
#define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
#define OFF(x) ((x)%BITS_PER_LONG)
#define BIT(x) (1UL<<OFF(x))
#define LONG(x) ((x)/BITS_PER_LONG)
#define test_bit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1)
int main (int argc, char **argv)
{
int fd, rd, i, j, k;
struct input_event ev[64];
int version;
unsigned short id[4];
unsigned long bit[EV_MAX][NBITS(KEY_MAX)];
char name[256] = "Unknown";
int abs[5];
if (argc < 2) {
printf("Usage: evtest /dev/input/eventX\n");
printf("Where X = input device number\n");
return 1;
}
if ((fd = open(argv[argc - 1], O_RDONLY | O_NONBLOCK)) < 0) {
perror("evtest");
return 1;
}
if (ioctl(fd, EVIOCGVERSION, &version)) {
perror("evtest: can't get version");
return 1;
}
printf("Input driver version is %d.%d.%d\n",
version >> 16, (version >> 8) & 0xff, version & 0xff);
ioctl(fd, EVIOCGID, id);
printf("Input device ID: bus 0x%x vendor 0x%x product 0x%x version 0x%x\n",
id[ID_BUS], id[ID_VENDOR], id[ID_PRODUCT], id[ID_VERSION]);
ioctl(fd, EVIOCGNAME(sizeof(name)), name);
printf("Input device name: \"%s\"\n", name);
memset(bit, 0, sizeof(bit));
ioctl(fd, EVIOCGBIT(0, EV_MAX), bit[0]);
printf("Supported events:\n");
for (i = 0; i < EV_MAX; i++)
if (test_bit(i, bit[0])) {
printf(" Event type %d (%s)\n", i, events[i] ? events[i] : "?");
if (!i) continue;
ioctl(fd, EVIOCGBIT(i, KEY_MAX), bit[i]);
for (j = 0; j < KEY_MAX; j++)
if (test_bit(j, bit[i])) {
printf(" Event code %d (%s)\n", j, names[i] ? (names[i][j] ? names[i][j] : "?") : "?");
if (i == EV_ABS) {
ioctl(fd, EVIOCGABS(j), abs);
for (k = 0; k < 5; k++)
if ((k < 3) || abs[k])
printf(" %s %6d\n", absval[k], abs[k]);
}
}
}
printf("Testing ... (interrupt to exit)\n");
while (1) {
rd = read(fd, ev, sizeof(struct input_event) * 64);
if (rd < (int) sizeof(struct input_event)) {
//printf("yyy\n");
//perror("\nevtest: error reading");
//return 1;
usleep(20*1000);
continue;
}
for (i = 0; i < rd / sizeof(struct input_event); i++)
if (ev[i].type == EV_SYN) {
printf("Event: time %ld.%06ld, -------------- %s ------------\n",
ev[i].time.tv_sec, ev[i].time.tv_usec, ev[i].code ? "Config Sync" : "Report Sync" );
} else if (ev[i].type == EV_MSC && (ev[i].code == MSC_RAW || ev[i].code == MSC_SCAN)) {
printf("Event: time %ld.%06ld, type %d (%s), code %d (%s), value %02x\n",
ev[i].time.tv_sec, ev[i].time.tv_usec, ev[i].type,
events[ev[i].type] ? events[ev[i].type] : "?",
ev[i].code,
names[ev[i].type] ? (names[ev[i].type][ev[i].code] ? names[ev[i].type][ev[i].code] : "?") : "?",
ev[i].value);
} else {
printf("Event: time %ld.%06ld, type %d (%s), code %d (%s), value %d\n",
ev[i].time.tv_sec, ev[i].time.tv_usec, ev[i].type,
events[ev[i].type] ? events[ev[i].type] : "?",
ev[i].code,
names[ev[i].type] ? (names[ev[i].type][ev[i].code] ? names[ev[i].type][ev[i].code] : "?") : "?",
ev[i].value);
}
}
}
还是一样,只要按键一直按住,也只触发一次。
# chmod +x /tmp/evtest && /tmp/evtest /dev/input/event2
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpiokey"
Supported events:
Event type 0 (Sync)
Event type 1 (Key)
Event code 28 (Enter)
Event code 103 (Up)
Event code 105 (Left)
Event code 106 (Right)
Event code 108 (Down)
Event code 158 (Back)
Testing ... (interrupt to exit)
Event: time 80621.024553, type 1 (Key), code 28 (Enter), value 1
Event: time 80621.024553, -------------- Report Sync ------------
Event: time 80621.136503, type 1 (Key), code 28 (Enter), value 0
Event: time 80621.136503, -------------- Report Sync ------------
Event: time 80621.972507, type 1 (Key), code 28 (Enter), value 1
Event: time 80621.972507, -------------- Report Sync ------------
Event: time 80623.652503, type 1 (Key), code 28 (Enter), value 0
Event: time 80623.652503, -------------- Report Sync ------------
Event: time 80624.228508, type 1 (Key), code 105 (Left), value 1
Event: time 80624.228508, -------------- Report Sync ------------
在 Linux 中,输入设备(如键盘、鼠标等)通过 /dev/input/eventX 文件生成事件。
这些事件通常只会在按键状态发生变化时生成,即按键按下和按键释放时。
具体来说:
按键按下:生成一个 EV_KEY 事件,值为 1。
按键释放:生成一个 EV_KEY 事件,值为 0。
按键保持按下状态:不会持续生成事件。
这种设计是为了减少不必要的事件流量,提高系统的效率。然而,这导致了一个问题:如果你需要检测按键是否一直被按下,你需要在应用程序中实现额外的逻辑来跟踪按键的状态。
如何实现持续检测按键状态
为了实现持续检测按键是否一直被按下,你可以使用以下方法:
① 记录按键按下时间:在按键首次按下时记录当前时间。
② 定期检查按键状态:在按键按下后,定期检查按键是否仍然处于按下状态。
③ 处理长按事件:如果按键保持按下状态超过一定时间阈值,则触发长按事件。
跟踪了一下代码,长按编码器按键使当前按键失焦的代码在
lv_indev.c
/**
* Process a new point from LV_INDEV_TYPE_ENCODER input device
* @param i pointer to an input device
* @param data pointer to the data read from the input device
*/
static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
{
/*Button press happened*/
if(data->state == LV_INDEV_STATE_PRESSED && last_state == LV_INDEV_STATE_RELEASED) {
}
/*Pressing*/
else if(data->state == LV_INDEV_STATE_PRESSED && last_state == LV_INDEV_STATE_PRESSED) {
/*Long press*/
if(i->proc.long_pr_sent == 0 && lv_tick_elaps(i->proc.pr_timestamp) > i->driver->long_press_time) {
//初次长按处理
}
/*Long press repeated time has elapsed?*/
else if(i->proc.long_pr_sent != 0 && lv_tick_elaps(i->proc.longpr_rep_timestamp) > i->driver->long_press_repeat_time) {
//一直长按处理
}
}
}
} else if(drv->type == LV_INDEV_TYPE_ENCODER) {
switch(in.code) {
case KEY_UP: //模拟编码器向上滚
data->state = 0;
if(in.value == 1) {
data->enc_diff = -1;
} else {
data->enc_diff = 0;
}
printf("data->state=%d, data->enc_diff=%d ........\n", data->state, data->enc_diff);
break;
case KEY_DOWN: //模拟编码器向下滚
data->state = 0;
if(in.value == 1) {
data->enc_diff = 1;
} else {
data->enc_diff = 0;
}
printf("data->state=%d, data->enc_diff=%d ........\n", data->state, data->enc_diff);
break;
case KEY_ENTER: //模拟编码器按下
data->state = in.value;
data->enc_diff = 0;
printf("data->state=%d, data->enc_diff=%d ........\n", data->state, data->enc_diff);
break;
}
win32drv.c
/**
* @file win32drv.c
*
*/
/*********************
* INCLUDES
*********************/
#include "win32drv.h"
#if USE_WIN32DRV
#include <windowsx.h>
#include <VersionHelpers.h>
#include <stdbool.h>
#include <stdint.h>
/*********************
* DEFINES
*********************/
#ifndef WM_DPICHANGED
#define WM_DPICHANGED 0x02E0
#endif
#define WINDOW_EX_STYLE \
WS_EX_CLIENTEDGE
#define WINDOW_STYLE \
(WS_OVERLAPPEDWINDOW & ~(WS_SIZEBOX | WS_MAXIMIZEBOX | WS_THICKFRAME))
#ifndef WIN32DRV_MONITOR_ZOOM
#define WIN32DRV_MONITOR_ZOOM 1
#endif
/**********************
* TYPEDEFS
**********************/
/**********************
* STATIC PROTOTYPES
**********************/
/**
* @brief Creates a B8G8R8A8 frame buffer.
* @param WindowHandle A handle to the window for the creation of the frame
* buffer. If this value is NULL, the entire screen will be
* referenced.
* @param Width The width of the frame buffer.
* @param Height The height of the frame buffer.
* @param PixelBuffer The raw pixel buffer of the frame buffer you created.
* @param PixelBufferSize The size of the frame buffer you created.
* @return If the function succeeds, the return value is a handle to the device
* context (DC) for the frame buffer. If the function fails, the return
* value is NULL, and PixelBuffer parameter is NULL.
*/
static HDC lv_win32_create_frame_buffer(
_In_opt_ HWND WindowHandle,
_In_ LONG Width,
_In_ LONG Height,
_Out_ UINT32** PixelBuffer,
_Out_ SIZE_T* PixelBufferSize);
/**
* @brief Enables WM_DPICHANGED message for child window for the associated
* window.
* @param WindowHandle The window you want to enable WM_DPICHANGED message for
* child window.
* @return If the function succeeds, the return value is non-zero. If the
* function fails, the return value is zero.
* @remarks You need to use this function in Windows 10 Threshold 1 or Windows
* 10 Threshold 2.
*/
static BOOL lv_win32_enable_child_window_dpi_message(
_In_ HWND WindowHandle);
static void lv_win32_display_driver_flush_callback(
lv_disp_drv_t* disp_drv,
const lv_area_t* area,
lv_color_t* color_p);
static void lv_win32_display_driver_rounder_callback(
lv_disp_drv_t* disp_drv,
lv_area_t* area);
static void lv_win32_mouse_driver_read_callback(
lv_indev_drv_t* indev_drv,
lv_indev_data_t* data);
static void lv_win32_keyboard_driver_read_callback(
lv_indev_drv_t* indev_drv,
lv_indev_data_t* data);
static void lv_win32_mousewheel_driver_read_callback(
lv_indev_drv_t* indev_drv,
lv_indev_data_t* data);
static LRESULT CALLBACK lv_win32_window_message_callback(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
#if LV_VERSION_CHECK(8, 0, 0)
static void lv_win32_message_handler(
lv_timer_t* param);
#else
static void lv_win32_message_handler(
lv_task_t* param);
#endif
/**********************
* GLOBAL VARIABLES
**********************/
static lv_coord_t monitor_x_size;
static lv_coord_t monitor_y_size;
EXTERN_C bool lv_win32_quit_signal = false;
/**********************
* STATIC VARIABLES
**********************/
static HINSTANCE g_instance_handle = NULL;
static HWND g_window_handle = NULL;
static HWND g_window_button_left = NULL;
static HWND g_window_button_right = NULL;
static HWND g_window_button_up = NULL;
static HWND g_window_button_down = NULL;
static HDC g_buffer_dc_handle = NULL;
static UINT32* g_pixel_buffer = NULL;
static SIZE_T g_pixel_buffer_size = 0;
static lv_disp_t* g_display = NULL;
static bool volatile g_mouse_pressed = false;
static LPARAM volatile g_mouse_value = 0;
static bool volatile g_mousewheel_pressed = false;
static int16_t volatile g_mousewheel_value = 0;
static bool volatile g_keyboard_pressed = false;
static WPARAM volatile g_keyboard_value = 0;
/**********************
* MACROS
**********************/
/**********************
* GLOBAL FUNCTIONS
**********************/
EXTERN_C bool lv_win32_init(
HINSTANCE instance_handle,
int show_window_mode,
lv_coord_t hor_res,
lv_coord_t ver_res,
HICON icon_handle)
{
WNDCLASSEXW WindowClass;
WindowClass.cbSize = sizeof(WNDCLASSEX);
WindowClass.style = 0;
WindowClass.lpfnWndProc = lv_win32_window_message_callback;
WindowClass.cbClsExtra = 0;
WindowClass.cbWndExtra = 0;
WindowClass.hInstance = instance_handle;
WindowClass.hIcon = icon_handle;
WindowClass.hCursor = LoadCursorW(NULL, IDC_ARROW);
WindowClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
WindowClass.lpszMenuName = NULL;
WindowClass.lpszClassName = L"lv_sim_visual_studio";
WindowClass.hIconSm = icon_handle;
if (!RegisterClassExW(&WindowClass))
{
return false;
}
g_instance_handle = instance_handle;
RECT NewWindowSize;
NewWindowSize.left = 0;
NewWindowSize.right = hor_res * WIN32DRV_MONITOR_ZOOM;
NewWindowSize.top = 0;
NewWindowSize.bottom = ver_res * WIN32DRV_MONITOR_ZOOM;
monitor_x_size = NewWindowSize.right;
monitor_y_size = NewWindowSize.bottom;
AdjustWindowRectEx(
&NewWindowSize,
WINDOW_STYLE,
FALSE,
WINDOW_EX_STYLE);
OffsetRect(
&NewWindowSize,
-NewWindowSize.left,
-NewWindowSize.top);
g_window_handle = CreateWindowExW(
WINDOW_EX_STYLE,
WindowClass.lpszClassName,
L"LVGL Simulator for Windows Desktop",
WINDOW_STYLE,
CW_USEDEFAULT,
0,
NewWindowSize.right,
NewWindowSize.bottom + 200,
NULL,
NULL,
instance_handle,
NULL);
if (!g_window_handle)
{
return false;
}
// 创建←按钮
g_window_button_left = CreateWindowExW(
0,
L"BUTTON",
L"←",
WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
10, NewWindowSize.bottom,
70, 40,
g_window_handle,
(HMENU)1,
instance_handle,
NULL
);
// 创建→按钮
g_window_button_right = CreateWindowExW(
0,
L"BUTTON",
L"→",
WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
10 + 100, NewWindowSize.bottom,
70, 40,
g_window_handle,
(HMENU)2,
instance_handle,
NULL
);
#if LV_VERSION_CHECK(8, 0, 0)
lv_timer_create(lv_win32_message_handler, 0, NULL);
#else
lv_task_create(lv_win32_message_handler, 0, LV_TASK_PRIO_HIGHEST, NULL);
#endif
lv_win32_enable_child_window_dpi_message(g_window_handle);
HDC hNewBufferDC = lv_win32_create_frame_buffer(
g_window_handle,
hor_res,
ver_res,
&g_pixel_buffer,
&g_pixel_buffer_size);
DeleteDC(g_buffer_dc_handle);
g_buffer_dc_handle = hNewBufferDC;
#if LV_VERSION_CHECK(8, 0, 0)
static lv_disp_draw_buf_t disp_buf;
lv_disp_draw_buf_init(
&disp_buf,
(lv_color_t*)malloc(hor_res * ver_res * sizeof(lv_color_t)),
NULL,
hor_res * ver_res);
static lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv);
disp_drv.hor_res = hor_res;
disp_drv.ver_res = ver_res;
disp_drv.flush_cb = lv_win32_display_driver_flush_callback;
disp_drv.draw_buf = &disp_buf;
disp_drv.rounder_cb = lv_win32_display_driver_rounder_callback;
g_display = lv_disp_drv_register(&disp_drv);
lv_group_t * g = lv_group_create();
lv_group_set_default(g);
static lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = lv_win32_mouse_driver_read_callback;
lv_indev_t *indev1 = lv_indev_drv_register(&indev_drv);
lv_indev_set_group(indev1, g);
static lv_indev_drv_t kb_drv;
lv_indev_drv_init(&kb_drv);
kb_drv.type = LV_INDEV_TYPE_KEYPAD;
kb_drv.read_cb = lv_win32_keyboard_driver_read_callback;
lv_indev_t *indev2 = lv_indev_drv_register(&kb_drv);
lv_indev_set_group(indev2, g);
static lv_indev_drv_t enc_drv;
lv_indev_drv_init(&enc_drv);
enc_drv.type = LV_INDEV_TYPE_ENCODER;
enc_drv.read_cb = lv_win32_mousewheel_driver_read_callback;
lv_indev_t *indev3 = lv_indev_drv_register(&enc_drv);
lv_indev_set_group(indev3, g);
#else
static lv_disp_buf_t disp_buf;
lv_disp_buf_init(
&disp_buf,
(lv_color_t*)malloc(hor_res * ver_res * sizeof(lv_color_t)),
NULL,
hor_res * ver_res);
lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv);
disp_drv.hor_res = hor_res;
disp_drv.ver_res = ver_res;
disp_drv.flush_cb = lv_win32_display_driver_flush_callback;
disp_drv.buffer = &disp_buf;
disp_drv.rounder_cb = lv_win32_display_driver_rounder_callback;
g_display = lv_disp_drv_register(&disp_drv);
lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = lv_win32_mouse_driver_read_callback;
lv_indev_drv_register(&indev_drv);
lv_indev_drv_t kb_drv;
lv_indev_drv_init(&kb_drv);
kb_drv.type = LV_INDEV_TYPE_KEYPAD;
kb_drv.read_cb = lv_win32_keyboard_driver_read_callback;
lv_indev_drv_register(&kb_drv);
lv_indev_drv_t enc_drv;
lv_indev_drv_init(&enc_drv);
enc_drv.type = LV_INDEV_TYPE_ENCODER;
enc_drv.read_cb = lv_win32_mousewheel_driver_read_callback;
lv_indev_drv_register(&enc_drv);
#endif
ShowWindow(g_window_handle, show_window_mode);
UpdateWindow(g_window_handle);
return true;
}
/**********************
* STATIC FUNCTIONS
**********************/
static HDC lv_win32_create_frame_buffer(
HWND WindowHandle,
LONG Width,
LONG Height,
UINT32** PixelBuffer,
SIZE_T* PixelBufferSize)
{
HDC hFrameBufferDC = NULL;
if (PixelBuffer && PixelBufferSize)
{
HDC hWindowDC = GetDC(WindowHandle);
if (hWindowDC)
{
hFrameBufferDC = CreateCompatibleDC(hWindowDC);
ReleaseDC(WindowHandle, hWindowDC);
}
if (hFrameBufferDC)
{
BITMAPINFO BitmapInfo = { 0 };
BitmapInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
BitmapInfo.bmiHeader.biWidth = Width;
BitmapInfo.bmiHeader.biHeight = -Height;
BitmapInfo.bmiHeader.biPlanes = 1;
BitmapInfo.bmiHeader.biBitCount = 32;
BitmapInfo.bmiHeader.biCompression = BI_RGB;
HBITMAP hBitmap = CreateDIBSection(
hFrameBufferDC,
&BitmapInfo,
DIB_RGB_COLORS,
(void**)PixelBuffer,
NULL,
0);
if (hBitmap)
{
*PixelBufferSize = Width * Height * sizeof(UINT32);
DeleteObject(SelectObject(hFrameBufferDC, hBitmap));
DeleteObject(hBitmap);
}
else
{
DeleteDC(hFrameBufferDC);
hFrameBufferDC = NULL;
}
}
}
return hFrameBufferDC;
}
static BOOL lv_win32_enable_child_window_dpi_message(
HWND WindowHandle)
{
// This hack is only for Windows 10 only.
if (!IsWindowsVersionOrGreater(10, 0, 0))
{
return FALSE;
}
// We don't need this hack if the Per Monitor Aware V2 is existed.
OSVERSIONINFOEXW OSVersionInfoEx = { 0 };
OSVersionInfoEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEXW);
OSVersionInfoEx.dwBuildNumber = 14393;
if (VerifyVersionInfoW(
&OSVersionInfoEx,
VER_BUILDNUMBER,
VerSetConditionMask(0, VER_BUILDNUMBER, VER_GREATER_EQUAL)))
{
return FALSE;
}
HMODULE ModuleHandle = GetModuleHandleW(L"user32.dll");
if (!ModuleHandle)
{
return FALSE;
}
typedef BOOL(WINAPI* FunctionType)(HWND, BOOL);
FunctionType pFunction = (FunctionType)(
GetProcAddress(ModuleHandle, "EnableChildWindowDpiMessage"));
if (!pFunction)
{
return FALSE;
}
return pFunction(WindowHandle, TRUE);
}
static void lv_win32_display_driver_flush_callback(
lv_disp_drv_t* disp_drv,
const lv_area_t* area,
lv_color_t* color_p)
{
#if LV_COLOR_DEPTH == 32
UNREFERENCED_PARAMETER(area);
memcpy(g_pixel_buffer, color_p, g_pixel_buffer_size);
#else
for (int y = area->y1; y <= area->y2; ++y)
{
for (int x = area->x1; x <= area->x2; ++x)
{
g_pixel_buffer[y * disp_drv->hor_res + x] = lv_color_to32(*color_p);
color_p++;
}
}
#endif
HDC hWindowDC = GetDC(g_window_handle);
if (hWindowDC)
{
StretchBlt(
hWindowDC,
0,
0,
disp_drv->hor_res * WIN32DRV_MONITOR_ZOOM,
disp_drv->ver_res * WIN32DRV_MONITOR_ZOOM,
g_buffer_dc_handle,
0,
0,
disp_drv->hor_res,
disp_drv->ver_res,
SRCCOPY);
ReleaseDC(g_window_handle, hWindowDC);
}
lv_disp_flush_ready(disp_drv);
}
static void lv_win32_display_driver_rounder_callback(
lv_disp_drv_t* disp_drv,
lv_area_t* area)
{
area->x1 = 0;
area->x2 = disp_drv->hor_res - 1;
area->y1 = 0;
area->y2 = disp_drv->ver_res - 1;
}
static void lv_win32_mouse_driver_read_callback(
lv_indev_drv_t* indev_drv,
lv_indev_data_t* data)
{
UNREFERENCED_PARAMETER(indev_drv);
data->state = (lv_indev_state_t)(
g_mouse_pressed ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL);
data->point.x = GET_X_LPARAM(g_mouse_value) / WIN32DRV_MONITOR_ZOOM;
data->point.y = GET_Y_LPARAM(g_mouse_value) / WIN32DRV_MONITOR_ZOOM;
}
static void lv_win32_keyboard_driver_read_callback(
lv_indev_drv_t* indev_drv,
lv_indev_data_t* data)
{
UNREFERENCED_PARAMETER(indev_drv);
data->state = (lv_indev_state_t)(
g_keyboard_pressed ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL);
WPARAM KeyboardValue = g_keyboard_value;
switch (KeyboardValue)
{
case VK_UP:
data->key = LV_KEY_UP;
break;
case VK_DOWN:
data->key = LV_KEY_DOWN;
break;
case VK_LEFT:
data->key = LV_KEY_LEFT;
break;
case VK_RIGHT:
data->key = LV_KEY_RIGHT;
break;
case VK_ESCAPE:
data->key = LV_KEY_ESC;
break;
case VK_DELETE:
data->key = LV_KEY_DEL;
break;
case VK_BACK:
data->key = LV_KEY_BACKSPACE;
break;
case VK_RETURN:
data->key = LV_KEY_ENTER;
break;
case VK_NEXT:
data->key = LV_KEY_NEXT;
break;
case VK_PRIOR:
data->key = LV_KEY_PREV;
break;
case VK_HOME:
data->key = LV_KEY_HOME;
break;
case VK_END:
data->key = LV_KEY_END;
break;
default:
if (KeyboardValue >= 'A' && KeyboardValue <= 'Z')
{
KeyboardValue += 0x20;
}
data->key = (uint32_t)KeyboardValue;
break;
}
}
static void lv_win32_mousewheel_driver_read_callback(
lv_indev_drv_t* indev_drv,
lv_indev_data_t* data)
{
UNREFERENCED_PARAMETER(indev_drv);
data->state = (lv_indev_state_t)(
g_mousewheel_pressed ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL);
data->enc_diff = g_mousewheel_value;
g_mousewheel_value = 0;
}
static LRESULT CALLBACK lv_win32_window_message_callback(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch (uMsg)
{
case WM_MOUSEMOVE:
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_MBUTTONDOWN:
case WM_MBUTTONUP:
{
//模拟区域的鼠标事件才传入
if((GET_X_LPARAM(lParam) < monitor_x_size)
&& (GET_Y_LPARAM(lParam) < monitor_y_size))
{
g_mouse_value = lParam;
if (uMsg == WM_LBUTTONDOWN || uMsg == WM_LBUTTONUP)
{
g_mouse_pressed = (uMsg == WM_LBUTTONDOWN);
}
else if (uMsg == WM_MBUTTONDOWN || uMsg == WM_MBUTTONUP)
{
g_mousewheel_pressed = (uMsg == WM_MBUTTONDOWN);
}
}
if (ChildWindowFromPoint(hWnd, (POINT){ LOWORD(lParam), HIWORD(lParam) }) == GetDlgItem(hWnd, 1))
{
//isButtonDown = TRUE;
// 发送自定义消息给按钮,使其进入按下状态
SendMessage(GetDlgItem(hWnd, 1), BM_SETSTATE, (WPARAM)TRUE, 0);
MessageBox(hWnd, L"Button pressed!", L"Info", MB_OK);
}
return 0;
}
case WM_KEYDOWN:
case WM_KEYUP:
{
g_keyboard_pressed = (uMsg == WM_KEYDOWN);
g_keyboard_value = wParam;
break;
}
case WM_MOUSEWHEEL:
{
g_mousewheel_value = -(GET_WHEEL_DELTA_WPARAM(wParam) / WHEEL_DELTA);
break;
}
case WM_DPICHANGED:
{
LPRECT SuggestedRect = (LPRECT)lParam;
SetWindowPos(
hWnd,
NULL,
SuggestedRect->left,
SuggestedRect->top,
SuggestedRect->right,
SuggestedRect->bottom,
SWP_NOZORDER | SWP_NOACTIVATE);
RECT ClientRect;
GetClientRect(hWnd, &ClientRect);
#if LV_VERSION_CHECK(8, 0, 0)
int WindowWidth = g_display->driver->hor_res;
int WindowHeight = g_display->driver->ver_res;
#else
int WindowWidth = g_display->driver.hor_res;
int WindowHeight = g_display->driver.ver_res;
#endif
SetWindowPos(
hWnd,
NULL,
SuggestedRect->left,
SuggestedRect->top,
SuggestedRect->right + (WindowWidth - ClientRect.right),
SuggestedRect->bottom + (WindowHeight - ClientRect.bottom),
SWP_NOZORDER | SWP_NOACTIVATE);
break;
}
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProcW(hWnd, uMsg, wParam, lParam);
}
return 0;
}
#if LV_VERSION_CHECK(8, 0, 0)
static void lv_win32_message_handler(
lv_timer_t* param)
#else
static void lv_win32_message_handler(
lv_task_t* param)
#endif
{
UNREFERENCED_PARAMETER(param);
MSG Message;
BOOL Result = PeekMessageW(&Message, NULL, 0, 0, TRUE);
if (Result != 0 && Result != -1)
{
TranslateMessage(&Message);
DispatchMessageW(&Message);
if (Message.message == WM_QUIT)
{
lv_win32_quit_signal = true;
}
}
}
#endif /*USE_WIN32DRV*/
以前买的是这个 id=636315097583,
发现总是出现一些奇怪的问题,后来我朋友告诉我因为这个串口模块是5V的,目标主板是3V3的,所以会出现兼容性问题。
后来买了这个 id=816399928095,终于解决了这个问题,而且这个可以用拨码开关切换3V3和5V0电平。
void lv_test()
{
lv_obj_t* main_cont = lv_obj_create(lv_scr_act());
lv_obj_set_size(main_cont, lv_pct(100), lv_pct(100));
/*Create a container for the player*/
lv_obj_t * player = lv_obj_create(main_cont);
lv_obj_set_y(player, - LV_DEMO_MUSIC_HANDLE_SIZE);
lv_obj_set_size(player, LV_HOR_RES, LV_VER_RES + LV_DEMO_MUSIC_HANDLE_SIZE * 2);
}
跟踪了半天,是这样吗?
全志T113I芯片的参考电路在哪里下载
有全志T113I芯片的DDR参考电路吗
@memory
disp_al.c 的
static struct lcd_clk_info clk_tbl[] = {
{LCD_IF_HV, 16, 1, 1, 0},
{LCD_IF_CPU, 28, 1, 1, 0},
{LCD_IF_LVDS, 7, 1, 1, 0},
#if defined(DSI_VERSION_40)
{LCD_IF_DSI, 4, 1, 4, 150000000},
#else
{LCD_IF_DSI, 4, 1, 4, 0},
#endif /*endif DSI_VERSION_40 */
};
LCD_IF_CPU 得改成 28 左右
读AXP2101全部寄存器:
cat /sys/kernel/debug/regmap/1-0034/registers
# cat /sys/kernel/debug/regmap/1-0034/registers
00: 38
01: 33
02: 00
03: 4a
04: 00
05: 00
06: 00
07: 00
08: 04
09: 00
0a: 00
0b: 00
0c: 00
0d: 00
0e: 00
0f: 00
10: 34
11: 00
12: 00
13: 03
14: 65
15: 06
16: 05
17: 00
18: 0a
19: 06
1a: a5
1b: 00
1c: 00
1d: 00
1e: 09
1f: 00
20: 01
21: 01
22: 06
23: 3f
24: 00
25: 1b
26: 08
27: 10
28: 00
29: 00
2a: 00
2b: 00
2c: 00
2d: 00
2e: 00
2f: 00
30: 03
31: 00
32: 00
33: 00
34: 50
35: 6a
36: 80
37: 00
38: 00
39: 00
3a: 00
3b: 00
3c: 00
3d: 00
3e: 00
3f: 00
40: cf
41: f3
42: 18
43: 00
44: 00
45: 00
46: 00
47: 00
48: 10
49: 00
4a: 00
4b: 00
4c: 00
4d: 00
4e: 00
4f: 00
50: 10
51: 00
52: 02
53: 01
54: 29
55: 58
56: 3e
57: 4c
58: 00
59: 14
5a: 37
5b: 1e
5c: 02
5d: 58
5e: 00
5f: 00
60: 02
61: 04
62: 0b
63: 12
64: 03
65: 02
66: 01
67: e6
68: 01
69: 00
6a: 03
6b: 00
6c: 00
6d: 00
6e: 00
6f: 00
70: 00
71: 00
72: 00
73: 00
74: 00
75: 00
76: 00
77: 00
78: 00
79: 00
7a: 00
7b: 00
7c: 00
7d: 00
7e: 00
7f: 00
80: 0f
81: 00
82: 12
83: 28
84: 28
85: 3c
86: 00
87: 00
88: 00
89: 00
8a: 00
8b: 00
8c: 00
8d: 00
8e: 00
8f: 00
90: 93
91: 00
92: 0d
93: 17
94: 1c
95: 18
96: 0d
97: 17
98: 08
99: 00
9a: 0e
9b: 00
9c: 00
9d: 00
9e: 00
9f: 00
a0: 00
a1: 00
a2: 10
a3: 58
a4: 62
a5: 00
a6: 00
a7: 51
a8: 00
a9: 01
aa: 00
ab: 03
ac: 00
ad: 00
ae: 00
af: 00
b0: 00
b1: 00
b2: 00
b3: 00
b4: 00
b5: 00
b6: 00
b7: 00
b8: 00
b9: 00
ba: 00
bb: 00
bc: 00
bd: 00
be: 00
bf: 00
c0: 00
c1: 00
c2: 00
c3: 00
c4: 00
c5: 00
c6: 00
c7: 00
c8: 00
c9: 00
ca: 00
cb: 00
cc: 00
cd: 00
ce: 00
cf: 00
d0: 00
d1: 00
d2: 00
d3: 00
d4: 00
d5: 00
d6: 00
d7: 00
d8: 00
d9: 00
da: 00
db: 00
dc: 00
dd: 00
de: 00
df: 00
e0: 00
e1: 00
e2: 00
e3: 00
e4: 00
e5: 00
e6: 00
e7: 00
e8: 00
e9: 00
ea: 00
eb: 00
ec: 00
ed: 00
ee: 00
ef: 00
f0: 00
f1: 00
f2: 00
f3: 00
f4: 00
f5: 00
f6: 00
f7: 00
f8: 00
f9: 00
fa: 00
fb: 00
fc: 00
fd: 00
fe: 00
ff: 00
#
读所有电压 cat /sys/kernel/debug/regulator/regulator_summary
# cat /sys/kernel/debug/regulator/regulator_summary
regulator use open bypass voltage current min max
-------------------------------------------------------------------------------
regulator-dummy 0 7 0 0mV 0mA 0mV 0mV
1-005d 0mV 0mV
codec 0mV 0mV
codec 0mV 0mV
5200000.ohci1-controller 0mV 0mV
5200000.ehci1-controller 0mV 0mV
uart1 0mV 0mV
twi1 0mV 0mV
usb1-vbus 0 0 0 5000mV 0mA 5000mV 5000mV
vdd_3v3 0 0 0 3300mV 0mA 3300mV 3300mV
axp2101-dcdc1 0 1 0 3300mV 0mA 1500mV 3400mV
reg-virt-consumer.1 0mV 0mV
axp2101-dcdc2 0 1 0 900mV 0mA 500mV 1540mV
reg-virt-consumer.2 0mV 0mV
axp2101-dcdc3 0 1 0 900mV 0mA 500mV 3400mV
reg-virt-consumer.3 0mV 0mV
axp2101-dcdc4 0 1 0 1100mV 0mA 500mV 1840mV
reg-virt-consumer.4 0mV 0mV
axp2101-dcdc5 0 1 0 1400mV 0mA 1400mV 3700mV
reg-virt-consumer.5 0mV 0mV
axp2101-rtcldo 0 0 0 1800mV 0mA 1800mV 1800mV
axp2101-rtcldo1 0 0 0 1800mV 0mA 1800mV 1800mV
axp2101-aldo1 0 1 0 1800mV 0mA 500mV 3500mV
reg-virt-consumer.8 0mV 0mV
axp2101-aldo2 1 2 0 2800mV 0mA 500mV 3500mV
uart0 0mV 0mV
reg-virt-consumer.9 0mV 0mV
axp2101-aldo3 0 1 0 3300mV 0mA 500mV 3500mV
reg-virt-consumer.10 0mV 0mV
axp2101-aldo4 0 1 0 2900mV 0mA 500mV 3500mV
reg-virt-consumer.11 0mV 0mV
axp2101-bldo1 0 1 0 1800mV 0mA 500mV 3500mV
reg-virt-consumer.12 0mV 0mV
axp2101-bldo2 0 1 0 2800mV 0mA 500mV 3500mV
reg-virt-consumer.13 0mV 0mV
axp2101-dldo1 0 1 0 500mV 0mA 500mV 3500mV
reg-virt-consumer.14 0mV 0mV
axp2101-dldo2 0 1 0 1200mV 0mA 500mV 1400mV
reg-virt-consumer.15 0mV 0mV
axp2101-cpusldo 0 0 0 900mV 0mA 500mV 1400mV
#
# cat /sys/devices/platform/soc/twi1/i2c-1/1-0034/reg-virt-consumer.1/of_node/name
virtual-dcdc1
#
#
# cat /sys/devices/platform/soc/twi1/i2c-1/1-0034/reg-virt-consumer.2/of_node/name
virtual-dcdc2
#
#
# cat /sys/devices/platform/soc/twi1/i2c-1/1-0034/reg-virt-consumer.3/of_node/name
virtual-dcdc3
#
#
# cat /sys/devices/platform/soc/twi1/i2c-1/1-0034/reg-virt-consumer.4/of_node/name
virtual-dcdc4
#
#
# cat /sys/devices/platform/soc/twi1/i2c-1/1-0034/reg-virt-consumer.5/of_node/name
virtual-dcdc5
#
#
#
按键测试:
# evtest /dev/input/event1
Input driver version is 1.0.1
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "axp2101-pek"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 116 (KEY_POWER)
Key repeat handling:
Repeat type 20 (EV_REP)
Repeat code 0 (REP_DELAY)
Value 250
Repeat code 1 (REP_PERIOD)
Value 33
Properties:
Testing ... (interrupt to exit)
Event: time 5636.684675, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
Event: time 5636.684675, -------------- SYN_REPORT ------------
Event: time 5636.867305, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 5636.867305, -------------- SYN_REPORT ------------
Event: time 5637.060484, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
Event: time 5637.060484, -------------- SYN_REPORT ------------
Event: time 5637.204751, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 5637.204751, -------------- SYN_REPORT ------------
Event: time 5637.352375, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
Event: time 5637.352375, -------------- SYN_REPORT ------------
Event: time 5637.490476, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 5637.490476, -------------- SYN_REPORT ------------
Event: time 5637.690817, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
Event: time 5637.690817, -------------- SYN_REPORT ------------
Event: time 5637.809573, type 1 (EV_KEY), code 116 (KEY_POWER), value 0
Event: time 5637.809573, -------------- SYN_REPORT ------------
配置DC-DC1电压:
# cd /sys/devices/platform/soc/twi1/i2c-1/1-0034/reg-virt-consumer.1/
//设置输出电压为3.0V
echo 3300000 > max_microvolts
echo 3000000 > min_microvolts
//关闭输出
echo 3300000 > max_microvolts
echo 3000000 > min_microvolts
echo 0 > min_microvolts
获取电池电压:
# cat /sys/class/power_supply/battery/voltage_now
4153000
#
#
#
#
#
# cat /sys/class/power_supply/battery/voltage_now
4153000
#
查询电池是否正在充电:
# cat /sys/class/power_supply/battery/status
Charging
#
#
# cat /sys/class/power_supply/battery/status
Discharging
#
显示电量:
# cat /sys/class/power_supply/battery/capacity
100
#
显示电池温度:
[code]
# cat /sys/class/power_supply/battery/temp
300
[/code]
https://github.com/wangxiaoshuai123456/MusicPlayer-1
sudo apt-get install libqt5multimedia5-plugins qtmultimedia5-dev libtag1-dev -y
登录网易云官方网站 https://music.163.com/ 右上角搜索音乐
https://music.163.com/#/song?id=253256
253256 就是 【我和春天有个约会】的id
确定音乐是否存在:
https://music.163.com/api/song/detail/?id=253256&ids=253256
https://blog.csdn.net/qq_41359157/article/details/125163480
要实现手机类似手指滑动效果,或者其他触控屏滑动效果,需要在QTableWidget、QTableView、QListWidget、QListView控件基础上添加:
QScroller *pScroller = QScroller::scroller(listview);
pScroller->grabGesture(listview,QScroller::LeftMouseButtonGesture);
// 垂直方向按照像素的形式来滑动
listview->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
// 水平滑动条按照像素来滑动
// listview->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
// listview->setVerticalScrollMode(QListWidget::ScrollPerPixel);
main.cpp
#include "virtual_list.h"
#include <QtWidgets/QApplication>
#include <qlistwidget.h>
int main(int argc, char* argv[])
{
QApplication a(argc, argv);
VirtualList w;
QList<QString> list;
// 插入50W条数据
for (int i = 0; i < 500000; i++)
{
list.push_back(QString("%1").arg(i, 5, 10, QChar('0')));
}
w.Append(list);
w.RefreshData();
w.show();
return a.exec();
}
virtual_list.h
#ifndef VIRTUAL_LIST_H
#define VIRTUAL_LIST_H
#include <QtWidgets/QMainWindow>
#include <qlistview.h>
#include <qlist.h>
#include <qstandarditemmodel.h>
#include <qboxlayout.h>
#include <qscrollbar.h>
class VirtualList : public QWidget
{
Q_OBJECT
public:
VirtualList(QWidget* parent = nullptr);
~VirtualList();
public:
/**
* @brief 追加单个数据
* @param data
*/
void Append(const QString& data);
/**
* @brief 批量追加数据
* @param dataList
*/
void Append(const QList<QString>& dataList);
/**
* @brief 清空表格
*/
void Clear();
/**
* @brief 获取表格
* @return
*/
QListView* GetListView() const;
/**
* @brief 重置页面数据
*/
void RefreshData();
/**
* @brief 行数
* @return
*/
int RowCount() const;
/**
* @brief 列数
* @return
*/
int ColumnCount() const;
/**
* @brief 获取当前索引
* @return
*/
int GetSelectedIndex() const;
/**
* @brief 获取指定行的数据
* @param index 行号,索引从0开始
* @return
*/
QString GetData(int index) const;
/**
* @brief 获取全部数据
* @return
*/
QList<QString> GetAllData() const;
protected:
void resizeEvent(QResizeEvent* event) override;
bool eventFilter(QObject* obj, QEvent* event) override;
protected:
/**
* @brief 竖向滚动条的指改变
* @param value
*/
void OnScrollBarValueChanged(int value);
/**
* @brief 处理滚动条(是否显示,以及长度区间)
*/
void HandleScrollBar();
private:
/**
* @brief 计算文本长度
* @param font
* @param text
* @return
*/
int CalcTextWidth(const QFont& font, const QString& text);
private:
QListView* m_pListView;
QScrollBar* m_pScrollBar;
QList<QString> m_dataList;
QStandardItemModel* m_pStdModel;
int m_nShowCount; // 显示的数量
int m_nCurrentPos; // 滚动条当前位置
int m_nCurrentIndex; // 当前数据索引
int m_nSelectedIndex; // 选中的索引
};
#endif
virtual_list.cpp
#include "virtual_list.h"
#include <qscrollbar.h>
#include <qevent.h>
#include <qfontmetrics.h>
#ifdef QT_DEBUG
#include <qdebug.h>
#endif // QT_DEBUG
#include <cmath>
using namespace std;
const static int nStdItemHeight = 40; // item固定40高度
VirtualList::VirtualList(QWidget* parent)
: QWidget(parent),
m_nShowCount(0),
m_nCurrentPos(0),
m_nCurrentIndex(-1),
m_nSelectedIndex(-1)
{
QHBoxLayout* pLayout = new QHBoxLayout(this);
m_pListView = new QListView(this);
m_pScrollBar = new QScrollBar(this);
m_pStdModel = new QStandardItemModel(m_pListView);
m_pListView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_pListView->setResizeMode(QListView::ResizeMode::Adjust);
m_pListView->setEditTriggers(QListView::NoEditTriggers);
m_pListView->setModel(m_pStdModel);
m_dataList.reserve(12000);
pLayout->addWidget(m_pListView);
pLayout->addWidget(m_pScrollBar);
m_pListView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_pScrollBar->setSingleStep(nStdItemHeight); // 一次移动一个Item
m_pScrollBar->setPageStep(nStdItemHeight);
m_pScrollBar->hide();
connect(m_pScrollBar, &QScrollBar::valueChanged, this, &VirtualList::OnScrollBarValueChanged);
connect(m_pListView, &QListView::clicked, this, [&] {
m_nSelectedIndex = m_nCurrentIndex + m_pListView->currentIndex().row();
});
installEventFilter(this);
m_pListView->installEventFilter(this);
m_pScrollBar->installEventFilter(this);
}
VirtualList::~VirtualList()
{}
void VirtualList::Append(const QString& data)
{
m_dataList.push_back(data);
// 数据追加后,更新索引
if (m_nCurrentIndex < 0)
{
m_nCurrentIndex = 0;
}
// 处理下滚动条
HandleScrollBar();
// 如果当前数据的数量小于显示数量,那么要刷新一次到界面
if (m_dataList.size() - 1 < m_nShowCount)
{
RefreshData();
}
}
void VirtualList::Append(const QList<QString>& dataList)
{
m_dataList.append(dataList);
// 数据追加后,更新索引
if (m_nCurrentIndex < 0)
{
m_nCurrentIndex = 0;
}
// 处理下滚动条
HandleScrollBar();
// 如果当前数据的数量小于显示数量,那么要刷新一次到界面
if (m_dataList.size() - dataList.size() < m_nShowCount)
{
RefreshData();
}
}
void VirtualList::Clear()
{
m_dataList.clear();
m_nCurrentPos = 0;
m_nCurrentIndex = -1;
m_nSelectedIndex = -1;
for (int i = m_pStdModel->rowCount() - 1; i >= 0; i--)
{
QStandardItem* item = m_pStdModel->item(i, 0); // 获取QStandardItem对象
delete item; // 释放QStandardItem对象
item = nullptr;
m_pStdModel->removeRow(i);
}
}
QListView* VirtualList::GetListView() const
{
return m_pListView;
}
int VirtualList::ColumnCount() const
{
return 1;
}
int VirtualList::GetSelectedIndex() const
{
return m_nSelectedIndex;
}
QString VirtualList::GetData(int index) const
{
if (index < 0 || index >= m_dataList.size())
{
return {};
}
return m_dataList[index];
}
QList<QString> VirtualList::GetAllData() const
{
return m_dataList;
}
void VirtualList::resizeEvent(QResizeEvent* event)
{
QWidget::resizeEvent(event);
// 获取重置的窗口大小
QSize listSize = m_pListView->size();
m_nShowCount = listSize.height() / nStdItemHeight;
if (m_nShowCount > 0 && m_dataList.size() > 0)
{
HandleScrollBar();
// 填充数据
RefreshData();
}
}
bool VirtualList::eventFilter(QObject* obj, QEvent* event)
{
if (event->type() == QEvent::Wheel)
{
if (obj == m_pScrollBar || obj == m_pListView)
{
QWheelEvent* we = static_cast<QWheelEvent*>(event);
if (we->angleDelta().y() > 0) // 向上滚
{
m_pScrollBar->setValue(m_pScrollBar->value() - nStdItemHeight);
}
else // 向下滚
{
m_pScrollBar->setValue(m_pScrollBar->value() + nStdItemHeight);
}
return true;
}
}
return QWidget::eventFilter(obj, event);
}
void VirtualList::OnScrollBarValueChanged(int value)
{
#ifdef QT_DEBUG
qDebug() << value;
#endif
// 查看最新的数据索引(最新索引是指即将要展示的首个数据索引)
int newIndex = std::ceil(value / (nStdItemHeight * 1.0f));
// 最新的索引超出数组大小
if (newIndex >= m_dataList.size())
{
// 最新的和当前的索引差值小于展示的数量时,直接退出
if (std::abs(newIndex - m_nCurrentIndex) <= m_nShowCount)
{
return;
}
else
{
--newIndex;
}
}
// 数据索引刷新
m_nCurrentIndex = newIndex;
// 取消选中状态
m_pListView->clearSelection();
// 看看刚才的选中索引是否在范围内
if (m_nSelectedIndex >= 0 && m_nSelectedIndex >= newIndex && m_nSelectedIndex <= newIndex + m_nShowCount)
{
int indexDiff = m_nSelectedIndex - m_nCurrentIndex;
m_pListView->setCurrentIndex(m_pStdModel->index(indexDiff, 0));
}
// 做下越界防护
if (m_nCurrentIndex >= m_dataList.size())
{
m_nCurrentIndex = m_dataList.size() - 1;
}
if (m_nCurrentIndex < 0)
{
m_nCurrentIndex = 0;
}
// 重置页面数据
RefreshData();
}
void VirtualList::HandleScrollBar()
{
if (m_dataList.size() > m_nShowCount)
{
// 设置大小,[0, item高度 * 数据长度]
m_pScrollBar->setRange(0, nStdItemHeight * m_dataList.size());
if (m_nShowCount < m_dataList.size()) // 显示的数量小于总数量
{
m_pScrollBar->setVisible(true); // 滚动条显示出来
}
}
}
int VirtualList::CalcTextWidth(const QFont& font, const QString& text)
{
QFontMetrics fm(font);
return fm.horizontalAdvance(text);
}
void VirtualList::RefreshData()
{
int showCount = m_nShowCount; // 界面最终展示多少个
// 最后数据小于应该显示的数量时,重新计算下数量
if (showCount + m_nCurrentIndex >= m_dataList.size())
{
showCount = m_dataList.size() - m_nCurrentIndex;
}
if (showCount > 0)
{
int diff = std::abs(showCount - m_pStdModel->rowCount());
if (showCount > m_pStdModel->rowCount()) // 展示的数量大于当前的,要添加
{
for (int i = 0; i < diff; i++)
{
QStandardItem* pItem = new QStandardItem;
pItem->setSizeHint(QSize(0, nStdItemHeight));
m_pStdModel->appendRow(pItem);
}
}
else if (showCount < m_pStdModel->rowCount()) // 展示的数量小于当前的,要删除
{
for (int i = m_pStdModel->rowCount() - 1; i >= showCount; i--)
{
QStandardItem* item = m_pStdModel->item(i, 0); // 获取QStandardItem对象
delete item; // 释放QStandardItem对象
item = nullptr;
m_pStdModel->removeRow(i);
}
}
else // 等于则不动
{
;
}
for (int i = 0; i < showCount; i++)
{
QStandardItem* pItem = m_pStdModel->item(i);
pItem->setSizeHint(QSize(CalcTextWidth(pItem->font(), m_dataList[m_nCurrentIndex + i]),
nStdItemHeight));
pItem->setText(m_dataList[m_nCurrentIndex + i]);
}
}
}
int VirtualList::RowCount() const
{
return m_dataList.size();
}
pacman -Sy --noconfirm mingw-w64-x86_64-qt6-base
pacman -Sy --noconfirm mingw-w64-x86_64-qt-creator
也可以安装 qtcreator:
https://packages.msys2.org/package/mingw-w64-x86_64-qt-creator
https://packages.msys2.org/base/mingw-w64-qt6-base
① 下载安装 msys64: https://github.com/msys2/msys2-installer
② 装好后打开命令行运行: pacman -S mingw-w64-x86_64-mpv
参考: https://packages.msys2.org/package/mingw-w64-x86_64-mpv?repo=mingw64
mpv 列出所有声卡:
mpv --audio-device=help
A133 运行:
# mpv --audio-device=help
List of detected audio devices:
'auto' (Autoselect device)
'alsa' (Default (alsa))
'alsa/sysdefault:CARD=sun50iw10codec' (sun50iw10-codec, /Default Audio Device)
'alsa/sysdefault:CARD=snddaudio0' (snddaudio0, /Default Audio Device)
#
#
# mpv --no-video --ao=alsa --audio-device='alsa/sysdefault:CARD=snddaudio0' --audio-format=s16 --audio-samplerate=48000 /tmp/今天.wav
Playing: /opt/05. Crossing The Ridg DSD64.dff
[ffmpeg/demuxer] iff: Estimating duration from bitrate, this may be inaccurate
(+) Audio --aid=1 (dsd_msbf 2ch 352800Hz)
File tags:
Artist: Dawada (ZHU Zheqin)
Album: Sister-Drum
Date: 2013-30-10
Genre: Blues
Tit[ 3508.093920] snddaudio snddaudio0: codec_dai set sysclk failed
le: Crossing The Ridge
[ 3508.103226] snddaudio snddaudio0: codec dai set fmt failed
Track: 5
[ 3508.112150] snddaudio snddaudio0: codec_dai set clkdiv failed
AO: [alsa] 48000Hz stereo 2ch s16
A: 00:00:02 / 00:05:57
# mpv --no-video --ao=alsa --audio-device='alsa/sysdefault:CARD=sun50iw10codec' --audio-format=s16 --audio-samplerate=48000 /tmp/今天.wav
Playing: /opt/05. Crossing The Ridg DSD64.dff
[ffmpeg/demuxer] iff: Estimating duration from bitrate, this may be inaccurate
(+) Audio --aid=1 (dsd_msbf 2ch 352800Hz)
File tags:
Artist: Dawada (ZHU Zheqin)
Album: Sister-Drum
Date: 2013-30-10
Genre: Blues
Tit[ 3508.093920] snddaudio snddaudio0: codec_dai set sysclk failed
le: Crossing The Ridge
[ 3508.103226] snddaudio snddaudio0: codec dai set fmt failed
Track: 5
[ 3508.112150] snddaudio snddaudio0: codec_dai set clkdiv failed
AO: [alsa] 48000Hz stereo 2ch s16
A: 00:00:02 / 00:05:57
#include <QObject>
#include <QCoreApplication>
#include <QDebug>
#include <QFileSystemWatcher>
using namespace QObject;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFileSystemWatcher watcher;
watcher.addPath("/dev");
QObject::connect(&watcher, &QFileSystemWatcher::directoryChanged, [] (const QString &path) {
qDebug() << "Directory" << path << "has changed.";
// 在这里检查/dev目录下的文件变化
});
return a.exec();
}
# mpv --no-video --audio-format=s16 --audio-samplerate=192000 /tmp/test.wav
Playing: /opt/1.wav
(+) Audio --aid=1 (dts 7ch 44100Hz)
[18040.223622] snddaudio snddaudio0: codec_dai set sysclk failed
[18040.230160] snddaudio snddaudio0: codec dai set fmt failed
[18040.236363] sunxi-daudio daudio0: unsupport clk_div
[18040.241889] snddaudio snddaudio0: ASoC: machine hw_params failed: -22
[18040.250629] snddaudio snddaudio0: codec_dai set sysclk failed
[ao/alsa] Unable to set hw-parameters: Invalid argument
[18040.258503] snddaudio snddaudio0: codec dai set fmt failed
[ao/alsa] Attempting [18040.267446] sunxi-daudio daudio0: unsupport clk_div
to work around even more ALSA bu[18040.275703] snddaudio snddaudio0: ASoC: machine hw_params failed: -22
gs...
[ao/alsa] Unable to set hw-parameters: Invalid argument
[ao/oss] Can't open audio device /dev/dsp: No such file or directory
[ao] Failed to initialize audio driver 'oss'
Could not open/initialize audio device -> no sound.
Audio: no audio
: 00:00:00 / 00:05:29 (0%)
Exiting... (Errors when loading file)
把 DDR 频率从600M调低到360M 初步测试OK:
tina_a133-dock2_uart0_buildroot-20200212-Qt-sunxi-C_202408271120.img.7z
tplayer播放mp4文件是正常的。QT如果不使用到gpu也是正常的
我用的是这个开发板: https://item.taobao.com/item.htm?id=747735085973
cellphone测试固件:
tina_a133-dock2_uart0_buildroot-20200212-Qt-sunxi-C_202408252225.img.7z
@微凉VeiLiang
https://www.bilibili.com/video/BV1fU4y1z7Rp/
https://www.bilibili.com/video/BV1LK411f7x9
跑这个 cellphone 等Qt demo都是正常的
UI开个小透明窗,让视频层显示出来:
setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(Qt::FramelessWindowHint);
void paintEvent(QPaintEvent *event) override
{
QPainter painter(this);// 创建一个 QPainter 对象
painter.setRenderHint(QPainter::Antialiasing);
painter.setBrush(Qt::white);
painter.drawRect(rect()); //整个窗口刷白
painter.setCompositionMode(QPainter::CompositionMode_Clear);
QColor color(0, 0, 0, 0); // RGB 和 Alpha 值
painter.setBrush(color);
painter.drawRect(100, 100, 500, 500); // 绘制一个透明矩形
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
QWidget::paintEvent(event);// 调用基类的 paintEvent 处理其他默认绘制
}
分析T113 SDK发现,UI处于16层的原因:
kernel/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/dev_fb.c
config.info.mode = LAYER_MODE_BUFFER;
config.info.zorder = 16;
config.info.alpha_mode = 0;
config.info.alpha_value = 0xff;
config.info.fb.crop.x = (0LL) << 32;
config.info.fb.crop.y = ((long long)y_offset) << 32;
config.info.fb.crop.width =
((long long)src_width) << 32;
config.info.fb.crop.height =
((long long)src_height) << 32;
播放器tplayer处于0的原因:
openwrt/package/allwinner/multimedia/tina_multimedia/tplayer/awsink/tlayer_ctrl.c
lc->mDispOutPort->setRectFake(lc->mDispOutPort,&rect);
lc->mDispOutPort->SetZorder(lc->mDispOutPort, VIDEO_ZORDER_BOTTOM);
lc->mDispOutPort->setEnable(lc->mDispOutPort, 1);
pthread_mutex_unlock(&configMtx);
platform/allwinner/display/libuapi/src/videoOutPort.c
static int layer_set_zorder(int fd, unsigned int hlay, int zorder) {
disp_layer_info config;
videoZorder layer_zorder = (videoZorder) zorder;
if ((layer_zorder < VIDEO_ZORDER_TOP)
|| (layer_zorder < VIDEO_ZORDER_TOP)) {
DISP_DBG_LOG("(%s)invalid zorder\n", __FUNCTION__);
return RET_FAIL;
}
memset(&config, 0, sizeof(disp_layer_info));
LayerGetPara(fd, hlay, &config);
switch (layer_zorder) {
case VIDEO_ZORDER_TOP:
config.zorder = ZORDER_MAX;
break;
case VIDEO_ZORDER_BOTTOM:
config.zorder = ZORDER_MIN;
break;
default:
break;
}
return LayerSetPara(fd, hlay, &config);
}
#define ZORDER_MIN 0
#define ZORDER_MID 5
#define ZORDER_MAX 11
最终决定播放器的层是 ZORDER_MIN,即0
屎山代码写得真烂
正常的T113板子是这样的:
root:/# cat /sys/class/disp/disp/attr/sys
screen 0:
de_rate 300000000 hz, ref_fps:58
mgr0: 1200x1920 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[10] force_sync[0] unblank direct_show[false] iommu[1]
dmabuf: cache[2] cache max[2] umap skip[0] umap skip max[20]
lcd output backlight(100) fps:57.1 1200x1920
err:0 skip:78 irq:3685 vsync:0 vsync_skip:0
BUF enable ch[0] lyr[0] z[0] prem[N] a[globl 255] fmt[ 72] fb[1088,1920; 544, 960; 544, 960] crop[ 8, 0,1080,1920] frame[ 0, 0,1200,1920] addr[ 5700000, 597d800, 58fe000] flags[0x 0] trd[0,0]
depth[ 0]
BUF enable ch[1] lyr[0] z[16] prem[N] a[pixel 255] fmt[ 0] fb[1200,1920;1200,1920;1200,1920] crop[ 0,1920,1200,1920] frame[ 0, 0,1200,1920] addr[ 0, 0, 0] flags[0x 0] trd[0,0]
depth[ 0]
root:/#
root:/#
root:/#
z[0]:视频层
z[16]: UI层
层数字越大,就越处于顶层,所以UI会把视频层遮住,这个是正常逻辑。
#
# cat /sys/class/disp/disp/attr/sys
screen 0:
de_rate 300000000 hz, ref_fps:59
mgr0: 720x1440 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[166] force_sync[0] unblank direct_show[false] iommu[1]
dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
lcd output backlight(100) fps:59.9 720x1440
err:1 skip:90 irq:3780659 vsync:0 vsync_skip:0
BUF enable ch[0] lyr[0] z[11] prem[N] a[pixel 0] fmt[ 77] fb[1088,1920; 544, 960; 544, 960] crop[ 8, 0,1080,1920] frame[ 0, 0, 400, 400] addr[fc800000,fc9fe000,fca7d800] flags[0x 0] trd[0,0] depth[ 0]
BUF enable ch[1] lyr[0] z[0] prem[N] a[globl 255] fmt[ 0] fb[ 736,1440; 736,1440; 736,1440] crop[ 0, 0, 720,1440] frame[ 0, 0, 720,1440] addr[ff000000, 0, 0] flags[0x 0] trd[0,0] depth[ 0]
#
#
z[11]:视频层
z[0]: UI层
z值越大,越处于上层,所以视频层遮住了视频播放层
准备工作:
sudo apt-get install gcc git libepoxy-dev libegl1-mesa-dev libsdl2-dev -y
由于Ubuntu18.04自带的cmake是3.10.2,但是上面得源码需要3.14,所有得手动编译源码升级:
wget -O cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3.tar.gz
tar xzf cmake.tar.gz
cd cmake-3.26.3
mkdir build
cd build
cmake ..
make
sudo make install
源码:https://github.com/rainlab-inc/lvgl-opengl
下载:
$ git clone https://github.com/rainlab-inc/lvgl-opengl
$ cd lvgl-opengl
$ git submodule update --init --remote --recursive
本站下载:lvgl-opengl.tar.7z (约100M)
编译:
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
$ ./lvgl-opengl
运行:
现象:
A133 下 720x1440分辨率的LCD,使用GPU的应用屏幕大幅变化的时候会撕裂
分析:
这个问题可能与buffer对齐相关
gpu需要的framebuffer需要宽32对齐
有小数点,不是对齐的
720/32=22.5
可以整除,是对齐的
736/32=23
解决方案:
1、将 board.dts 中的,
fb0_width = 720,fb0_height = 1440
改为:
fb0_width = 736,fb0_height = 1440
lcd保持不变:
lcd_x = 720,lcd_y = 1440
2. dev_fb.c 代码补丁:
diff --git a/drivers/video/fbdev/sunxi/disp2/disp/dev_fb.c b/drivers/video/fbdev/sunxi/disp2/disp/dev_fb.c
index 224eff6e6f67..6f87b0327e99 100644
--- a/drivers/video/fbdev/sunxi/disp2/disp/dev_fb.c
+++ b/drivers/video/fbdev/sunxi/disp2/disp/dev_fb.c
@@ -716,9 +716,9 @@ static int sunxi_fb_pan_display(struct fb_var_screeninfo *var,
config.info.fb.crop.y =
((unsigned long long)(var->yoffset)) << 32;
config.info.fb.crop.width =
- ((long long)var->xres) << 32;
+ ((long long)config.info.screen_win.width) << 32;
config.info.fb.crop.height =
- ((long long)(var->yres / buffer_num)) << 32;
+ ((long long)(config.info.screen_win.height / buffer_num)) << 32;
#if defined(CONFIG_SUNXI_DISP2_FB_ROTATION_SUPPORT)
if (mgr->rot_sw && mgr->rot_sw->apply) {
3、如果是QT的应用程序,上层还是按照这个配置,这样就只在720x1440上面绘图
export QT_QPA_EGLFS_WIDTH=720
export QT_QPA_EGLFS_HEIGHT=1440
cl_vec3_add.c
/*
* This confidential and proprietary software should be used
* under the licensing agreement from Allwinner Technology.
*
* Copyright (C) 2020 Allwinner Technology Limited
* All rights reserved.
*
* Author: Albert Yu <yuxyun@allwinnertech.com>
*
* The entire notice above must be reproduced on all authorised
* copies and copies may only be made to the extent permitted
* by a licensing agreement from Allwinner Technology Limited.
*/
#include <stdio.h>
#include <stdlib.h>
#include <CL/cl.h>
#define DATA_SIZE 3
#define KERNEL_SRC_FILE "cl_vec3_add.cl"
int main(void)
{
int i;
FILE *fp;
char *source_str = NULL;
int a[DATA_SIZE] = { 1, 2, 3};
int b[DATA_SIZE] = { 4, 5, 6};
int c[DATA_SIZE] = { 0 };
size_t source_size;
cl_int cl_ret;
cl_platform_id platform_id;
cl_device_id device_id;
cl_context context;
cl_command_queue command_queue;
cl_mem mem_a, mem_b, mem_c;
cl_program program;
cl_kernel kernel;
size_t global_item_size = DATA_SIZE;
size_t local_item_size = DATA_SIZE;
fp = fopen(KERNEL_SRC_FILE, "r");
if (!fp) {
printf("Failed to open %s\n", KERNEL_SRC_FILE);
return -1;
}
if (fseek(fp, 0, SEEK_END))
goto exit;
source_size = ftell(fp);
rewind(fp);
source_str = (char*)malloc(source_size);
if (!source_str) {
printf("Failed to allocate memory for source_str\n");
goto exit;
}
/* Step 1: read kernel source code from kernel file */
source_size = fread(source_str, 1, source_size, fp);
if (source_size <= 0) {
printf("Failed to read kernel source code from kernel file\n");
goto exit;
}
/* Step 2: get the platform id */
cl_ret = clGetPlatformIDs(1, &platform_id, NULL);
if (cl_ret != CL_SUCCESS) {
printf("clGetPlatformIDs failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 3: get the device id */
cl_ret = clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_GPU, 1, &device_id, NULL);
if (cl_ret != CL_SUCCESS) {
printf("clGetDeviceIDs failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 4: create an OpenCL context */
context = clCreateContext(NULL, 1, &device_id, NULL, NULL, &cl_ret);
if (!context || cl_ret != CL_SUCCESS) {
printf("clCreateContext failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 5: create a command-queue on the specific device */
command_queue = clCreateCommandQueue(context, device_id, 0, &cl_ret);
if (!command_queue || cl_ret != CL_SUCCESS) {
printf("clCreateCommandQueue failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 6: allocate buffers on the device */
mem_a = clCreateBuffer(context, CL_MEM_READ_ONLY, DATA_SIZE * sizeof(int), NULL, &cl_ret);
if (!mem_a || cl_ret != CL_SUCCESS) {
printf("Failed to allocate buffer for a, cl_ret=%d\n", cl_ret);
goto exit;
}
mem_b = clCreateBuffer(context, CL_MEM_READ_ONLY, DATA_SIZE * sizeof(int), NULL, &cl_ret);
if (!mem_b || cl_ret != CL_SUCCESS) {
printf("Failed to allocate buffer for b, cl_ret=%d\n", cl_ret);
goto exit;
}
mem_c = clCreateBuffer(context, CL_MEM_WRITE_ONLY, DATA_SIZE * sizeof(int), NULL, &cl_ret);
if (!mem_c || cl_ret != CL_SUCCESS) {
printf("Failed to allocate buffer for c, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 7: copy the data to the device */
cl_ret = clEnqueueWriteBuffer(command_queue, mem_a, CL_TRUE, 0, DATA_SIZE * sizeof(int), a, 0, NULL, NULL);
if (cl_ret != CL_SUCCESS) {
printf("clEnqueueWriteBuffer for a failed, cl_ret=%d\n", cl_ret);
goto exit;
}
cl_ret = clEnqueueWriteBuffer(command_queue, mem_b, CL_TRUE, 0, DATA_SIZE * sizeof(int), b, 0, NULL, NULL);
if (cl_ret != CL_SUCCESS) {
printf("clEnqueueWriteBuffer for b failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 8: create a program object from the kernel source */
program = clCreateProgramWithSource(context, 1, (const char **)&source_str, (const size_t *)&source_size, &cl_ret);
if (!program || cl_ret != CL_SUCCESS) {
printf("clCreateProgramWithSource failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 9: build the program */
cl_ret = clBuildProgram(program, 1, &device_id, NULL, NULL, NULL);
if (cl_ret != CL_SUCCESS) {
printf("clBuildProgram failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 10: create a kernel object */
kernel = clCreateKernel(program, "vec3_add", &cl_ret);
if (!kernel || cl_ret != CL_SUCCESS) {
printf("clCreateKernel failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 11: set the arguments of the kernel */
cl_ret = clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *)&mem_a);
if (cl_ret != CL_SUCCESS) {
printf("clSetKernelArg for mem_a failed, cl_ret=%d\n", cl_ret);
goto exit;
}
cl_ret = clSetKernelArg(kernel, 1, sizeof(cl_mem), (void *)&mem_b);
if (cl_ret != CL_SUCCESS) {
printf("clSetKernelArg for mem_b failed, cl_ret=%d\n", cl_ret);
goto exit;
}
cl_ret = clSetKernelArg(kernel, 2, sizeof(cl_mem), (void *)&mem_c);
if (cl_ret != CL_SUCCESS) {
printf("clSetKernelArg for mem_c failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 12: enqueues a command to execute a kernel on the device */
cl_ret = clEnqueueNDRangeKernel(command_queue, kernel, 1, NULL, &global_item_size, &local_item_size, 0, NULL, NULL);
if (cl_ret != CL_SUCCESS) {
printf("clEnqueueNDRangeKernel failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Step 13: read back the result from the device */
cl_ret = clEnqueueReadBuffer(command_queue, mem_c, CL_TRUE, 0, DATA_SIZE * sizeof(int), c, 0, NULL, NULL);
if (cl_ret != CL_SUCCESS) {
printf("clEnqueueReadBuffer failed, cl_ret=%d\n", cl_ret);
goto exit;
}
/* Show the result */
for(i = 0; i < DATA_SIZE; i++)
printf("%d + %d -> expected result: %d, opencl result: %d\n", a[i], b[i], a[i] + b [i], c[i]);
exit:
if (fp)
fclose(fp);
if (source_str)
free(source_str);
if (command_queue) {
clFlush(command_queue);
clFinish(command_queue);
clReleaseCommandQueue(command_queue);
}
if (kernel)
clReleaseKernel(kernel);
if (program)
clReleaseProgram(program);
if (mem_a)
clReleaseMemObject(mem_a);
if (mem_b)
clReleaseMemObject(mem_b);
if (mem_c)
clReleaseMemObject(mem_c);
if (context)
clReleaseContext(context);
return 0;
}
计算脚本:cl_vec3_add.cl
__kernel void vec3_add(__global const int *a, __global const int *b, __global int *c)
{
int i = get_global_id(0);
c[i] = a[i] + b[i];
}
编译:
/opt/A133/buildroot/buildroot-20200212-Qt-sunxi-C/output/host/bin/aarch64-linux-gnu-gcc -o /mnt/hgfs/D/opencl_test cl_vec3_add.c -I/opt/A133/tina4/package/libs/libgpu-opencl/ge8300/3rdparty/include/khronos/ -lOpenCL
执行结果:
# /usr/bin/opencl
1 + 4 -> expected result: 5, opencl result: 5
2 + 5 -> expected result: 7, opencl result: 7
3 + 6 -> expected result: 9, opencl result: 9
#
计算脚本改成乘法:cl_vec3_add.cl
__kernel void vec3_add(__global const int *a, __global const int *b, __global int *c)
{
int i = get_global_id(0);
c[i] = a[i] + b[i];
}
执行结果:
# /usr/bin/opencl
1 + 4 -> expected result: 5, opencl result: 4
2 + 5 -> expected result: 7, opencl result: 10
3 + 6 -> expected result: 9, opencl result: 18
#
# tplayerdemo
WARNING: awplayer <log_set_level:30>: Set log level to 3
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-0 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-1 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-2 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-3 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-4 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-5 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-6 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-7 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-8 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-9 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-10 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-11 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-12 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-13 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry adecoder-14 ok.
DEBUG : awplayer <ReadPluginEntry:194>: read plugin entry adecoder-15 fail!
DEBUG : awplayer <CdxPluginLoadList:221>: have config 15 entry
DEBUG : awplayer <CdxPluginLoadList:222>: start to open adecoder lib
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.aac comment is "aac_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_aacdec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.alac comment is "alac_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_alacdec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.amr comment is "amr_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_amrdec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.ape comment is "ape_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_apedec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.flac comment is "flac_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_flacdec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.mp3 comment is "mp3_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_mp3dec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.ogg comment is "ogg_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_oggdec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.wav comment is "wav_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_wavdec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.atrc comment is "atrc_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_atrcdec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.cook comment is "cook_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_cookdec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.ra comment is "ra_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_radec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.sipr comment is "sipr_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_siprdec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.dsd comment is "dsd_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_dsddec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.g729 comment is "g729_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_g729dec.so
DEBUG : awplayer <DlOpenPlugin:96>: plugin adecoder.opus comment is "opus_adecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libaw_opusdec.so
DEBUG : awplayer <CdxPluginLoadList:202>: Load Plugin list vdecoder
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-0 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-1 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-2 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-3 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-4 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-5 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-6 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-7 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-8 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-9 ok.
DEBUG : awplayer <ReadPluginEntry:178>: read plugin entry vdecoder-10 ok.
DEBUG : awplayer <ReadPluginEntry:194>: read plugin entry vdecoder-11 fail!
DEBUG : awplayer <CdxPluginLoadList:221>: have config 11 entry
DEBUG : awplayer <CdxPluginLoadList:222>: start to open vdecoder lib
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.h264 comment is "h264_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawh264.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.mjpeg comment is "mjpeg_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawmjpeg.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.mpeg2 comment is "mpeg2_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawmpeg2.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.mpeg4base comment is "mpeg4base_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawmpeg4base.so
WARNING: awplayer <DlOpenPlugin:112>: Invalid plugin,function CedarPluginVDInit not found.
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.mpeg4dx comment is "mpeg4dx_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawmpeg4dx.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.mpeg4h263 comment is "mpeg4h263_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawmpeg4h263.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.mpeg4normal comment is "mpeg4normal_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawmpeg4normal.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.vp8 comment is "vp8_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawvp8.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.wmv3 comment is "wmv3_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawwmv3.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.avs comment is "avs_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawavs.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <DlOpenPlugin:96>: plugin vdecoder.h265 comment is "h265_vdecoder"
DEBUG : awplayer <DlOpenPlugin:97>: plugin open lib: libawh265.so
DEBUG : awplayer <DlOpenPlugin:116>: plugin init : CedarPluginVDInit
DEBUG : awplayer <CdxPluginLoadList:202>: Load Plugin list plugin
DEBUG : awplayer <ReadPluginEntry:194>: read plugin entry plugin-0 fail!
DEBUG : awplayer <CdxPluginLoadList:221>: have config 0 entry
DEBUG : awplayer <CdxPluginLoadList:222>: start to open plugin lib
DEBUG : awplayer <AwStreamInit:107>: aw stream init...
DEBUG : awplayer <AwStreamInit:150>: stream list size:8
INFO : awplayer <AwParserInit:441>: aw parser init...
DEBUG : awplayer <AwParserInit:560>: aw parser size:17
******************************************************************************************
* This program implements a simple player, you can type commands to control the player.
* To show what commands supported, type 'help'.
******************************************************************************************
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> tina_multimedia <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
tag : tina3.5
branch: tina-dev
date : Mon Jul 15 19:04:59 2019 +0800
Change-Id: I5f6c8a88d7b387a312b7744797a0d5f8ab07ee7a
-------------------------------------------------------------------------------
DEBUG : tplayer <TPlayerCreate:198>: TPlayerCreate
DEBUG : awplayer <XPlayerCreate:236>: XPlayerCreate.
DEBUG : awplayer <LogVersionInfo:34>:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> CedarX <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
tag : CedarX-2.8.0
branch: master
commit: 967535b8ff6a073cb4f38e85a4ae5fa6008014d8
date : Mon, 15 May 2017 01:30:22 +0000 (09:30 +0800)
author:
----------------------------------------------------------------------
DEBUG : tsoundcontrol <TSoundDeviceCreate:147>: TinaSoundDeviceInit()
DEBUG : tsoundcontrol <openSoundDevice:17>: openSoundDevice() in default style
DEBUG : awplayer <LayerCreate:973>: LayerCreate.
DEBUG : awplayer <LayerCreate:993>: ==== callback: 0x7f7d7fee30, pUser: 0x20d57690
DEBUG : awplayer <LayerCreate:1004>: screen:w 720, screen:h 1440
DEBUG : tsubtitlectrl <SubtitleCreate:84>: ==== pCallback: 0x7f7d7fecf0, pUser: 0x20d57690
DEBUG : awplayer <XPlayerSetVideoSurfaceTexture:634>: setVideoSurfaceTexture, surface = 0x20d74690
DEBUG : awplayer <XPlayerThread:1981>: process message XPLAYER_COMMAND_SET_SURFACE.
DEBUG : awplayer <XPlayerThread:2044>: ==== process message XPLAYER_COMMAND_SET_SUBCTRL.
DEBUG : awplayer <PlayerSetSubCtrl:750>: === PlayerSetSubCtrl
DEBUG : awplayer <XPlayerSetDeinterlace:737>: set deinterlace
DEBUG : awplayer <XPlayerThread:2059>: ==== process message XPLAYER_COMMAND_SET_SUBCTRL.
dd: error writing '/dev/fb0': No space left on device
16201+0 records in
16200+0 records out
tplayerdemo# set url:/mnt/exUDISK/film/4.12.mp4
tplayerdemo# demoPlayer.mUrl = /mnt/exUDISK/film/4.12.mp4
DEBUG : awplayer <XPlayerSetDataSourceUrl:495>: setDataSource(url), url='/mnt/exUDISK/film/4.12.mp4'
INFO : awplayer <XPlayerThread:1817>: process message XPLAYER_COMMAND_SET_SOURCE.
DEBUG : awplayer <XPlayerPrepare:787>: prepare
DEBUG : awplayer <XPlayerThread:2074>: process message XPLAYER_COMMAND_PREPARE. mPriData->mStatus: 1
DEBUG : demuxComponent <DemuxThread:1826>: process message DEMUX_COMMAND_PREPARE.
DEBUG : demuxComponent <DemuxThread:1893>: === prepare msg
DEBUG : awplayer <CdxParserPrepare:818>: source uri 'file:///mnt/exUDISK/film/4.12.mp4'
DEBUG : awplayer <__FileStreamCreate:534>: local file 'file:///mnt/exUDISK/film/4.12.mp4'
DEBUG : awplayer <__FileStreamConnect:392>: *************impl->size=3543436236
DEBUG : awplayer <__FileStreamConnect:404>: impl->filePath=fd://7?offset=0&length=3543436236
DEBUG : awplayer <__FileStreamConnect:486>: :16:[00 00 00 18 66 74 79 70 6d 70 34 32 00 00 00 00]
DEBUG : awplayer <__FileStreamGetMetaData:363>: redriect url 'file:///mnt/exUDISK/film/4.12.mp4'
INFO : awplayer <ParserTypeGuess:672>: I think it's something about 'mov', type id(0)
DEBUG : CdxMovParser <__CdxMovParserProbe:1327>: --- probe: it is mov parser
DEBUG : awplayer <CdxParserCreate:767>: Good, it's 'mov'
INFO : CdxMovParser <__CdxMovParserOpen:1232>: mov parser is not support multi-stream yet!!!
DEBUG : CdxMovParser <__CdxMovParserOpen:1261>: --- c->bSeekAble = 1
DEBUG : awplayer <CdxParserCreate:773>: parser type(0)
DEBUG : Mov Id3 Test <_MovParseFtyp:3732>: ---- compatible = mp42mp41
DEBUG : Mov Id3 Test <_MovParseTkhd:2189>: tkhd width = 1920, height = 1080
DEBUG : Mov Id3 Test <_MovParseMdhd:1995>: -- language = eng
DEBUG : Mov Id3 Test <_MovParseStsd:1386>: stsd width = 1920, height = 1080
DEBUG : Mov Id3 Test <_MovParseStsz:878>: -- sample_size = 0
INFO : Mov Id3 Test <_MovParseStbl:1742>: !!!! careful ctts atom is tested yet
DEBUG : Mov Id3 Test <_MovParseCtts:733>: track[0].ctts.entries = 56177
DEBUG : Mov Id3 Test <_MovParseTkhd:2189>: tkhd width = 0, height = 0
DEBUG : Mov Id3 Test <_MovParseMdhd:1995>: -- language = eng
DEBUG : Mov Id3 Test <_MovParseStsz:878>: -- sample_size = 0
DEBUG : CdxMovParser <__CdxMovParserInit:1204>: ***** mov open success!!
DEBUG : demuxComponent <DemuxThread:1930>: --- demux->shiftedTimeUrl =
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:809>: Get mediainfo
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:840>: --- codecformat = 115
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:855>: ---- frame rate = 59940, st->time_scale: 60000, st->sample_duration: 1001
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:864>: width = 1920, height = 1080
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:867>: extradataSize = 45
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:897>: ********* audio 0************
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:898>: ****eCodecFormat: 4
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:899>: ****eSubCodecFormat: 0
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:900>: ****nChannelNum: 2
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:901>: ****nBitsPerSample: 16
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:902>: ****nSampleRate: 48000
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:903>: ****nAvgBitrate: 317374
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:904>: ****nMaxBitRate: 412498
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:905>: ****extradataSize 2
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:906>: ***************************
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:951>: streamNum = 2, videoNum = 1, audioNum = 1, subtitleNum = 0
DEBUG : awplayer <CdxMovSetStream:408>: == stss_size: 1417
DEBUG : awplayer <CdxMovSetStream:430>: mvhd = 1394816,
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:968>: -- mov duration = 1394816
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:975>: ****video_avg_bitrate: 20323000
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:1000>: --i = 0, stsd_type = 1, stream_index = 0, nb_streams = 2
DEBUG : CdxMovParser <__CdxMovParserGetMediaInfo:1000>: --i = 1, stsd_type = 2, stream_index = 0, nb_streams = 2
DEBUG : demuxComponent <PrintMediaInfo:487>: *********PrintMediaInfo begin*********
DEBUG : demuxComponent <PrintMediaInfo:508>: fileSize = 3543436236, bSeekable = 1, duration = 1394816, audioNum = 1, videoNum = 1, subtitleNum = 0
DEBUG : demuxComponent <PrintMediaInfo:528>: ***Video[0]*** eCodecFormat = 0x115, nWidth = 1920, nHeight = 1080, nFrameRate = 59940, nFrameDuration = 0, bIs3DStream = 0
DEBUG : demuxComponent <PrintMediaInfo:547>: ***Audio[0]*** eCodecFormat = 0x4, eSubCodecFormat = 0x0, nChannelNum = 2, nBitsPerSample = 16, nSampleRate = 48000
DEBUG : demuxComponent <PrintMediaInfo:563>: *********PrintMediaInfo end*********
DEBUG : awplayer <initializePlayer:15
20>: mVideoRotateDegree = 90
DEBUG : awplayer <initializePlayer:1529>: rotate degree level = 1
debug : cedarc <CdcIniParserInit:24>:CdcIniParserInit
debug : cedarc <CdcIniParserInit:35>:load conf file /etc/cedarc.conf ok!
debug : cedarc <checkDebugConfig:270>:bSaveStreamFlag = 0, nSaveStreamConfig = 0, fpstream = (nil), path = /data/camera/bs.dat
DEBUG : awplayer <VideoDecCompSetVideoStreamInfo:255>: ++++++++ pVconfig->bGpuBufValid = 1,nGpuAlignStride = 32
debug : ionAlloc <__GetIonMemOpsS:1079>:*** get __GetIonMemOpsS ***
debug : cedarc <LogVersionInfo:40>:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Cedar Codec <<<<<<<<<<<<<<<<<<<<<<<<<<<<
tag : CedarC-v1.2.0
branch: master
commit: 95318b2740529466923c156cdc084712654cb4ea
date : Tue May 7 18:26:47 2019 +0800
author: jenkins8080
patch :
----------------------------------------------------------------------
debug : cedarc <InitializeVideoDecoder:471>:*** pVconfig->nVeFreq = 0
debug : ionAlloc <__GetIonMemOpsS:1079>:*** get __GetIonMemOpsS ***
debug : ionAlloc <ion_alloc_open:141>:begin ion_alloc_open
debug : cedarc <VeInitialize:1265>: *** nPhyOffset = 0x0
debug : cedarc <VeInitialize:1330>: ve init ok
debug : ionAlloc <ion_alloc_open:183>:** phy offset = 0
debug : cedarc <VeRelease:1409>: ve release ok
debug : cedarc <DecideStreamBufferSize:2253>:nBufferSize=8388608
debug : cedarc <VeInitialize:1265>: *** nPhyOffset = 0x0
debug : cedarc <VeSetSpeed:1765>: *** set ve freq to 600 Mhz ***
debug : cedarc <VeInitialize:1330>: ve init ok
debug : cedarc <VideoEngineCreate:428>: *** pEngine->nIcVeVersion = 3021000012010, decIpVersion = 30210
debug : cedarc <VeGetChipId:1563>: 00001000
debug : cedarc <VideoEngineCreate:562>: **************eCtlAfcbMode = 0
debug : cedarc <H264DecoderInit:238>: get the nIcversion = 3021000012010, nDecIpVersion = 30210
debug : cedarc <GetSbmInterface:1768>:*********GetSbmInterface, nType=4
debug : cedarc <GetSbmInterfaceFrame:1725>:******* sbm-type: Frame*******
debug : cedarc <SbmFrameInit:197>:************pSbm->sbmInterface.bUseNewVeMemoryProgram=0
debug : cedarc <CdcMessageQueueCreate:51>:nMessageSize = 40
debug : ionAlloc <__GetIonMemOpsS:1079>:*** get __GetIonMemOpsS ***
debug : ionAlloc <ion_alloc_open:141>:begin ion_alloc_open
DEBUG : awplayer <VideoRenderCompSetWindow:454>: video render component setting window: 0x20d74690
DEBUG : awplayer <handleSetWindow:375>: process MESSAGE_ID_SET_WINDOW message, p->pPicture((nil))
DEBUG : awplayer <__LayerResetNativeWindow:834>: LayerResetNativeWindow : (nil)
DEBUG : awplayer <__LayerControl:918>: layer control cmd = 259
DEBUG : awplayer <VideoRenderCompSetDeinterlace:310>: video render component setting deinterlace: 0x20d704f0
DEBUG : awplayer <PlayerConfigDropDelayFrame:1996>: PlayerConfigDropDelayFrame
DEBUG : awplayer <PlayerConfigDropDelayFrame:1999>: VideoDecCompSetDropDelayFrames
DEBUG : audioDecItf <AudioDecCompCreate:206>: libadecoder.so dlopen success, to load internal symbols...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(ParserRequestBsBuffer) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(ParserUpdateBsBuffer) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(BsQueryQuality) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(AudioStreamDataSize) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(AudioStreamBufferSize) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(AudioStreamBufferMaxFrameNum) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(AudioPCMDataSize) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(DecRequestPcmBuffer) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(DecUpdatePcmBuffer) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(PlybkRequestPcmBuffer) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(PlybkUpdatePcmBuffer) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(PlybkRequestPcmPts) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(PcmQueryQuality) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(AudioDecoderSeek) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(InitializeAudioDecoder) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(ResetAudioDecoder) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(DecodeAudioStream) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(DestroyAudioDecoder) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(CreateAudioDecoder) link success...
DEBUG : audioDecItf <AudioDecCompCreate:221>: func(SetRawPlayParam) link success...
DEBUG : audioRender <AudioRenderCompSetAudioSink:195>: audio render component setting AudioSink
setDataSource end
tplayerdemo#
tplayerdemo#
tplayerdemo# ^[
tplayerdemo# set dst_rect: 100 100 720 300
tplayerdemo# DEBUG : awplayer <LayerSetDisplayRect:1059>: Layer set display rect,(0 0, 400x400)
tplayerdemo# set loop:1
tplayerdemo# tplayerdemo set loop flag:flag = 1
tplayerdemo#
tplayerdemo# play
tplayerdemo# TPlayerSetHoldLastPicture()
DEBUG : awplayer <VideoRenderSetHoldLastPicture:580>: video render component setting hold last picture(bHold=0).
DEBUG : awplayer <XPlayerStart:817>: start
DEBUG : awplayer <__LayerCtrlHoldLastPicture:599>: LayerCtrlHoldLastPicture, bHold = 0
DEBUG : awplayer <__LayerCtrlHideVideo:581>: __LayerCtrlHideVideo
DEBUG : awplayer <XPlayerThread:2261>: process message XPLAYER_COMMAND_START.
DEBUG : awplayer <PlayerStart:802>: player start
DEBUG : awplayer <BaseCompPostAndWait:61>: video decoder receive cmd: start
debug : cedarc <SbmFrameReset:613>:** wait for reset sem
debug : cedarc <ProcessThread:1653>:*** post reset sem
debug : cedarc <SbmFrameReset:615>:** wait for reset sem ok
debug : cedarc <SbmFrameReset:620>:SbmFrameReset finish
DEBUG : awplayer <BaseCompPostAndWait:61>: audio decoder receive cmd: start
debug : cedarc <H264ProcessExtraData2:543>: H264ProcessNaluUnit, bNeedFindSPS = 0, bNeedFindPPS = 0
(Allwinner Audio Middle Layer),line(958) : Create Decoder!!=====
DEBUG : audioDecItf <handleStart:1065>: Create libadecoder success...
(Allwinner Audio Middle Layer),line(592) : AudioDec_Installaudiolib ok
(Allwinner Audio Middle Layer),line(595) : audio decoder init start ...
(AllwinnerAlibs),line(50) :
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Audio <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
tag : audiocodec-v1.2
branch: new
commit: 3ba65962c01cbf1280ddda19d843009b6ef8ce85
date : Tue Jan 8 16:25:27 2019 +0800
----------------------------------------------------------------------
(AllwinnerAlibs),line(679) : ----Loading so success!
(AllwinnerAlibs),line(877) : *************pAudioStreamInfo start******************
(AllwinnerAlibs),line(878) : eCodecFormat :id(4), name(aac low-complexy)
(AllwinnerAlibs),line(879) : eSubCodecFormat :0
(AllwinnerAlibs),line(880) : nChannelNum :2
(AllwinnerAlibs),line(881) : nBitsPerSample :16
(AllwinnerAlibs),line(882) : nSampleRate :48000
(AllwinnerAlibs),line(883) : nAvgBitrate :317374
(AllwinnerAlibs),line(884) : nMaxBitRate :412498
(AllwinnerAlibs),line(885) : nFileSize :0
(AllwinnerAlibs),line(886) : eAudioBitstreamSource:0
(AllwinnerAlibs),line(887) : eDataEncodeType :0
(AllwinnerAlibs),line(888) : nCodecSpecificDataLen:2
(AllwinnerAlibs),line(889) : pCodecSpecificData :0x7f6c04cd60
(AllwinnerAlibs),line(890) : nFlags :0
(AllwinnerAlibs),line(891) : nBlockAlign :0
(AllwinnerAlibs),line(892) : *************pAudioStreamInfo end ******************
(AAC Decoder),line(36) : init successs...
(Allwinner Audio Middle Layer),line(603) : AUDIO DECODE INIT OK...0
DEBUG : awplayer <BaseCompPostAndWait:61>: video render receive cmd: start
DEBUG : awplayer <handleStart:640>: video render handleStart:p->eStatus = 0
DEBUG : awplayer <BaseCompPostAndWait:61>: audio render receive cmd: start
INFO : audioRender <handleStart:295>: audio render process start message.
DEBUG : audioRender <initSoundDevice:478>: init sound device.
DEBUG : audioRender <initSoundDevice:486>: set sound devide param, sample rate = 48000, channel num = 2.
DEBUG : tsoundcontrol <TSoundDeviceSetFormat:193>: TinaSoundDeviceSetFormat(),sc->sound_status == 2
DEBUG : tsoundcontrol <TSoundDeviceSetFormat:195>: TinaSoundDeviceSetFormat()
DEBUG : tsoundcontrol <TSoundDeviceSetFormat:201>: TinaSoundDeviceSetFormat()>>>sample_rate:48000,channel_num:2,sc->bytes_per_sample:4
DEBUG : demuxComponent <DemuxThread:2115>: process message DEMUX_COMMAND_START.
WARNING: awplayer <callbackProcess:3665>: message 0x40a not handled.
debug : cedarc <AvcSbmFrameCheckBitStreamType:325>:result: bStreamWithStartCode[0], with[1], whitout[1]
started.
debug : cedarc <H264DecodePictureScanType:2779>: here3:hCtx->bProgressice=1
debug : cedarc <VeSetEnableAfbcFlag:1771>: **** VeSetEnableAfbcFlag: 0
debug : fbm.c <FbmCreateBuffer:148>:FbmCreate, total fbm number: 5, decoder needed: 5, nWidth=1920, nHeight=1088 nAlignStride = 32
debug : fbm.c <FbmCreateBuffer:252>:** call allocate pic buf, i = 0, maxNum = 5
DEBUG : awplayer <CallbackProcess:3154>: first audio pts = 0
debug : fbm.c <FbmAllocatePictureBuffer:1454>:pPicture->bEnableAfbcFlag = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:252>:** call allocate pic buf, i = 1, maxNum = 5
debug : fbm.c <FbmAllocatePictureBuffer:1454>:pPicture->bEnableAfbcFlag = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:252>:** call allocate pic buf, i = 2, maxNum = 5
debug : fbm.c <FbmAllocatePictureBuffer:1454>:pPicture->bEnableAfbcFlag = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:252>:** call allocate pic buf, i = 3, maxNum = 5
debug : fbm.c <FbmAllocatePictureBuffer:1454>:pPicture->bEnableAfbcFlag = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:252>:** call allocate pic buf, i = 4, maxNum = 5
debug : fbm.c <FbmAllocatePictureBuffer:1454>:pPicture->bEnableAfbcFlag = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:405>:*** finish fbmCreateBuffer
warning: cedarc <H264MallocBuffer:1401>: h264 scale down fbm buffer number need double check!
debug : fbm.c <FbmCreateBuffer:148>:FbmCreate, total fbm number: 11, decoder needed: 5, nWidth=1088, nHeight=1920 nAlignStride = 32
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:306>:*** calcute nLower2BitBufOffset = 0(0.00), stride = 0
debug : fbm.c <FbmCreateBuffer:405>:*** finish fbmCreateBuffer
DEBUG : awplayer <RenderGetVideoFbmBufInfo:1468>: video buffer info: nWidth[1088],nHeight[1920],nBufferCount[11],ePixelFormat[5]
DEBUG : awplayer <RenderGetVideoFbmBufInfo:1471>: video buffer info: nAlignValue[32],bProgressiveFlag[1],bIsSoftDecoderFlag[0]
DEBUG : awplayer <__LayerControl:918>: layer control cmd = 257
DEBUG : awplayer <__LayerControl:920>: get the fbm buf info
DEBUG : awplayer <__LayerControl:922>: fbmBufInfo->bProgressiveFlag = 1
DEBUG : awplayer <__LayerControl:928>: lc->mNumHoldByLayer = 3
DEBUG : awplayer <__LayerSetDisplayPixelFormat:514>: Layer set expected pixel format, format = 5
DEBUG : awplayer <__LayerSetDisplayBufferSize:466>: __LayerSetDisplayBufferSize:width = 1088,height = 1920
DEBUG : awplayer <__LayerSetDisplayBufferCount:807>: LayerSetBufferCount: count = 11
DEBUG : awplayer <__LayerGetBufferNumHoldByGpu:822>: num hold by gpu is 3
DEBUG : awplayer <SetGpuBufferToDecoder:1509>: SetGpuBufferToDecoder:nNumHoldByLayer = 3,p->nGpuBufferNum = 11
DEBUG : awplayer <setLayerBuffer:131>: setLayerBuffer:Fmt(5),(1088 1920, 0 x 0)
DEBUG : awplayer <setLayerBuffer:134>: Disp(1088x1920)buf_cnt(11),ProFlag(0),SoftDecFlag(0)
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[0]:0x7f66f8f000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[1]:0x7f66c92000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[2]:0x7f66995000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[3]:0x7f66698000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[4]:0x7f6639b000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[5]:0x7f6609e000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[6]:0x7f65da1000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[7]:0x7f65aa4000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[8]:0x7f657a7000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[9]:0x7f654aa000
DEBUG : awplayer <setLayerBuffer:249>: SunxiMemPalloc buf[10]:0x7f651ad000
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
DEBUG : awplayer <__LayerDequeueBuffer:639>: numNotHoldByLayer = 8,lc->nGpuBufferCount = 11
ERROR : awplayer <__LayerQueueBuffer:780>: *** picNode is full when queue buffer
ERROR : awplayer <__LayerQueueBuffer:780>: *** picNode is full when queue buffer
DEBUG : awplayer <callbackProcess:3494>: *************decoded nWidth = 1080,nHeight = 1920********
DEBUG : tplayer <CallbackFromXPlayer:96>: video decoded width = 1080,height = 1920
*****tplayer:video decoded width = 1080,height = 1920
*****tplayerdemo:video decoded width = 1080,height = 1920real set to display rect:w = 1080,h = 1920
warning: unknown callback from Tinaplayer.
INFO : awplayer <callbackProcess:3510>: xxxxxxxxxx video size : width = 1080, height = 1920
DEBUG : tplayer <CallbackFromXPlayer:85>: video width = 1080,height = 1920
*****tplayer:video width = 1080,height = 1920
warning: unknown callback from Tinaplayer.
DEBUG : awplayer <CallbackProcess:3028>: first video pts = 16683
DEBUG : audioRender <startSoundDevice:708>: start sound device.
DEBUG : tsoundcontrol <TSoundDeviceStart:212>: TinaSoundDeviceStart(): sc->sound_status = 2
DEBUG : tsoundcontrol <setSoundDeviceParams:62>: setSoundDeviceParams()
DEBUG : tsoundcontrol <setSoundDeviceParams:117>: alsa-init: chunksize set to 1024
DEBUG : tsoundcontrol <setSoundDeviceParams:126>: alsa-init: fragcount=8
ERROR : awplayer <__LayerQueueBuffer:780>: *** picNode is full when queue buffer
DEBUG : awplayer <QueueBufferToShow:1360>: video pts(0.017)
DEBUG : tsoundcontrol <setSoundDeviceParams:136>: setSoundDeviceParams():sc->alsa_can_pause = 1
WARNING: audioRender <checkSampleRate:647>: sample rate change from 48000 to 48000.
WARNING: audioRender <checkSampleRate:649>: channel num change from 2 to 2.
WARNING: audioRender <checkSampleRate:651>: bitPerSample num change from 16 to 16.
WARNING: audioRender <checkSampleRate:653>: if need direct out put flag change from 0 to 1.
WARNING: audioRender <checkSampleRate:655>: data type change from 1 to 1.
DEBUG : tsoundcontrol <TSoundDeviceStop:259>: TinaSoundDeviceStop():sc->sound_status = 0
DEBUG : tsoundcontrol <TSoundDeviceSetFormat:193>: TinaSoundDeviceSetFormat(),sc->sound_status == 2
DEBUG : tsoundcontrol <TSoundDeviceSetFormat:195>: TinaSoundDeviceSetFormat()
DEBUG : tsoundcontrol <TSoundDeviceSetFormat:201>: TinaSoundDeviceSetFormat()>>>sample_rate:48000,channel_num:2,sc->bytes_per_sample:4
WARNING: audioRender <checkSampleRate:674>: start sound devide again because samplaRate or channelNum change
DEBUG : tsoundcontrol <TSoundDeviceStart:212>: TinaSoundDeviceStart(): sc->sound_status = 2
DEBUG : tsoundcontrol <setSoundDeviceParams:62>: setSoundDeviceParams()
DEBUG : tsoundcontrol <setSoundDeviceParams:117>: alsa-init: chunksize set to 1024
DEBUG : tsoundcontrol <setSoundDeviceParams:126>: alsa-init: fragcount=8
DEBUG : tsoundcontrol <setSoundDeviceParams:136>: setSoundDeviceParams():sc->alsa_can_pause = 1
error : fbm.c <FbmReturnPicture:976>:invalid frame status, a picture being returned, but bUsedByRender=0, bInValidPictureQueue=0, bAlreadyDisplayed=0.
error : fbm.c <FbmReturnPicture:977>:**picture[0x7f680082a8],id[8]
warning: cedarc <ReturnPicture:1828>:FbmReturnPicture return fail, it means the picture being returned it not one of this FBM.
DEBUG : awplayer <QueueBufferToShow:1360>: video pts(1.001)
DEBUG : awplayer <QueueBufferToShow:1360>: video pts(2.002)
DEBUG : awplayer <QueueBufferToShow:1360>: video pts(3.003)
DEBUG : awplayer <QueueBufferToShow:1360>: video pts(4.004)
tplayerdemo# ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
sERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
DEBUG : awplayer <QueueBufferToShow:1360>: video pts(5.189)
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
eERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
eERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
tERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
ERROR : awplayer <ProcessVideoSync:1305>: need to drop this frame
然后卡住了。
分析:
首先,make menuconfig 检查一下 System init 的值是:procd-init
那么 是用 udev 实现热拔插的
脚本位置:/etc/hotplug.d/block/10-mount
mount_ntfs() {
case "${DEVNAME}" in
sda*)
mkdir -p /mnt/exUDISK
/usr/bin/ntfs-3g /dev/${DEVNAME} /mnt/exUDISK -o rw,noatime,nodiratime,nosuid,nodev
exit
;;
mmcblk*)
mkdir -p /mnt/SDCARD
/usr/bin/ntfs-3g /dev/${DEVNAME} /mnt/SDCARD -o rw,noatime,nodiratime,nosuid,nodev
exit
;;
*)
;;
esac
}
/sbin/block hotplug || {
if [ -n "${DEVNAME}" ] && [ "${ACTION}" = "add" ]; then
[ -f "/etc/config/fstab" ] && {
grep "option.*device.*${DEVNAME}" /etc/config/fstab &>/dev/null && {
if [ -x "/usr/bin/ntfs-3g" -a -x "/usr/bin/ntfs-3g.probe" ]; then
/usr/bin/ntfs-3g.probe --readwrite /dev/${DEVNAME} &>/dev/null
case $? in
0)
mount_ntfs
;;
12)
echo "${DEVNAME} doesn't have a NTFS filesystem"
;;
16)
echo "The volume is already exclusively opened and in use by a kernel driver or software."
break;
;;
*)
echo "Something wrong on file system of ${DEVNAME}. Fixing. Please wait for a few seconds"
[ -x "/usr/bin/ntfsfix" ] && /usr/bin/ntfsfix /dev/${DEVNAME}
mount_ntfs
;;
esac
fi
}
}
fi
}
改成这样:
#!/bin/sh
echo "------- $ACTION,$DEVNAME," > /dev/console
if [ "$ACTION" = "add" ]; then
if [ -b "$DEVNAME" ]; then
if [ "$SUBSYSTEM" = "block" ]; then
# 检查文件系统类型
FS_TYPE=$(udevadm info --query=all --name="$DEVNAME" | grep 'ID_FS_TYPE=' | cut -d'=' -f2)
if [ "$FS_TYPE" = "exfat" ]; then
MOUNT_POINT="/mnt/exUDISK/"
mkdir -p "$MOUNT_POINT"
mount -t exfat "$DEVNAME" "$MOUNT_POINT"
fi
fi
fi
elif [ "$ACTION" = "remove" ]; then
MOUNT_POINT="/mnt/exUDISK/"
if [ -d "$MOUNT_POINT" ]; then
umount "$MOUNT_POINT"
# rmdir "$MOUNT_POINT"
fi
fi
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/# cat /etc/hotplug.d/block/10-mount
#!/bin/sh
echo "------- $ACTION,$DEVNAME," > /dev/console
if [ "$ACTION" = "add" ]; then
if [ -b "$DEVNAME" ]; then
if [ "$SUBSYSTEM" = "block" ]; then
# 检查文件系统类型
FS_TYPE=$(udevadm info --query=all --name="$DEVNAME" | grep 'ID_FS_TYPE=' | cut -d'=' -f2)
if [ "$FS_TYPE" = "exfat" ]; then
MOUNT_POINT="/mnt/exUDISK/"
mkdir -p "$MOUNT_POINT"
mount -t exfat "$DEVNAME" "$MOUNT_POINT"
fi
fi
fi
elif [ "$ACTION" = "remove" ]; then
MOUNT_POINT="/mnt/exUDISK/"
if [ -d "$MOUNT_POINT" ]; then
umount "$MOUNT_POINT"
# rmdir "$MOUNT_POINT"
fi
fi
放在SDK这个位置:
target/allwinner/a133-a11/base-files/etc/hotplug.d/block/10-mount
class GLWidget : public QOpenGLWidget, protected QOpenGLFunctions_ES2
{
Q_OBJECT
public:
explicit GLWidget(QWidget *parent = nullptr);
~GLWidget();
protected:
void initializeGL() override;
void resizeGL(int w, int h) override;
void paintGL() override;
private:
bool m_initialized;
GLuint VBO, VAO;
};
glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO);
testgles2.c testdraw2.c 编译出来的:
/opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/host/bin/aarch64-linux-gcc -o /mnt/hgfs/D/testgles2 /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/test/testgles2.c -I/opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/include -lSDL2 /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/src/test/SDL_test_common.c /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/src/test/SDL_test_memory.c /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/src/test/SDL_test_crc32.c /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/src/test/SDL_test_font.c
/opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/host/bin/aarch64-linux-gcc -o /mnt/hgfs/D/testdraw2 /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/test/testdraw2.c -I/opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/include -lSDL2 /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/src/test/SDL_test_common.c /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/src/test/SDL_test_memory.c /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/src/test/SDL_test_crc32.c /opt/A133/buildroot/buildroot-20240501-Qt-sunxi/output/build/sdl2-2.30.3/src/test/SDL_test_font.c
testgles2 运行失败:
# chmod +x /usr/bin/testgles2 && /usr/bin/testgles2
commandline read: test1
(*) Direct/Thread: Started 'SigHandler' (1204) [CRITICAL - OTHER/0] <8388608>...
~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.7.7 |~~~~~~~~~~~~~~~~~~~~~~~~~~
(c) 2012-2015 DirectFB integrated media GmbH
(c) 2001-2015 The world wide DirectFB Open Source Community
(c) 2000-2004 Convergence (integrated media) GmbH
----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2024-07-31 13:00)
(*) Direct/Memcpy: Using Generic 64bit memcpy()
(*) Direct/Thread: Started 'Fusion Dispatch' (1205) [MESSAGING - OTHER/0] <8388608>...
(*) Direct/Thread: Started 'VT Switcher' (1206) [CRITICAL - OTHER/0] <8388608>...
(*) Direct/Thread: Started 'VT Flusher' (1207) [DEFAULT - OTHER/0] <8388608>...
(*) DirectFB/FBDev: Found '' (ID 0) with frame buffer at 0xff800000, 8100k (MMIO 0x00000000, 0k)
(*) Direct/Thread: Started 'Linux Input' (1208) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: sunxi-keyboard (1) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Linux Input' (1209) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: sunxi-gpadc0 (2) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Linux Input' (1210) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: sun50iw10-codec sunxi Audio Jac (3) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Hotplug with Linux Input' (1211) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: Hot-plug detection enabled with Linux Input Driver
(*) Direct/Thread: Started 'Keyboard Input' (1212) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(*) DirectFB/Graphics: Generic Software Rasterizer 0.7 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(*) Direct/Thread: Started 'Genefx' (1213) [DEFAULT - OTHER/0] <8388608>...
(*) FBDev/Mode: Setting 720x1440 RGB32
(*) FBDev/Mode: Switched to 720x1440 (virtual 720x1440) at 32 bit (RGB32), pitch 2880
(*) FBDev/Mode: Setting 720x1440 RGB32
(*) FBDev/Mode: Switched to 720x1440 (virtual 720x1440) at 32 bit (RGB32), pitch 2880
INFO: Couldn't create window: OpenGL support is either not configured in SDL or not available in current SDL video driver (directfb) or platform
(*) FBDev/Mode: Setting 720x1440 RGB32
(*) FBDev/Mode: Switched to 720x1440 (virtual 720x1440) at 32 bit (RGB32), pitch 2880
(!!!) *** UNIMPLEMENTED [fusion_dispatch] *** [fusion.c:3937]
#
#
testdraw2 运行正常:
# chmod +x /usr/bin/test2 && /usr/bin/test2
commandline read: test2
(*) Direct/Thread: Started 'SigHandler' (1217) [CRITICAL - OTHER/0] <8388608>...
~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.7.7 |~~~~~~~~~~~~~~~~~~~~~~~~~~
(c) 2012-2015 DirectFB integrated media GmbH
(c) 2001-2015 The world wide DirectFB Open Source Community
(c) 2000-2004 Convergence (integrated media) GmbH
----------------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2024-07-31 13:00)
(*) Direct/Memcpy: Using Generic 64bit memcpy()
(*) Direct/Thread: Started 'Fusion Dispatch' (1218) [MESSAGING - OTHER/0] <8388608>...
(*) Direct/Thread: Started 'VT Switcher' (1219) [CRITICAL - OTHER/0] <8388608>...
(*) Direct/Thread: Started 'VT Flusher' (1220) [DEFAULT - OTHER/0] <8388608>...
(*) DirectFB/FBDev: Found '' (ID 0) with frame buffer at 0xff800000, 8100k (MMIO 0x00000000, 0k)
(*) Direct/Thread: Started 'Linux Input' (1221) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: sunxi-keyboard (1) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Linux Input' (1222) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: sunxi-gpadc0 (2) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Linux Input' (1223) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: sun50iw10-codec sunxi Audio Jac (3) 0.1 (directfb.org)
(*) Direct/Thread: Started 'Hotplug with Linux Input' (1224) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: Hot-plug detection enabled with Linux Input Driver
(*) Direct/Thread: Started 'Keyboard Input' (1225) [INPUT - OTHER/0] <8388608>...
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(*) DirectFB/Graphics: Generic Software Rasterizer 0.7 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(*) Direct/Thread: Started 'Genefx' (1226) [DEFAULT - OTHER/0] <8388608>...
(*) FBDev/Mode: Setting 720x1440 RGB32
(*) FBDev/Mode: Switched to 720x1440 (virtual 720x1440) at 32 bit (RGB32), pitch 2880
(*) FBDev/Mode: Setting 720x1440 RGB32
(*) FBDev/Mode: Switched to 720x1440 (virtual 720x1440) at 32 bit (RGB32), pitch 2880
(!!!) *** UNIMPLEMENTED [fusion_get_fusionee_pid] *** [fusion.c:4147]
(*) FBDev/Mode: Setting 720x1440 RGB32
(*) FBDev/Mode: Switched to 720x1440 (virtual 720x1440) at 32 bit (RGB32), pitch 2880
INFO: 19.09 frames per second
INFO: 18.60 frames per second
INFO: 19.14 frames per second
https://blog.csdn.net/Fox_Alex/article/details/80163942
#include "widget.h"
Widget::Widget(QWidget *parent)
: QGLWidget(parent)
{
}
Widget::~Widget()
{
}
void Widget::initializeGL()
{
//设置widget的坐标和尺寸
setGeometry(300, 150, 500, 500);
//设置清除时颜色
glClearColor(0.0, 0.0, 0.0, 0);
}
void Widget::resizeGL(int w, int h)
{
//视口变换
glViewport(0,0,(GLsizei)w,(GLsizei)h);
//投影变换
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(40.0,(GLdouble)w/(GLdouble)h,0.1,10000.0);
//视图变换
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0,0.0,15.0,0.0,0.0,0.0,0.0,1.0,0.0);
}
void Widget::paintGL()
{
//清屏
glClear(GL_COLOR_BUFFER_BIT);
//绘制七彩三角形
glBegin(GL_TRIANGLES);
glColor3f(1.0,0.0,0.0);
glVertex3f(-2,0,0);
glColor3f(0.0,1.0,0.0);
glVertex3f(2,0,0);
glColor3f(0.0,0.0,1.0);
glVertex3f(0,4,0);
glEnd();
glFlush();
}
当 IoT 设备第一次连接 AWS IoT Core 时,如果它集成的设备证书是由已在 Core 上注册的 CA 证书签发而来,那么相应的设备证书会实现自动注册
注册后的默认状态为“PENDING_ACTIVATION”,意味着虽然设备证书已经成功注册,但是还处于等待激活的状态。同时,这个连接动作默认会发一条消息到 AWS IoT Core 的 MQTT Topic “$aws/events/certificates/registered/” 上,格式如下
{
"certificateId": "<certificateID>",
"caCertificateId": "<caCertificateId>",
"timestamp": "<timestamp>",
"certificateStatus": "PENDING_ACTIVATION",
"awsAccountId": "<awsAccountId>",
"certificateRegistrationTimestamp": "<certificateRegistrationTimestamp>"
}
可以通过iot规则触发lambda函数完成证书激活
当 IoT 设备第一次连接 AWS IoT Core 时,如果它集成的设备证书是由已在 Core 上注册的 CA 证书签发而来,那么相应的设备证书会实现自动注册
注册后的默认状态为“PENDING_ACTIVATION”,意味着虽然设备证书已经成功注册,但是还处于等待激活的状态。同时,这个连接动作默认会发一条消息到 AWS IoT Core 的 MQTT Topic “$aws/events/certificates/registered/” 上,格式如下
{
"certificateId": "<certificateID>",
"caCertificateId": "<caCertificateId>",
"timestamp": "<timestamp>",
"certificateStatus": "PENDING_ACTIVATION",
"awsAccountId": "<awsAccountId>",
"certificateRegistrationTimestamp": "<certificateRegistrationTimestamp>"
}
可以通过iot规则触发lambda函数完成证书激活
这个没有看懂。
源码地址: https://gitee.com/pengrui2009/open-gl-study
ubuntu编译先安装glfw3: sudo apt-get install libglfw3-dev
Makefile 里面的 third-party/library/libglfw3.a 改成 -lglfw 即可。
# QT_LOGGING_RULES=qt.qpa.*=true QT_MESSAGE_LOG_CONTEXT=1 QTWEBENGINE_DISABLE_SANDBOX=1 XDG_RUNTIME_DIR=/tmp/QT_QPA_FONTDIR=/usr/lib/fonts/ QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event4 QT_QPA_EGLFS_INTEGRATION=none QT_QPA_PLATFORM=eglfs /usr/bin/minibrowser
qt.qpa.egldeviceintegration: EGL device integration plugin keys: ("eglfs_emu", "eglfs_mali")
qt.qpa.egldeviceintegration: Using base device integration
qt.qpa.input: evdevkeyboard: Using device discovery
qt.qpa.input: static device discovery for type QFlags<QDeviceDiscovery::QDeviceType>(Device_Keyboard)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/event1"
qt.qpa.input: doing static device discovery for "/dev/input/event2"
qt.qpa.input: doing static device discovery for "/dev/input/event3"
qt.qpa.input: doing static device discovery for "/dev/input/event4"
qt.qpa.input: Found matching devices ()
qt.qpa.input: evdevmouse: Using device discovery
qt.qpa.input: static device discovery for type QFlags<QDeviceDiscovery::QDeviceType>(Device_Mouse|Device_Touchpad)
qt.qpa.input: doing static device discovery for "/dev/input/event0"
qt.qpa.input: doing static device discovery for "/dev/input/event1"
qt.qpa.input: doing static device discovery for "/dev/input/event2"
qt.qpa.input: doing static device discovery for "/dev/input/event3"
qt.qpa.input: doing static device discovery for "/dev/input/event4"
qt.qpa.input: Found new-style touchscreen at "/dev/input/event4"
qt.qpa.input: Found matching devices ("/dev/input/event4")
qt.qpa.input: Adding mouse at "/dev/input/event4"
qt.qpa.input: create mouse handler for "/dev/input/event4" ""
qt.qpa.input: evdevtouch: Adding device at "/dev/input/event4"
qt.qpa.input: evdevtouch: Using device /dev/input/event4
qt.qpa.input: evdevtouch: /dev/input/event4: Protocol type A (multi), filtered=no
qt.qpa.input: evdevtouch: /dev/input/event4: min X: 0 max X: 720
qt.qpa.input: evdevtouch: /dev/input/event4: min Y: 0 max Y: 1440
qt.qpa.input: evdevtouch: /dev/input/event4: min pressure: 0 max pressure: 0
qt.qpa.input: evdevtouch: /dev/input/event4: device name: gt9xxnew_ts
Attribute Qt::AA_ShareOpenGLContexts must be set before QCoreApplication is created.
Sandboxing disabled by user.
[1411:1427:0101/024102.417402:ERROR:gl_ozone_egl_qt.cpp(102)] eglGetProcAddress not found.
qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 0 pending handler(s)
[1411:1427:0101/024103.683841:ERROR:gl_surface_egl_qt.cpp(204)] Trying to create surface with invalid display.
[1438:1438:0100/000000.710275:ERROR:command_buffer_proxy_impl.cc(130)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
Segmentation fault
#
#
编译完了,但是运行 minibrowser出错了:
# QT_MESSAGE_LOG_CONTEXT=1 QTWEBENGINE_DISABLE_SANDBOX=1 XDG_RUNTIME_DIR=/tmp/ Q
T_QPA_FONTDIR=/usr/lib/fonts/ QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/eve
nt4 QT_QPA_EGLFS_INTEGRATION=none QT_QPA_PLATFORM=eglfs /usr/bin/minibrowser
Attribute Qt::AA_ShareOpenGLContexts must be set before QCoreApplication is created.
Sandboxing disabled by user.
[1375:1391:0101/002304.396521:ERROR:gl_ozone_egl_qt.cpp(102)] eglGetProcAddress not found.
[1375:1391:0101/002305.670949:ERROR:gl_surface_egl_qt.cpp(204)] Trying to create surface with invalid display.
[1400:1400:0100/000000.697105:ERROR:command_buffer_proxy_impl.cc(130)] ContextResult::kTransientFailure: Failed to send GpuChannelMsg_CreateCommandBuffer.
Segmentation fault
#
$ make -j1
>>> qt5webengine 5.12.8 Building
PATH="/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin:/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" PATH=/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/host-bin:"/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin:/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" NINJAFLAGS="-j17" GN_PKG_CONFIG_HOST=/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/host-bin/host-pkg-config /usr/bin/make -j17 -C /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8
cd src/ && ( test -e Makefile || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/src.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile
cd buildtools/ && ( test -e Makefile || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/buildtools/buildtools.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile
cd webengine/ui/ && ( test -e Makefile || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/webengine/ui/ui.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile
cd webengine/ui2/ && ( test -e Makefile || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/webengine/ui2/ui2.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile
make[4]: Nothing to be done for 'first'.
make[4]: Nothing to be done for 'first'.
( test -e Makefile.configure_host || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile.configure_host /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/buildtools/configure_host.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile.configure_host
( test -e Makefile.ninja || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile.ninja /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/buildtools/ninja.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile.ninja
make[5]: Nothing to be done for 'first'.
( test -e Makefile.configure_target || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile.configure_target /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/buildtools/configure_target.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile.configure_target
make[5]: Nothing to be done for 'first'.
( test -e Makefile.gn || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile.gn /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/buildtools/gn.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile.gn
make[5]: Nothing to be done for 'first'.
make[5]: Nothing to be done for 'first'.
cd core/ && ( test -e Makefile || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/core/core.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile
( test -e Makefile.core_headers || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile.core_headers /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/core/core_headers.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile.core_headers
make[5]: Nothing to be done for 'first'.
( test -e Makefile.core_generator || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile.core_generator /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/core/core_generator.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile.core_generator
make[5]: Nothing to be done for 'first'.
( test -e Makefile.gn_run || /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/qmake -o Makefile.gn_run /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/core/gn_run.pro WEBENGINE_CONFIG+=use_system_ffmpeg WEBENGINE_CONFIG+=use_proprietary_codecs ) && /usr/bin/make -f Makefile.gn_run
/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/3rdparty/ninja/ninja -j17 -C /opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/core/release QtWebEngineCore
ninja: Entering directory `/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/src/core/release'
[38/3008] CXX obj/content/browser/browser/download_item_utils.o
../../3rdparty/chromium/content/browser/download/download_item_utils.cc:62:6: warning: ‘static void content::{anonymous}::DownloadItemData::Detach(download::DownloadItem*)’ defined but not used [-Wunused-function]
void DownloadItemData::Detach(download::DownloadItem* download_item) {
^~~~~~~~~~~~~~~~
cc1plus: warning: unrecognized command line option ‘-Wno-class-memaccess’
cc1plus: warning: unrecognized command line option ‘-Wno-packed-not-aligned’
cc1plus: warning: unrecognized command line option ‘-Wno-dangling-else’
[58/3008] CXX obj/content/browser/browser/browser_context.o
FAILED: obj/content/browser/browser/browser_context.o
/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/bin/aarch64-linux-gnu-g++ -MMD -MF obj/content/browser/browser/browser_context.o.d -DENABLE_SCREEN_CAPTURE=1 -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DOFFICIAL_BUILD -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DCR_SYSROOT_HASH=37dfa5f22e2c0e847cee34f9848eb31230c33d35 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DCONTENT_IMPLEMENTATION -DWEBP_EXTERN=extern -DUSE_EGL -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_HAS_PNG_LIBRARY -DSK_HAS_WEBP_LIBRARY -DSK_HAS_JPEG_LIBRARY -DSK_SUPPORT_GPU=1 -DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\" -DLEVELDB_PLATFORM_CHROMIUM=1 -DMESA_EGL_NO_X11_HEADERS -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DGTEST_RELATIVE_PATH -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DABSL_ALLOCATOR_NOTHROW=1 -DNO_MAIN_THREAD_WRAPPING -Igen -I../../3rdparty/chromium -Igen -I../../3rdparty/chromium/third_party/libwebp/src -I../../3rdparty/chromium/third_party/khronos -I../../3rdparty/chromium/gpu -I../../3rdparty/chromium/third_party/libyuv/include -Igen -Igen -I../../3rdparty/chromium/third_party/ced/src -I../../3rdparty/chromium/third_party/icu/source/common -I../../3rdparty/chromium/third_party/icu/source/i18n -I../../3rdparty/chromium/third_party/protobuf/src -I../../3rdparty/chromium/skia/config -I../../3rdparty/chromium/skia/ext -I../../3rdparty/chromium/third_party/skia/include/c -I../../3rdparty/chromium/third_party/skia/include/config -I../../3rdparty/chromium/third_party/skia/include/core -I../../3rdparty/chromium/third_party/skia/include/effects -I../../3rdparty/chromium/third_party/skia/include/encode -I../../3rdparty/chromium/third_party/skia/include/gpu -I../../3rdparty/chromium/third_party/skia/include/images -I../../3rdparty/chromium/third_party/skia/include/lazy -I../../3rdparty/chromium/third_party/skia/include/pathops -I../../3rdparty/chromium/third_party/skia/include/pdf -I../../3rdparty/chromium/third_party/skia/include/pipe -I../../3rdparty/chromium/third_party/skia/include/ports -I../../3rdparty/chromium/third_party/skia/include/utils -I../../3rdparty/chromium/third_party/skia/src/gpu -I../../3rdparty/chromium/third_party/skia/src/sksl -I../../3rdparty/chromium/third_party/libwebm/source -I../../3rdparty/chromium/third_party/protobuf/src -Igen/protoc_out -I../../3rdparty/chromium/third_party/leveldatabase -I../../3rdparty/chromium/third_party/leveldatabase/src -I../../3rdparty/chromium/third_party/leveldatabase/src/include -Igen/third_party/metrics_proto -I../../3rdparty/chromium/third_party/boringssl/src/include -I../../3rdparty/chromium/third_party/mesa/src/include -I../../3rdparty/chromium/v8/include -Igen/v8/include -I../../3rdparty/chromium/third_party/webrtc_overrides -I../../3rdparty/chromium/third_party/webrtc -I../../3rdparty/chromium/third_party/angle/src/common/third_party/base -Igen/angle -I../../3rdparty/chromium/third_party/brotli/include -I../../3rdparty/chromium/third_party/re2/src -I../../3rdparty/chromium/third_party/zlib -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -pthread -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-comments -Wno-dangling-else -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -I/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/nss -I/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/nspr -isystem ../../3rdparty/chromium/third_party/abseil-cpp -I/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/include/dbus-1.0 -I/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/dbus-1.0/include -std=gnu++14 -Wno-narrowing -Wno-attributes -Wno-class-memaccess -Wno-subobject-linkage -fno-exceptions -fno-rtti --sysroot=../../../../../host/aarch64-buildroot-linux-gnu/sysroot -fvisibility-inlines-hidden -c ../../3rdparty/chromium/content/browser/browser_context.cc -o obj/content/browser/browser/browser_context.o
aarch64-linux-gnu-g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
[74/3008] CXX obj/content/browser/browser/save_package.o
ninja: build stopped: subcommand failed.
Makefile.gn_run:394: recipe for target 'run_ninja' failed
make[5]: *** [run_ninja] Error 1
Makefile:82: recipe for target 'sub-gn_run-pro-make_first' failed
make[4]: *** [sub-gn_run-pro-make_first] Error 2
Makefile:79: recipe for target 'sub-core-make_first' failed
make[3]: *** [sub-core-make_first] Error 2
Makefile:48: recipe for target 'sub-src-make_first' failed
make[2]: *** [sub-src-make_first] Error 2
package/pkg-generic.mk:266: recipe for target '/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/.stamp_built' failed
make[1]: *** [/opt/A133/buildroot/buildroot-20200212-Qt-sunxi/output/build/qt5webengine-5.12.8/.stamp_built] Error 2
Makefile:84: recipe for target '_all' failed
make: *** [_all] Error 2
qml: THREE.Canvas3DRenderer 74
[ 12.863097] [XRADIO_ERR] sbus_sdio_init failed
[ 12.871683] xradio_core_init failed (-110)!
modprobe: can't load module xr829 (kernel/drivers/net/wireless/xr829/xr829.ko): Connection timed out
/etc/init.d/S95wifi: line 5: wpa_supplicant: not found
# [ 13.116632] PVR_K: 5: ------[ RGX Device: Start ]------
[ 13.122706] PVR_K: 5: ------[ Driver Info ]------
[ 13.128201] PVR_K: 5: UM info: 1.11 @ 5516664 (release) build options: 0x80002010
[ 13.136856] PVR_K: 5: KM info: 1.11 @ 5516664 (release) build options: 0x00002010
[ 13.136867] PVR_K: 5: FW info: 1.11 @ 5516664 (release) build options: 0x80002010
[ 13.136871] PVR_K: 5: Comparison of UM/KM components: MATCHING
[ 13.136876] PVR_K: 5: KM Arch: 64 Bit
[ 13.136881] PVR_K: 5: UM Connected Clients: 64 Bit
[ 13.136886] PVR_K: 5: ------[ RGX Summary ]------
[ 13.136892] PVR_K: 5: RGX BVNC: 22.102.54.38
[ 13.136897] PVR_K: 5: RGX Device State: Active
[ 13.136901] PVR_K: 5: RGX Power State: ON
[ 13.136910] PVR_K: 5: BIF0 - OK
[ 13.136920] PVR_K: 5: RGX FW State: OK (HWRState 0x00000001: HWR OK;)
[ 13.136931] PVR_K: 5: RGX FW Power State: RGXFWIF_POW_ON (APM enabled: 4 ok, 0 denied, 0 non-idle, 1 retry, 0 other, 5 total. Latency: 100 ms)
[ 13.136942] PVR_K: 5: RGX DVFS: 0 frequency changes. Current frequency: 504.001 MHz (sampled at 13009679088)
[ 13.136949] PVR_K: 5: RGX FW OS 0 - State: active; Freelists: Ok
[ 13.136998] PVR_K: 5: Number of HWR: GP(5/5+0), 2D(0/0+0), TA(0/0+0), 3D(0/0+0), CDM(0/0+0), FALSE(0,0,0,0,0)
[ 13.137015] PVR_K: 5: DM 0 (GP)
[ 13.137026] PVR_K: 5: Recovery 1: PID = 0, frame = 0, HWRTData = 0x00000000, EventStatus = 0x00000010
[ 13.137034] PVR_K: 5: CRTimer = 0x000000e46acc, OSTimer = 13.054685639, CyclesElapsed = 3832204288
[ 13.137045] PVR_K: 5: Recovery 2: PID = 0, frame = 0, HWRTData = 0x00000000, EventStatus = 0x00000010
[ 13.137053] PVR_K: 5: CRTimer = 0x000000e46ced, OSTimer = 13.054962463, CyclesElapsed = 3832343808
[ 13.137062] PVR_K: 5: Recovery 3: PID = 0, frame = 0, HWRTData = 0x00000000, EventStatus = 0x00000010
[ 13.137070] PVR_K: 5: CRTimer = 0x000000e46d35, OSTimer = 13.054999035, CyclesElapsed = 3832362240
[ 13.137080] PVR_K: 5: Recovery 4: PID = 0, frame = 0, HWRTData = 0x00000000, EventStatus = 0x00000010
[ 13.137088] PVR_K: 5: CRTimer = 0x000000e46dcb, OSTimer = 13.055075225, CyclesElapsed = 3832400640
[ 13.137097] PVR_K: 5: Recovery 5: PID = 0, frame = 0, HWRTData = 0x00000000, EventStatus = 0x00000010
[ 13.137105] PVR_K: 5: CRTimer = 0x000000e48732, OSTimer = 13.058378323, CyclesElapsed = 3834065408
[ 13.137117] PVR_K: 5: DM 1 (HWRflags 0x00000000: working;)
[ 13.137127] PVR_K: 5: DM 2 (HWRflags 0x00000000: working;)
[ 13.137136] PVR_K: 5: DM 3 (HWRflags 0x00000000: working;)
[ 13.137146] PVR_K: 5: DM 4 (HWRflags 0x00000000: working;)
[ 13.137157] PVR_K: 5: ------[ RGX registers ]------
[ 13.137165] PVR_K: 5: RGX Register Base Address (Linear): 0xffffff800bc00000
[ 13.137170] PVR_K: 5: RGX Register Base Address (Physical): 0x01800000
[ 13.137181] PVR_K: 5: CORE_ID : 0x0000000008470000
[ 13.137187] PVR_K: 5: CORE_REVISION : 0x00360026
[ 13.137192] PVR_K: 5: DESIGNER_REV_FIELD1 : 0x00000000
[ 13.137197] PVR_K: 5: DESIGNER_REV_FIELD2 : 0x00000000
[ 13.137202] PVR_K: 5: CHANGESET_NUMBER : 0x0000000000000000
[ 13.137209] PVR_K: 5: CLK_CTRL : 0x00002800000a0000
[ 13.137214] PVR_K: 5: CLK_STATUS : 0x0000000000600000
[ 13.137220] PVR_K: 5: CLK_CTRL2 : 0x0000000000000000
[ 13.137226] PVR_K: 5: CLK_STATUS2 : 0x0000000000000000
[ 13.137231] PVR_K: 5: EVENT_STATUS : 0x00000010
[ 13.137237] PVR_K: 5: TIMER : 0x0000000000e50ac1
[ 13.137243] PVR_K: 5: BIF_FAULT_BANK0_MMU_STATUS : 0x00000000
[ 13.137248] PVR_K: 5: BIF_FAULT_BANK0_REQ_STATUS : 0x0000000000000000
[ 13.137254] PVR_K: 5: BIF_FAULT_BANK1_MMU_STATUS : 0x00000000
[ 13.137259] PVR_K: 5: BIF_FAULT_BANK1_REQ_STATUS : 0x0000000000000000
[ 13.137264] PVR_K: 5: BIF_MMU_STATUS : 0x00000000
[ 13.137270] PVR_K: 5: BIF_MMU_ENTRY : 0x00000000
[ 13.137275] PVR_K: 5: BIF_MMU_ENTRY_STATUS : 0x0000000000000000
[ 13.137281] PVR_K: 5: BIF_STATUS_MMU : 0x00000000
[ 13.137286] PVR_K: 5: BIF_READS_EXT_STATUS : 0x00000000
[ 13.137292] PVR_K: 5: BIF_READS_INT_STATUS : 0x00000000
[ 13.137297] PVR_K: 5: BIFPM_STATUS_MMU : 0x00000000
[ 13.137302] PVR_K: 5: BIFPM_READS_EXT_STATUS : 0x00000000
[ 13.137307] PVR_K: 5: BIFPM_READS_INT_STATUS : 0x00000000
[ 13.137311] PVR_K: 5: Warning: BRN44871 is present
[ 13.137317] PVR_K: 5: BIF_CAT_BASE_INDEX : 0x0000000000000101
[ 13.137323] PVR_K: 5: BIF_CAT_BASE0 : 0x0000000000000000
[ 13.137329] PVR_K: 5: BIF_CAT_BASE1 : 0x0000000136ec8000
[ 13.137334] PVR_K: 5: BIF_CAT_BASE2 : 0x0000000000000000
[ 13.137340] PVR_K: 5: BIF_CAT_BASE3 : 0x0000000000000000
[ 13.137345] PVR_K: 5: BIF_CAT_BASE4 : 0x0000000000000000
[ 13.137351] PVR_K: 5: BIF_CAT_BASE5 : 0x0000000000000000
[ 13.137357] PVR_K: 5: BIF_CAT_BASE6 : 0x0000000000000000
[ 13.137362] PVR_K: 5: BIF_CAT_BASE7 : 0x0000000000000000
[ 13.137367] PVR_K: 5: BIF_CTRL_INVAL : 0x00000000
[ 13.137372] PVR_K: 5: BIF_CTRL : 0x000000C0
[ 13.137378] PVR_K: 5: BIF_PM_CAT_BASE_VCE0 : 0x0000000137b45001
[ 13.137383] PVR_K: 5: BIF_PM_CAT_BASE_TE0 : 0x0000000137b41001
[ 13.137389] PVR_K: 5: BIF_PM_CAT_BASE_ALIST0 : 0x0000000137b1c001
[ 13.137395] PVR_K: 5: BIF_PM_CAT_BASE_VCE1 : 0x0000000000000000
[ 13.137400] PVR_K: 5: BIF_PM_CAT_BASE_TE1 : 0x0000000000000000
[ 13.137405] PVR_K: 5: BIF_PM_CAT_BASE_ALIST1 : 0x0000000000000000
[ 13.137410] PVR_K: 5: PERF_TA_PHASE : 0x00000001
[ 13.137416] PVR_K: 5: PERF_TA_CYCLE : 0x00026455
[ 13.137421] PVR_K: 5: PERF_3D_PHASE : 0x00000000
[ 13.137426] PVR_K: 5: PERF_3D_CYCLE : 0x00000000
[ 13.137432] PVR_K: 5: PERF_TA_OR_3D_CYCLE : 0x00026455
[ 13.137437] PVR_K: 5: PERF_TA_AND_3D_CYCLE : 0x00000000
[ 13.137443] PVR_K: 5: PERF_COMPUTE_PHASE : 0x00000000
[ 13.137448] PVR_K: 5: PERF_COMPUTE_CYCLE : 0x00000000
[ 13.137453] PVR_K: 5: PM_PARTIAL_RENDER_ENABLE : 0x00000000
[ 13.137458] PVR_K: 5: ISP_RENDER : 0x00000000
[ 13.137463] PVR_K: 5: TLA_STATUS : 0x0000000000000000
[ 13.137469] PVR_K: 5: MCU_FENCE : 0x0000000000000000
[ 13.137474] PVR_K: 5: VDM_CONTEXT_STORE_STATUS : 0x00000000
[ 13.137479] PVR_K: 5: VDM_CONTEXT_STORE_TASK0 : 0x0000000000000000
[ 13.137485] PVR_K: 5: VDM_CONTEXT_STORE_TASK1 : 0x0000000000000000
[ 13.137490] PVR_K: 5: VDM_CONTEXT_STORE_TASK2 : 0x0000000000000000
[ 13.137496] PVR_K: 5: VDM_CONTEXT_RESUME_TASK0 : 0x0000000000000000
[ 13.137501] PVR_K: 5: VDM_CONTEXT_RESUME_TASK1 : 0x0000000000000000
[ 13.137507] PVR_K: 5: VDM_CONTEXT_RESUME_TASK2 : 0x0000000000000000
[ 13.137512] PVR_K: 5: ISP_CTL : 0x00000000
[ 13.137517] PVR_K: 5: ISP_STATUS : 0x00000000
[ 13.137522] PVR_K: 5: MTS_INTCTX : 0x00000000
[ 13.137527] PVR_K: 5: MTS_BGCTX : 0x00000000
[ 13.137532] PVR_K: 5: MTS_BGCTX_COUNTED_SCHEDULE : 0x00000000
[ 13.137537] PVR_K: 5: MTS_SCHEDULE : 0x00000000
[ 13.137542] PVR_K: 5: MTS_GPU_INT_STATUS : 0x00004510
[ 13.137547] PVR_K: 5: CDM_CONTEXT_STORE_STATUS : 0x00000000
[ 13.137552] PVR_K: 5: CDM_CONTEXT_PDS0 : 0x0000000000000000
[ 13.137558] PVR_K: 5: CDM_CONTEXT_PDS1 : 0x0000000000000000
[ 13.137564] PVR_K: 5: CDM_TERMINATE_PDS : 0x0000000000000000
[ 13.137569] PVR_K: 5: CDM_TERMINATE_PDS1 : 0x0000000000000000
[ 13.137575] PVR_K: 5: SIDEKICK_IDLE : 0x0000007E
[ 13.137580] PVR_K: 5: SLC_IDLE : 0x000000FF
[ 13.137585] PVR_K: 5: SLC_STATUS0 : 0x00000000
[ 13.137590] PVR_K: 5: SLC_STATUS1 : 0x0000000000000000
[ 13.137596] PVR_K: 5: SLC_STATUS2 : 0x0000000000000000
[ 13.137601] PVR_K: 5: SLC_CTRL_BYPASS : 0x01000000
[ 13.137607] PVR_K: 5: SLC_CTRL_MISC : 0x0000000000200003
[ 13.137613] PVR_K: 5: MIPS_ADDR_REMAP1_CONFIG1 : 0x1FC00001
[ 13.137618] PVR_K: 5: MIPS_ADDR_REMAP1_CONFIG2 : 0x000000013807400c
[ 13.137624] PVR_K: 5: MIPS_ADDR_REMAP2_CONFIG1 : 0x1FC01001
[ 13.137629] PVR_K: 5: MIPS_ADDR_REMAP2_CONFIG2 : 0x0000000136c2a00c
[ 13.137634] PVR_K: 5: MIPS_ADDR_REMAP3_CONFIG1 : 0x1FC02001
[ 13.137641] PVR_K: 5: MIPS_ADDR_REMAP3_CONFIG2 : 0x0000000138a8000c
[ 13.137646] PVR_K: 5: MIPS_ADDR_REMAP4_CONFIG1 : 0x1FC00000
[ 13.137651] PVR_K: 5: MIPS_ADDR_REMAP4_CONFIG2 : 0x000000000000000c
[ 13.137656] PVR_K: 5: MIPS_ADDR_REMAP5_CONFIG1 : 0x00000001
[ 13.137662] PVR_K: 5: MIPS_ADDR_REMAP5_CONFIG2 : 0x000000013807400c
[ 13.137668] PVR_K: 5: MIPS_WRAPPER_CONFIG : 0x000000000001cf40
[ 13.137673] PVR_K: 5: MIPS_EXCEPTION_STATUS : 0x00000020
[ 13.137843] PVR_K: 5: ---- [ MIPS internal state ] ----
[ 13.137848] PVR_K: 5: PC : 0xC0015F02
[ 13.137854] PVR_K: 5: STATUS_REGISTER : 0x00481C05
[ 13.137862] PVR_K: 5: CAUSE_REGISTER : 0x00800008
[ 13.137868] PVR_K: 5: BAD_REGISTER : 0xC0015EFE
[ 13.137873] PVR_K: 5: EPC : 0xC0015EFE
[ 13.137878] PVR_K: 5: SP : 0xCF600FE0
[ 13.137883] PVR_K: 5: BAD_INSTRUCTION : 0x00000000
[ 13.137889] PVR_K: 5: TLB :
[ 13.137899] PVR_K: 5: 0) VA 0xCF400000 ( 64k) -> PA0 0x01800000 DV , PA1 0x00000000 C
[ 13.137909] PVR_K: 5: 1) VA 0xCF000000 ( 16k) -> PA0 0x136c00000 DVGC, PA1 0x136c04000 DVGC
[ 13.137917] PVR_K: 5: 2) VA 0xCF600000 ( 4k) -> PA0 0x136c2b000 DV C, PA1 0x00000000 C
[ 13.137925] PVR_K: 5: 3) VA 0xC0032000 ( 4k) -> PA0 0x136c27000 DVGC, PA1 0x136c28000 DVGC
[ 13.137934] PVR_K: 5: 4) VA 0xC0028000 ( 4k) -> PA0 0x136cfd000 DVG , PA1 0x136eba000 VG
[ 13.137942] PVR_K: 5: 5) VA 0xC000A000 ( 4k) -> PA0 0x136c7c000 DVGC, PA1 0x138a19000 DVGC
[ 13.137950] PVR_K: 5: 6) VA 0xC000C000 ( 4k) -> PA0 0x138ad3000 DVGC, PA1 0x13a08f000 DVGC
[ 13.137958] PVR_K: 5: 7) VA 0xC001E000 ( 4k) -> PA0 0x138097000 DVG , PA1 0x13803b000 DVG
[ 13.137967] PVR_K: 5: 8) VA 0xC1FF0000 ( 4k) -> PA0 0x136d15000 DV C, PA1 0x00000000 C
[ 13.137975] PVR_K: 5: 9) VA 0xC0010000 ( 4k) -> PA0 0x138041000 DVGC, PA1 0x138042000 DVGC
[ 13.137983] PVR_K: 5: 10) VA 0xC0012000 ( 4k) -> PA0 0x13a09a000 DVGC, PA1 0x13803e000 DVGC
[ 13.137991] PVR_K: 5: 11) VA 0x00FF0000 ( 4k) -> PA0 0x136c26000 DVG , PA1 0x136c26000 DVG
[ 13.137999] PVR_K: 5: 12) VA 0xC0014000 ( 4k) -> PA0 0x138040000 DVGC, PA1 0x13803f000 DVGC
[ 13.138008] PVR_K: 5: 13) VA 0xC0018000 ( 4k) -> PA0 0x136d16000 DVG , PA1 0x138038000 DVG
[ 13.138016] PVR_K: 5: 14) VA 0xC0006000 ( 4k) -> PA0 0x13a089000 DVGC, PA1 0x138ab8000 DVGC
[ 13.138024] PVR_K: 5: 15) VA 0xC0042000 ( 4k) -> PA0 0x1375a2000 DVGC, PA1 0x1375a3000 DVGC
[ 13.138036] PVR_K: 5: --------------------------------
[ 13.138043] PVR_K: 5: RGX Kernel CCB WO:0xF RO:0xF
[ 13.138049] PVR_K: 5: RGX Firmware CCB WO:0x1 RO:0x0
[ 13.138057] PVR_K: 5: RGX Checkpoint CCB WO:0x6C RO:0x6B (Check State: FW=0X0, HOST=0X0)
[ 13.138062] PVR_K: 5: RGX Kernel CCB commands executed = 143
[ 13.138067] PVR_K: 5: RGX SLR: Forced UFO updates requested = 0
[ 13.138073] PVR_K: 5: Thread0: FW IRQ count = 125
[ 13.138078] PVR_K: 5: Last sampled IRQ count in LISR = 125
[ 13.138090] PVR_K: 5: FW OS config flags = 0x1000A7 (Ctx switch: TA; 3D; CDM; VDM CS INDEX mode; Medium CSW profile; Power Rascal/Dust; HWR EN;)
[ 13.138095] PVR_K: 5: Debug log type: none
[ 13.138101] PVR_K: 5: RGX FW thread 0: Trace buffer not yet allocated
[ 13.138106] PVR_K: 5: ------[ Full CCB Status ]------
[ 13.138116] PVR_K: 5: FWCtx 0xC002D0C0 (TQ_3D-P994-T994-cellphone)
[ 13.138120] PVR_K: 5: `--<Empty>
[ 13.138127] PVR_K: 5: FWCtx 0xC002D500 (TQ_3D-P994-T1094-QSGRenderThr)
[ 13.138131] PVR_K: 5: `--<Empty>
[ 13.138138] PVR_K: 5: FWCtx 0xC002D180 (TA-P994-T994-cellphone)
[ 13.138142] PVR_K: 5: `--<Empty>
[ 13.138148] PVR_K: 5: FWCtx 0xC002D220 (3D-P994-T994-cellphone)
[ 13.138156] PVR_K: 5: |--Waiting FENCE_PR @ 2000 Int=100 Ext=100
[ 13.138164] PVR_K: 5: | `--Addr:0xc0030058 Val=0x00000003
[ 13.138172] PVR_K: 5: |--Waiting 3D @ 2048 Int=100 Ext=100
[ 13.138179] PVR_K: 5: `--Waiting UPDATE @ 2416 Int=100 Ext=100
[ 13.138185] PVR_K: 5: |--Addr:0xc0030058 Val=0x00000004
[ 13.138191] PVR_K: 5: |--Addr:0xc005305c Val=0x000000bc
[ 13.138197] PVR_K: 5: |--Addr:0xc0053060 Val=0x00000020
[ 13.138204] PVR_K: 5: |--Addr:0xc0053068 Val=0x00000140
[ 13.138210] PVR_K: 5: |--Addr:0xc005306c Val=0x0000002c
[ 13.138216] PVR_K: 5: `--Addr:0xc0059079 Val=0x00000519
[ 13.138224] PVR_K: 5: FWCtx 0xC002DCC0 (TA-P994-T1094-QSGRenderThread)
[ 13.138228] PVR_K: 5: `--<Empty>
[ 13.138234] PVR_K: 5: FWCtx 0xC002DD60 (3D-P994-T1094-QSGRenderThread)
[ 13.138238] PVR_K: 5: `--<Empty>
[ 13.138245] PVR_K: 5: FWCtx 0xC002D5C0 (TA-P994-T994-cellphone)
[ 13.138249] PVR_K: 5: `--<Empty>
[ 13.138255] PVR_K: 5: FWCtx 0xC002D660 (3D-P994-T994-cellphone)
[ 13.138259] PVR_K: 5: `--<Empty>
[ 13.138278] PVR_K: 5: ------[ RGX Device: End ]------
[ 13.138417] ------------[ cut here ]------------
[ 13.138961] WARNING: CPU: 1 PID: 5 at /opt/A133/tina4/lichee/linux-4.9/modules/gpu/img-rgx/linux/rogue_km/binary_sunxi_linux_nullws_release/target_aarch64/kbuild/services/server/devices/rgx/rgxfwutils.c:4426 RGXCheckFirmwareCCB+0x1b4/0x36c [pvrsrvkm]
[ 13.138986] Modules linked in: dc_sunxi(O) pvrsrvkm(O) gt9xxnew_ts
[ 13.138991]
[ 13.139004] CPU: 1 PID: 5 Comm: kworker/u8:0 Tainted: G O 4.9.191 #70
[ 13.139009] Hardware name: sun50iw10 (DT)
[ 13.139511] Workqueue: pvr_misr MISRWrapper [pvrsrvkm]
[ 13.139515] task: ffffffc0fb151b80 task.stack: ffffffc0fb18c000
[ 13.139998] PC is at RGXCheckFirmwareCCB+0x1b4/0x36c [pvrsrvkm]
[ 13.140478] LR is at RGXCheckFirmwareCCB+0x1b4/0x36c [pvrsrvkm]
[ 13.140485] pc : [<ffffff8000748620>] lr : [<ffffff8000748620>] pstate: 60000145
[ 13.140489] sp : ffffffc0fb18fd00
[ 13.140503] x29: ffffffc0fb18fd00 x28: 0000000000000000
[ 13.140516] x27: 0000000000000000 x26: 000000000007a11f
[ 13.140530] x25: 00000000d543ff9b x24: 0000000000000000
[ 13.140539] x23: ffffff800078f480 x22: ffffff800c05a080
[ 13.140547] x21: ffffff800c05a040 x20: ffffff800c05a080
[ 13.140554] x19: ffffffc0f8bd3280 x18: 000000000000000a
[ 13.140562] x17: 0000000000006028 x16: ffffff80007a6dfb
[ 13.140569] x15: 0000000000000005 x14: ffffff80007d0b9f
[ 13.140577] x13: 00000000fffffff0 x12: ffffff8008ab2132
[ 13.140584] x11: ffffff800897e000 x10: 000000000000004c
[ 13.140592] x9 : 000000000000028a x8 : ffffffc0fff0593c
[ 13.140599] x7 : 0000000000000000 x6 : 0000000000000004
[ 13.140606] x5 : 00ffffffffffffff x4 : 0000000000000015
[ 13.140613] x3 : ffffff80007ce7a4 x2 : 0000000000000000
[ 13.140621] x1 : ffffffc0fb151b80 x0 : 0000000000000001
[ 13.140625]
[ 13.140625] SP: 0xffffffc0fb18fc80:
[ 13.140647] fc80 0c05a080 ffffff80 0078f480 ffffff80 00000000 00000000 d543ff9b 00000000
[ 13.140668] fca0 0007a11f 00000000 00000000 00000000 00000000 00000000 fb18fd00 ffffffc0
[ 13.140689] fcc0 00748620 ffffff80 fb18fd00 ffffffc0 00748620 ffffff80 60000145 00000000
[ 13.140709] fce0 f8bd3280 ffffffc0 0c05a080 ffffff80 ffffffff ffffffff f6ef0f90 ffffffc0
[ 13.140731] fd00 fb18fd60 ffffffc0 00749a90 ffffff80 f6ee8080 ffffffc0 f8bd3280 ffffffc0
[ 13.140752] fd20 fb020080 ffffffc0 00000000 00000000 fb01ed00 ffffffc0 00000000 00000000
[ 13.140772] fd40 fb0200a0 ffffffc0 08966000 ffffff80 00000000 00000000 00000000 00000000
[ 13.140793] fd60 fb18fd80 ffffffc0 00706578 ffffff80 fb13b080 ffffffc0 f81f4088 ffffffc0
[ 13.140797]
[ 13.140797] X1: 0xffffffc0fb151b00:
[ 13.140818] 1b00 cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[ 13.140840] 1b20 cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[ 13.140860] 1b40 cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[ 13.140881] 1b60 cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[ 13.140901] 1b80 00000010 00000000 ffffffff ffffffff 00000000 00000000 00000000 00000000
[ 13.140922] 1ba0 fb18c000 ffffffc0 00000002 04208060 00000000 00000000 00000000 00000000
[ 13.140942] 1bc0 00000001 00000001 00000021 00000000 fffee7be 00000000 f8020080 ffffffc0
[ 13.140963] 1be0 00000001 00000001 00000078 00000078 00000078 00000000 086f8270 ffffff80
[ 13.140969]
[ 13.140969] X8: 0xffffffc0fff058bc:
[ 13.140990] 58bc 20303636 2d443328 34393950 3939542d 65632d34 68706c6c 29656e6f 0f19ecff
[ 13.141011] 58dc 00000003 00170028 66000000 5f525650 20203a4b 20203a35 2d2d6020 706d453c
[ 13.141032] 58fc 003e7974 0f1a378a 00000003 002a003c 66000000 5f525650 20203a4b 2d203a35
[ 13.141053] 591c 2d2d2d2d 52205b2d 44205847 63697665 45203a65 5d20646e 2d2d2d2d 00002d2d
[ 13.141073] 593c 0f1c56d6 00000003 00240034 86000000 2d2d2d2d 2d2d2d2d 2d2d2d2d 7563205b
[ 13.141094] 595c 65682074 5d206572 2d2d2d2d 2d2d2d2d 2d2d2d2d 0f24a3ff 00000003 00ee0100
[ 13.141115] 597c 86000000 4e524157 3a474e49 55504320 2031203a 3a444950 61203520 6f2f2074
[ 13.141136] 599c 412f7470 2f333331 616e6974 696c2f34 65656863 6e696c2f 342d7875 6d2f392e
[ 13.141144]
[ 13.141144] X19: 0xffffffc0f8bd3200:
[ 13.141165] 3200 cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[ 13.141186] 3220 cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[ 13.141207] 3240 cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[ 13.141228] 3260 cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[ 13.141249] 3280 f6ee8080 ffffffc0 0004a070 00000000 2c24ec05 00000002 00000016 00000066
[ 13.141274] 32a0 00000036 00000026 ffffffff ffffffff ffffffff 00000008 ffffffff ffffffff
[ 13.141312] 32c0 ffffffff ffffffff 00000001 00000004 00000001 00000024 ffffffff ffffffff
[ 13.141336] 32e0 00000001 00000001 00000200 00010000 ffffffff 00000028 00000001 00000000
[ 13.141344]
[ 13.141344] X29: 0xffffffc0fb18fc80:
[ 13.141365] fc80 0c05a080 ffffff80 0078f480 ffffff80 00000000 00000000 d543ff9b 00000000
[ 13.141385] fca0 0007a11f 00000000 00000000 00000000 00000000 00000000 fb18fd00 ffffffc0
[ 13.141406] fcc0 00748620 ffffff80 fb18fd00 ffffffc0 00748620 ffffff80 60000145 00000000
[ 13.141426] fce0 f8bd3280 ffffffc0 0c05a080 ffffff80 ffffffff ffffffff f6ef0f90 ffffffc0
[ 13.141447] fd00 fb18fd60 ffffffc0 00749a90 ffffff80 f6ee8080 ffffffc0 f8bd3280 ffffffc0
[ 13.141467] fd20 fb020080 ffffffc0 00000000 00000000 fb01ed00 ffffffc0 00000000 00000000
[ 13.141487] fd40 fb0200a0 ffffffc0 08966000 ffffff80 00000000 00000000 00000000 00000000
[ 13.141508] fd60 fb18fd80 ffffffc0 00706578 ffffff80 fb13b080 ffffffc0 f81f4088 ffffffc0
[ 13.141510]
[ 13.141515] ---[ end trace bf9dd98fbf2e85a1 ]---
[ 13.141519] Call trace:
[ 13.141525] Exception stack(0xffffffc0fb18fb10 to 0xffffffc0fb18fc40)
[ 13.141531] fb00: ffffffc0f8bd3280 0000007fffffffff
[ 13.141537] fb20: ffffffc0fb18fd00 ffffff8000748620 0000000060000145 000000000000003d
[ 13.141543] fb40: 00000000d543ff9b 000000000007a11f ffffffc0fb18fc20 ffffffc0fb18fc20
[ 13.141548] fb60: ffffffc0fb18fbe0 00000000ffffffc8 ffffffc0fb18fc20 ffffff800070dd3c
[ 13.141554] fb80: ffffffc0fb18fc20 ffffffc0fb18fc20 ffffffc0fb18fbe0 00000000ffffffc8
[ 13.141560] fba0: ffffffc0fb18fc20 ffffffc0fb18fc20 ffffffc0fb18fbd0 ffffff80086e22ec
[ 13.141566] fbc0: ffffff80007ce7a0 ffffffc0fb18fc00 0000000000000001 ffffffc0fb151b80
[ 13.141572] fbe0: 0000000000000000 ffffff80007ce7a4 0000000000000015 00ffffffffffffff
[ 13.141578] fc00: 0000000000000004 0000000000000000 ffffffc0fff0593c 000000000000028a
[ 13.141584] fc20: 000000000000004c ffffff800897e000 ffffff8008ab2132 00000000fffffff0
[ 13.142079] [<ffffff8000748620>] RGXCheckFirmwareCCB+0x1b4/0x36c [pvrsrvkm]
[ 13.142570] [<ffffff8000749a90>] RGX_MISRHandler_Main+0x30/0x54 [pvrsrvkm]
[ 13.143076] [<ffffff8000706578>] MISRWrapper+0x18/0x20 [pvrsrvkm]
[ 13.143094] [<ffffff80080ac388>] process_one_work+0x1b8/0x29c
[ 13.143103] [<ffffff80080ad0e4>] worker_thread+0x290/0x3a4
[ 13.143113] [<ffffff80080b1840>] kthread+0xd4/0xe4
[ 13.143123] [<ffffff8008083180>] ret_from_fork+0x10/0x50
[ 25.881806] PVR_K:(Error): 986: CheckForStalledCCB (force): CCCB has not progressed (ROFF=2000 DOFF=2000 WOFF=3064) for "3D-P994-T994-cellphone"
[ 25.896628] PVR_K: 986: Possible stalled client RGX contexts detected: 3D
[ 25.904486] PVR_K: 986: Trying to identify stalled context...(force) [0]
[ 25.912153] PVR_K: 986: Fence found on context 0xc002d220 '3D-P994-T994-cellphone' @ 2000 has 1 UFOs
[ 25.922601] PVR_K: 986: 1/1 FWAddr 0xc0030058 requires 0x3
[ 25.929086] PVR_K: 986: SLR disabled for FWCtx 0xC002D220
[ 36.121815] PVR_K:(Error): 986: CheckForStalledCCB (force): CCCB has not progressed (ROFF=2000 DOFF=2000 WOFF=3064) for "3D-P994-T994-cellphone"
跟踪了一下,貌似 so 文件缺 SONAME 节点引起:
$ /opt/A133/buildroot/buildroot-20200212-Qt/output/host/bin/aarch64-linux-gnu-readelf -d ./output/build/sunxi-mali-mainline-d691cb93884ca8ac67860502117bbec283dc19aa/r6p2/arm64/fbdev/libGLESv2.so |grep SONAME
$
$
$ /opt/A133/buildroot/buildroot-20200212-Qt/output/host/bin/aarch64-linux-gnu-readelf -d /opt/A133/tina4/package/libs/libgpu/ge8300/fbdev/glibc/lib64/libGLESv2.so |grep SONAME
0x000000000000000e (SONAME) Library soname: [libGLESv2.so.2]
$
$
这里有人提出同样的问题:
The output of readelf shows this issue:
$ arm-linux-gnueabihf-readelf -a qtbase/lib/libQt5Gui.so | grep "Shared library"
readelf: Warning: [ 9]: Info field (0) should index a relocatable section.
0x00000001 (NEEDED) Shared library: [libQt5Core.so.5]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [/home/developer/proyectos/Odroid/RootFS/usr/lib/arm-linux-gnueabihf/libGLESv2.so]
0x00000001 (NEEDED) Shared library: [/home/developer/proyectos/Odroid/RootFS/usr/lib/arm-linux-gnueabihf/libEGL.so]
0x00000001 (NEEDED) Shared library: [libpng16.so.16]
0x00000001 (NEEDED) Shared library: [libz.so.1]
0x00000001 (NEEDED) Shared library: [libstdc++.so.6]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
I've seen something related to this issue in QTBUG-7290
https://forum.qt.io/topic/101590/absolute-paths-to-egl-library-in-libqt5gui-so-since-qt-5-12-1
不知道是不是buildroot的eglfs的bug,生成的elf都是依赖绝对路径
找到patchelf 命令可以直接修改elf文件:
patchelf --replace-needed /opt/A133/buildroot/buildroot-20200212-Qt/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libGLESv2.so libGLESv2.so qopenglwindow/qopenglwindow
patchelf --replace-needed /opt/A133/buildroot/buildroot-20200212-Qt/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libGLESv1_CM.so libGLES_CM.so qopenglwindow/qopenglwindow
看结果:
$ /opt/A133/buildroot/buildroot-20200212-Qt/output/host/bin/aarch64-linux-gnu-objdump -x /opt/A133/buildroot/buildroot-20200212-Qt/output/build/qt5base-5.12.9/examples/opengl/qopenglwindow/qopenglwindow |grep NEED
NEEDED libatomic.so.1
NEEDED libQt5Gui.so.5
NEEDED libQt5Core.so.5
NEEDED libGLESv2.so
NEEDED libGLES_CM.so
NEEDED libpthread.so.0
NEEDED librt.so.1
NEEDED libdl.so.2
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
VERNEED 0x0000000000403540
VERNEEDNUM 0x0000000000000004
参考: https://forum.qt.io/topic/101590/absolute-paths-to-egl-library-in-libqt5gui-so-since-qt-5-12-1/13
$ /opt/A133/buildroot/buildroot-20200212-Qt/output/host/bin/aarch64-linux-gnu-objdump -x qopenglwindow/qopenglwindow |grep NEED
NEEDED libatomic.so.1
NEEDED libQt5Gui.so.5
NEEDED libQt5Core.so.5
NEEDED /opt/A133/buildroot/buildroot-20200212-Qt/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libGLESv2.so
NEEDED /opt/A133/buildroot/buildroot-20200212-Qt/output/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libGLESv1_CM.so
NEEDED libpthread.so.0
NEEDED librt.so.1
NEEDED libdl.so.2
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
VERNEED 0x0000000000403540
VERNEEDNUM 0x0000000000000004
改dts搞定了,什么情况一脸懵逼???
由:
spi0_pins_a: spi0@0 {
pins = "PC2", "PC4", "PC5","PC7", "PC6"; /*clk mosi miso hold wp*/
function = "spi0";
drive-strength = <10>;
};
spi0_pins_b: spi0@1 {
pins = "PC3";
function = "spi0";
drive-strength = <10>;
bias-pull-up; /* only CS should be pulled up */
};
spi0_pins_c: spi0@2 {
pins = "PC2", "PC3", "PC4", "PC5","PC6", "PC7";
function = "gpio_in";
drive-strength = <10>;
};
改成:
spi0_pins_a: spi0@0 {
pins = "PC2", "PC4", "PC5"; /* clk, mosi, miso */
function = "spi0";
muxsel = <2>;
drive-strength = <20>;
};
spi0_pins_b: spi0@1 {
pins = "PC3", "PC7", "PC6";
function = "spi0";
muxsel = <2>;
drive-strength = <20>;
bias-pull-up; /* cs, hold, wp should be pulled up */
};
spi0_pins_c: spi0@2 {
pins = "PC2", "PC3", "PC4", "PC5","PC6", "PC7";
function = "gpio_in";
muxsel = <0>;
drive-strength = <10>;
};
正常的应该是这样:
[ 3.707830] ubi0: scanning is finished
[ 3.719826] ubi0: attached mtd3 (name "sys", size 251 MiB)
[ 3.725984] ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[ 3.733740] ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[ 3.741360] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[ 3.749179] ubi0: good PEBs: 1004, bad PEBs: 0, corrupted PEBs: 0
[ 3.756007] ubi0: user volume: 8, internal volumes: 1, max. volumes count: 128
[ 3.764118] ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[ 3.773487] ubi0: available PEBs: 0, total reserved PEBs: 1004, PEBs reserved for bad PEB handling: 40
[ 3.783947] ubi0: background thread "ubi_bgt0d" started, PID 1055
[ 3.784464] otg manager soc@3000000:usbc0@0: soc@3000000:usbc0@0 supply usbc not found, using dummy regulator
[ 3.804843] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 3.806638] clk: Not disabling unused clocks
[ 3.814564] cfg80211: failed to load regulatory.db
[ 3.819392] ALSA device list:
[ 3.828084] #0: audiocodec
[ 3.831310] #1: snddaudio0
[ 3.834541] alloc_fd: slot 0 not NULL!
[ 3.839923] UBIFS (ubi0:5): Mounting in unauthenticated mode
[ 3.890637] UBIFS (ubi0:5): recovery needed
[ 3.974590] UBIFS (ubi0:5): recovery deferred
[ 3.979620] UBIFS (ubi0:5): UBIFS: mounted UBI device 0, volume 5, name "rootfs", R/O mode
[ 3.988896] UBIFS (ubi0:5): LEB size: 258048 bytes (252 KiB), min./max. I/O unit sizes: 4096 bytes/4096 bytes
[ 4.000030] UBIFS (ubi0:5): FS size: 60641280 bytes (57 MiB, 235 LEBs), journal size 8515584 bytes (8 MiB, 33 LEBs)
[ 4.011739] UBIFS (ubi0:5): reserved for root: 0 bytes (0 KiB)
[ 4.018291] UBIFS (ubi0:5): media format: w4/r0 (latest is w5/r0), UUID 24286302-76C0-4928-8BA8-637743520998, small LPT model
[ 4.031322] VFS: Mounted root (ubifs filesystem) readonly on device 0:14.
[ 4.039292] devtmpfs: mounted
[ 4.044367] Freeing unused kernel memory: 1024K
[ 4.049608] Run /init as init process
can't run '/etc/preinit': No such file or directory
[ 4.205558] UBIFS (ubi0:5): completing deferred recovery
[ 4.419783] UBIFS (ubi0:5): background thread "ubifs_bgt0_5" started, PID 1067
[ 4.428059] UBIFS (ubi0:5): deferred recovery completed
usb0 current mode: null
Starting switch usb0 to device mode.
[ 5.766817] sunxi_usb_udc 4100000.udc-controller: 4100000.udc-controller supply udc not found, using dummy regulator
device_chose finished!
Starting adb: [ 5.853665] file system registered
OK
init adb main
Handling main()
[ 5.921333] read descriptors
[ 5.924621] read strings
[ 6.046955] /dev/by-name/UDISK: Can't open blockdev
formating /dev/by-name/UDISK to vfat...
mkfs.fat 4.2 (2021-01-31)
Cannot initialize conversion from codepage 850 to ANSI_X3.4-1968: Invalid argument
Cannot initialize conversion from ANSI_X3.4-1968 to codepage 850: Invalid argument
Using internal CP850 conversion table
mkfs.vfat: unable to discover size of /dev/by-name/UDISK
[ 6.106075] UBIFS (ubi0:7): Mounting in unauthenticated mode
[ 6.112620] UBIFS (ubi0:7): background thread "ubifs_bgt0_7" started, PID 1138
[ 6.164723] UBIFS (ubi0:7): recovery needed
[ 6.170280] android_work: sent uevent USB_STATE=CONNECTED
[ 6.204373] UBIFS (ubi0:7): recovery completed
[ 6.209626] UBIFS (ubi0:7): UBIFS: mounted UBI device 0, volume 7, name "UDISK"
[ 6.217934] UBIFS (ubi0:7): LEB size: 258048 bytes (252 KiB), min./max. I/O unit sizes: 4096 bytes/4096 bytes
[ 6.229196] UBIFS (ubi0:7): FS size: 101412864 bytes (96 MiB, 393 LEBs), journal size 5160960 bytes (4 MiB, 20 LEBs)
[ 6.241029] configfs-gadget gadget: high-speed config #1: c
[ 6.247416] android_work: sent uevent USB_STATE=CONFIGURED
[ 6.247638] UBIFS (ubi0:7): reserved for root: 4789980 bytes (4677 KiB)
[ 6.261000] UBIFS (ubi0:7): media format: w5/r0 (latest is w5/r0), UUID CAD22824-BF6F-4AC2-8F3A-51050C50BF38, small LPT model
Welcome to Allwinner Tina5.0 Platform
Tina5.0 login: [ 34.406554] pio-18: disabling
[ 34.409886] pio-33: disabling
改了 sys_partition.fex
;---------------------------------------------------------------------------------------------------
; 说明: 脚本中的字符串区分大小写,用户可以修改"="后面的数值,但是不要修改前面的字符串
;---------------------------------------------------------------------------------------------------
;---------------------------------------------------------------------------------------------------
; 固件下载参数配置
;---------------------------------------------------------------------------------------------------
;***************************************************************************************************
; mbr的大小, 以Kbyte为单位
;***************************************************************************************************
[mbr]
size = 252
;***************************************************************************************************
; 分区配置
;
;
; partition 定义范例:
; [partition] ; //表示是一个分区
; name = USERFS2 ; //分区名称
; size = 16384 ; //分区大小 单位: 扇区.分区表示个数最多2^31 * 512 = 2T
; downloadfile = "123.fex" ; //下载文件的路径和名称,可以使用相对路径,相对是指相对于image.cfg文件所在分区。也可以使用绝对路径
; keydata = 1 ; //私有数据分区,重新量产数据将不丢失
; encrypt = 1 ; //采用加密方式烧录,将提供数据加密,但损失烧录速度
; user_type = ? ; //私有用法
; verify = 1 ; //要求量产完成后校验是否正确
;
; 注:1、name唯一, 不允许同名
; 2、name最大12个字符
; 3、size = 0, 将创建一个无大小的空分区
; 4、align to logical block size(504 sectors), leb size = 2*(1 nand phy block size - 1 phy page size)
;***************************************************************************************************
[partition_start]
[partition]
name = boot-resource
size = 504
downloadfile = "boot-resource.fex"
user_type = 0x8000
[partition]
name = env
size = 504
downloadfile = "env.fex"
user_type = 0x8000
[partition]
name = env-redund
size = 504
downloadfile = "env.fex"
user_type = 0x8000
[partition]
name = boot
size = 10808
downloadfile = "boot.fex"
user_type = 0x8000
[partition]
name = rootfs
size = 61440
downloadfile = "rootfs.fex"
user_type = 0x8000
;[partition]
; name = dsp0
; size = 2048
; downloadfile = "dsp0.fex"
; user_type = 0x8000
;[partition]
; name = recovery
; size = 16128
; ;downloadfile = "recovery.fex"
; user_type = 0x8000
[partition]
name = private
size = 10240
user_type = 0x8000
[partition]
name = rootfs_data
size = 10240
user_type = 0x8000
[partition]
name = UDISK
name = rootfs_data
size = 10240
user_type = 0x8000
重烧之后:
[ 3.174464] ubi0: scanning is finished
[ 3.183783] ubi0 error: vtbl_check: too large reserved_pebs 770, good PEBs 492
[ 3.191919] ubi0 error: vtbl_check: volume table check failed: record 8, error 9
[ 3.200205] Volume table record 8 dump:
[ 3.204513] reserved_pebs 770
[ 3.208125] alignment 1
[ 3.211553] data_pad 0
[ 3.214970] vol_type 1
[ 3.218387] upd_marker 0
[ 3.221816] name_len 5
[ 3.225233] name UDISK
[ 3.229040] crc 0xc31608a0
[ 3.233600] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd3, error -22
[ 3.241555] UBI error: cannot attach mtd3
[ 3.246052] UBI: block: can't open volume on ubi0_-1, err=-19
[ 3.253085] otg manager soc@3000000:usbc0@0: soc@3000000:usbc0@0 supply usbc not found, using dummy regulator
[ 3.270216] sunxi-vin-core 5809000.vinc: Adding to iommu group 0
[ 3.277895] sunxi-vin-core 5809200.vinc: Adding to iommu group 0
[ 3.286111] sun8iw20-pinctrl pio: pin PE13 already requested by 4500000.eth; cannot claim for pio:141
[ 3.296497] sun8iw20-pinctrl pio: pin-141 (pio:141) status -22
[ 3.303399] [VIN_WARN]get csi isp clk fail
[ 3.307996] [VIN_WARN]get csi isp src clk fail
[ 3.313010] [VIN_WARN]get csi mipi clk fail
[ 3.317700] [VIN_WARN]get csi mipi src clk fail
[ 3.322816] [VIN_WARN]get csi isp mbus clk fail
[ 3.327906] [VIN_WARN]Get isp reset control fail
[ 3.333300] [VIN_ERR]n5 request i2c1 adapter failed!
[ 3.342125] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 3.353398] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 3.360959] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 3.370618] cfg80211: failed to load regulatory.db
[ 3.376088] clk: Not disabling unused clocks
[ 3.381016] ALSA device list:
[ 3.384342] #0: audiocodec
[ 3.387573] alloc_fd: slot 0 not NULL!
[ 3.392183] /dev/root: Can't open blockdev
[ 3.396782] VFS: Cannot open root device "ubiblock0_5" or unknown-block(0,0): error -6
[ 3.405693] Please append a correct "root=" boot option; here are the available partitions:
[ 3.415086] 1f00 1024 mtdblock0
[ 3.415090] (driver?)
[ 3.422424] 1f01 3072 mtdblock1
[ 3.422426] (driver?)
[ 3.429747] 1f02 1024 mtdblock2
[ 3.429749] (driver?)
[ 3.437088] 1f03 125952 mtdblock3
[ 3.437090] (driver?)
[ 3.444422] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 3.453687] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.4.61 #28
[ 3.460414] Hardware name: Generic DT based system
[ 3.465804] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[ 3.474488] [<c010a8bc>] (show_stack) from [<c079f030>] (dump_stack+0x7c/0x98)
[ 3.482587] [<c079f030>] (dump_stack) from [<c0119d2c>] (panic+0x104/0x3dc)
[ 3.490397] [<c0119d2c>] (panic) from [<c0c01278>] (mount_block_root+0x258/0x300)
[ 3.498789] [<c0c01278>] (mount_block_root) from [<c0c014bc>] (prepare_namespace+0x118/0x178)
[ 3.508350] [<c0c014bc>] (prepare_namespace) from [<c07b3714>] (kernel_init+0x8/0x118)
[ 3.517228] [<c07b3714>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[ 3.525710] Exception stack(0xef079fb0 to 0xef079ff8)
[ 3.531369] 9fa0: 00000000 00000000 00000000 00000000
[ 3.540535] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 3.549700] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 3.557118] CPU0: stopping
[ 3.560152] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.4.61 #28
[ 3.566879] Hardware name: Generic DT based system
[ 3.572252] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[ 3.580933] [<c010a8bc>] (show_stack) from [<c079f030>] (dump_stack+0x7c/0x98)
[ 3.589029] [<c079f030>] (dump_stack) from [<c010c6b0>] (handle_IPI+0xc0/0x168)
[ 3.597227] [<c010c6b0>] (handle_IPI) from [<c03aa24c>] (gic_handle_irq+0x70/0x78)
[ 3.605715] [<c03aa24c>] (gic_handle_irq) from [<c01021cc>] (__irq_svc+0x6c/0xa8)
[ 3.614099] Exception stack(0xc0d01f40 to 0xc0d01f88)
[ 3.619761] 1f40: 0000ad64 ef7b9574 00000000 c0115280 00000001 c0d00000 c0d03e28 c0d03e64
[ 3.628928] 1f60: 00000000 efffc3c0 c0c2f0c0 00000000 c0d7f830 c0d01f90 c0107fd8 c0107fdc
[ 3.638091] 1f80: 60000113 ffffffff
[ 3.642003] [<c01021cc>] (__irq_svc) from [<c0107fdc>] (arch_cpu_idle+0x2c/0x38)
[ 3.650296] [<c0107fdc>] (arch_cpu_idle) from [<c013e920>] (do_idle+0xb8/0x120)
[ 3.658491] [<c013e920>] (do_idle) from [<c013ec24>] (cpu_startup_entry+0x18/0x1c)
[ 3.666978] [<c013ec24>] (cpu_startup_entry) from [<c0c00c68>] (start_kernel+0x340/0x3d0)
[ 3.676146] [<c0c00c68>] (start_kernel) from [<00000000>] (0x0)
[ 3.682797] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
T113-S3 SPI NAND的也是这个错误:
[ 2.868258] sunxi-ohci 4200400.ohci1-controller: OHCI Host Controller
[ 2.875530] sunxi-ohci 4200400.ohci1-controller: new USB bus registered, assigned bus number 2
[ 2.885432] sunxi-ohci 4200400.ohci1-controller: irq 62, io mem 0x04200400
[ 2.966078] hub 2-0:1.0: USB hub found
[ 2.970328] hub 2-0:1.0: 1 port detected
[ 2.976801] ubi0: attaching mtd3
[ 3.111226] [SNDCODEC][sunxi_check_hs_detect_status][191]:plugin --> switch:3
[ 3.176601] ubi0: scanning is finished
[ 3.180857] ubi0 error: ubi_read_volume_table: the layout volume was not found
[ 3.189249] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd3, error -22
[ 3.197210] UBI error: cannot attach mtd3
[ 3.201731] UBI: block: can't open volume on ubi0_-1, err=-19
[ 3.208739] otg manager soc@3000000:usbc0@0: soc@3000000:usbc0@0 supply usbc not found, using dummy regulator
[ 3.225921] sunxi-vin-core 5809000.vinc: Adding to iommu group 0
[ 3.233657] sunxi-vin-core 5809200.vinc: Adding to iommu group 0
[ 3.241902] sun8iw20-pinctrl pio: pin PE13 already requested by 4500000.eth; cannot claim for pio:141
[ 3.252311] sun8iw20-pinctrl pio: pin-141 (pio:141) status -22
[ 3.259169] [VIN_WARN]get csi isp clk fail
[ 3.263798] [VIN_WARN]get csi isp src clk fail
[ 3.268800] [VIN_WARN]get csi mipi clk fail
[ 3.273504] [VIN_WARN]get csi mipi src clk fail
[ 3.278604] [VIN_WARN]get csi isp mbus clk fail
[ 3.283711] [VIN_WARN]Get isp reset control fail
[ 3.289105] [VIN_ERR]n5 request i2c1 adapter failed!
[ 3.297818] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 3.309027] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 3.316563] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 3.321306] clk: Not disabling unused clocks
[ 3.326265] cfg80211: failed to load regulatory.db
[ 3.331003] ALSA device list:
[ 3.339720] #0: audiocodec
[ 3.343010] alloc_fd: slot 0 not NULL!
[ 3.347623] /dev/root: Can't open blockdev
[ 3.352269] VFS: Cannot open root device "ubiblock0_5" or unknown-block(0,0): error -6
[ 3.361141] Please append a correct "root=" boot option; here are the available partitions:
[ 3.370526] 1f00 1024 mtdblock0
[ 3.370529] (driver?)
[ 3.377866] 1f01 3072 mtdblock1
[ 3.377868] (driver?)
[ 3.385203] 1f02 1024 mtdblock2
[ 3.385206] (driver?)
[ 3.392545] 1f03 125952 mtdblock3
[ 3.392547] (driver?)
[ 3.399869] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 3.409134] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.4.61 #28
[ 3.415861] Hardware name: Generic DT based system
[ 3.421250] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[ 3.429934] [<c010a8bc>] (show_stack) from [<c079f030>] (dump_stack+0x7c/0x98)
[ 3.438033] [<c079f030>] (dump_stack) from [<c0119d2c>] (panic+0x104/0x3dc)
[ 3.445843] [<c0119d2c>] (panic) from [<c0c01278>] (mount_block_root+0x258/0x300)
[ 3.454235] [<c0c01278>] (mount_block_root) from [<c0c014bc>] (prepare_namespace+0x118/0x178)
[ 3.463795] [<c0c014bc>] (prepare_namespace) from [<c07b3714>] (kernel_init+0x8/0x118)
[ 3.472673] [<c07b3714>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[ 3.481155] Exception stack(0xef079fb0 to 0xef079ff8)
[ 3.486814] 9fa0: 00000000 00000000 00000000 00000000
[ 3.495980] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 3.505145] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 3.512562] CPU0: stopping
[ 3.515595] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.4.61 #28
[ 3.522322] Hardware name: Generic DT based system
[ 3.527695] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[ 3.536376] [<c010a8bc>] (show_stack) from [<c079f030>] (dump_stack+0x7c/0x98)
[ 3.544473] [<c079f030>] (dump_stack) from [<c010c6b0>] (handle_IPI+0xc0/0x168)
[ 3.552671] [<c010c6b0>] (handle_IPI) from [<c03aa24c>] (gic_handle_irq+0x70/0x78)
[ 3.561160] [<c03aa24c>] (gic_handle_irq) from [<c01021cc>] (__irq_svc+0x6c/0xa8)
[ 3.569543] Exception stack(0xc0d01f40 to 0xc0d01f88)
[ 3.575205] 1f40: 000093b0 ef7b9574 00000000 c0115280 00000001 c0d00000 c0d03e28 c0d03e64
[ 3.584372] 1f60: 00000000 efffc3c0 c0c2f0c0 00000000 c0d7f830 c0d01f90 c0107fd8 c0107fdc
[ 3.593535] 1f80: 60000113 ffffffff
[ 3.597447] [<c01021cc>] (__irq_svc) from [<c0107fdc>] (arch_cpu_idle+0x2c/0x38)
[ 3.605740] [<c0107fdc>] (arch_cpu_idle) from [<c013e920>] (do_idle+0xb8/0x120)
[ 3.613935] [<c013e920>] (do_idle) from [<c013ec24>] (cpu_startup_entry+0x18/0x1c)
[ 3.622422] [<c013ec24>] (cpu_startup_entry) from [<c0c00c68>] (start_kernel+0x340/0x3d0)
[ 3.631590] [<c0c00c68>] (start_kernel) from [<00000000>] (0x0)
[ 3.638237] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
QT_QPA_FONTDIR=/usr/share/fonts/ QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event4 QT_QPA_EGLFS_INTEGRATION=none /usr/share/qt5/examples/canvas3d/threejs/cellphone/cellphone
cat /sys/kernel/debug/pvr/status
root@TinaLinux:/# cat /sys/kernel/debug/pvr/status
Driver Status: OK
Firmware Status: OK
HWR Event Count: 0
CRR Event Count: 0
FWF Event Count: 0
APM Event Count: 77
SLR Event Count: 0
GPU Utilisation: 56%
记得把 qt5-plugins-win-Release.4.0.0.0.7z 解压到 bin\4.0.0.0 目录
最终目录结构类似:
D:\qt5_projects\build-TTKMusicPlayer-Desktop_Qt_5_14_2_MinGW_32_bit-Debug\bin\4.0.0.0\TTKqmmp.dll
Qmmp Source Player URL: https://qmmp.ylsoftware.com
Qmmp Source Mirror URL: https://github.com/Greedysky/qmmp
Qmmp Source Modified URL: https://github.com/Greedysky/TTKMusicPlayer/tree/plugins
Qmmp Extra Plugins URL: https://github.com/TTK-qmmp
Qmmp Core Modified Library URL: http://pan.baidu.com/s/1bv4iSY
跨平台 Qt 开源音乐播放器天天酷音(TTK Music Player),像素级模仿酷狗音乐
https://github.com/Greedysky/TTKMusicplayer
也可以本站下载:
sudo apt install python3.8* -y
python3.8 -m pip install dashscope
如果出错:
python3.8 -m pip install dashscope
Collecting dashscope
Downloading https://files.pythonhosted.org/packages/d0/c3/c3f01436be856ea492ce3dec812e9db20889467604ec35a5b603c1192f96/dashscope-1.20.1-py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 150kB/s
Collecting aiohttp (from dashscope)
Downloading https://files.pythonhosted.org/packages/04/a4/e3679773ea7eb5b37a2c998e25b017cc5349edf6ba2739d1f32855cfb11b/aiohttp-3.9.5.tar.gz (7.5MB)
100% |████████████████████████████████| 7.5MB 184kB/s
Complete output from command python setup.py egg_info:
*********************
* Accelerated build *
*********************
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-8m0kd554/aiohttp/setup.py", line 54, in <module>
setup(**setup_kwargs)
File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 129, in setup
return distutils.core.setup(**attrs)
File "/usr/lib/python3.8/distutils/core.py", line 121, in setup
dist.parse_config_files()
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 493, in parse_config_files
parse_configuration(self, self.command_options,
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 106, in parse_configuration
meta.parse()
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 382, in parse
section_parser_method(section_options)
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 355, in parse_section
self[name] = value
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 173, in __setitem__
value = parser(value)
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 430, in _parse_version
version = self._parse_attr(value)
File "/usr/lib/python3/dist-packages/setuptools/config.py", line 305, in _parse_attr
module = import_module(module_name)
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/tmp/pip-build-8m0kd554/aiohttp/aiohttp/__init__.py", line 5, in <module>
from . import hdrs as hdrs
File "/tmp/pip-build-8m0kd554/aiohttp/aiohttp/hdrs.py", line 7, in <module>
from multidict import istr
ModuleNotFoundError: No module named 'multidict'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-8m0kd554/aiohttp/
按这个流程再走一遍:
python3.8 -m pip install --upgrade pip setuptools wheel
python3.8 -m pip uninstall -y aiohttp
python3.8 -m pip install aiohttp
python3.8 -m pip install dashscope --upgrade
然后就成功了:
$ python3.8 -m pip install dashscope --upgrade
Defaulting to user installation because normal site-packages is not writeable
Collecting dashscope
Downloading dashscope-1.20.1-py3-none-any.whl.metadata (6.6 kB)
Requirement already satisfied: aiohttp in /home/aaaaaa/.local/lib/python3.8/site-packages (from dashscope) (3.9.5)
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from dashscope) (2.18.4)
Collecting websocket-client (from dashscope)
Downloading websocket_client-1.8.0-py3-none-any.whl.metadata (8.0 kB)
Requirement already satisfied: aiosignal>=1.1.2 in /home/aaaaaa/.local/lib/python3.8/site-packages (from aiohttp->dashscope) (1.3.1)
Requirement already satisfied: attrs>=17.3.0 in /home/aaaaaa/.local/lib/python3.8/site-packages (from aiohttp->dashscope) (23.2.0)
Requirement already satisfied: frozenlist>=1.1.1 in /home/aaaaaa/.local/lib/python3.8/site-packages (from aiohttp->dashscope) (1.4.1)
Requirement already satisfied: multidict<7.0,>=4.5 in /home/aaaaaa/.local/lib/python3.8/site-packages (from aiohttp->dashscope) (6.0.5)
Requirement already satisfied: yarl<2.0,>=1.0 in /home/aaaaaa/.local/lib/python3.8/site-packages (from aiohttp->dashscope) (1.9.4)
Requirement already satisfied: async-timeout<5.0,>=4.0 in /home/aaaaaa/.local/lib/python3.8/site-packages (from aiohttp->dashscope) (4.0.3)
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp->dashscope) (2.6)
Downloading dashscope-1.20.1-py3-none-any.whl (1.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 1.6 MB/s eta 0:00:00
Downloading websocket_client-1.8.0-py3-none-any.whl (58 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.8/58.8 kB 7.7 MB/s eta 0:00:00
WARNING: Error parsing dependencies of distro-info: Invalid version: '0.18ubuntu0.18.04.1'
Installing collected packages: websocket-client, dashscope
WARNING: The script wsdump is installed in '/home/aaaaaa/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The script dashscope is installed in '/home/aaaaaa/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed dashscope-1.20.1 websocket-client-1.8.0
流式输出:
from http import HTTPStatus
import dashscope
def sample_call_streaming():
prompt_text = '用萝卜、土豆、茄子做饭,给我个菜谱。'
response_generator = dashscope.Generation.call(
model='qwen-turbo',
api_key= "sk-46xxxxxxxxxxxxxxxxxxxxxxxxxxx",
prompt=prompt_text,
# 设置stream为True,开启流式输出
stream=True,
top_p=0.8)
for response in response_generator:
if response.status_code == HTTPStatus.OK:
print(response.output) # 输出文本
print(response.usage) # token使用信息
else:
print(response.code) # 错误码
print(response.message) # 错误信息
if __name__ == '__main__':
sample_call_streaming()
执行结果:
$ python3.8 test2.py
{"text": "当然", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 1, "total_tokens": 22}
{"text": "当然可以", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 2, "total_tokens": 23}
{"text": "当然可以,", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 3, "total_tokens": 24}
{"text": "当然可以,这里有一个简单的三菜", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 8, "total_tokens": 29}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 16, "total_tokens": 37}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 24, "total_tokens": 45}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 32, "total_tokens": 53}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 40, "total_tokens": 61}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 48, "total_tokens": 69}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n-", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 56, "total_tokens": 77}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n-", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 64, "total_tokens": 85}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 72, "total_tokens": 93}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 80, "total_tokens": 101}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 88, "total_tokens": 109}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 96, "total_tokens": 117}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n-", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 104, "total_tokens": 125}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 112, "total_tokens": 133}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n-", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 120, "total_tokens": 141}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n-", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 128, "total_tokens": 149}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 136, "total_tokens": 157}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 144, "total_tokens": 165}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:**", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 152, "total_tokens": 173}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 160, "total_tokens": 181}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 168, "total_tokens": 189}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 176, "total_tokens": 197}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:**", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 184, "total_tokens": 205}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 192, "total_tokens": 213}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 200, "total_tokens": 221}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 208, "total_tokens": 229}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 216, "total_tokens": 237}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 224, "total_tokens": 245}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 232, "total_tokens": 253}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 240, "total_tokens": 261}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 248, "total_tokens": 269}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 256, "total_tokens": 277}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:**", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 264, "total_tokens": 285}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 272, "total_tokens": 293}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 280, "total_tokens": 301}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 288, "total_tokens": 309}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 296, "total_tokens": 317}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 304, "total_tokens": 325}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 312, "total_tokens": 333}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 320, "total_tokens": 341}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 328, "total_tokens": 349}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮约20-30分钟,", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 336, "total_tokens": 357}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮约20-30分钟,直到蔬菜变软且汤汁浓郁", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 344, "total_tokens": 365}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮约20-30分钟,直到蔬菜变软且汤汁浓郁。\n\n7. **出锅:**", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 352, "total_tokens": 373}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮约20-30分钟,直到蔬菜变软且汤汁浓郁。\n\n7. **出锅:** 检查蔬菜是否熟透", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 360, "total_tokens": 381}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮约20-30分钟,直到蔬菜变软且汤汁浓郁。\n\n7. **出锅:** 检查蔬菜是否熟透,根据口味再调整一下盐分", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 368, "total_tokens": 389}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮约20-30分钟,直到蔬菜变软且汤汁浓郁。\n\n7. **出锅:** 检查蔬菜是否熟透,根据口味再调整一下盐分,然后即可出锅。\n\n这道", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 376, "total_tokens": 397}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮约20-30分钟,直到蔬菜变软且汤汁浓郁。\n\n7. **出锅:** 检查蔬菜是否熟透,根据口味再调整一下盐分,然后即可出锅。\n\n这道“蔬菜炖锅”可以搭配面包", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 384, "total_tokens": 405}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮约20-30分钟,直到蔬菜变软且汤汁浓郁。\n\n7. **出锅:** 检查蔬菜是否熟透,根据口味再调整一下盐分,然后即可出锅。\n\n这道“蔬菜炖锅”可以搭配面包或者米饭一起享用,营养均衡又", "finish_reason": "null", "choices": null}
{"input_tokens": 21, "output_tokens": 392, "total_tokens": 413}
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,同时撒上适量的盐、黑胡椒粉以及百里香或迷迭香(如果喜欢)。注意不要盖过其他味道。\n\n6. **炖煮:** 转小火,盖上锅盖,慢慢炖煮约20-30分钟,直到蔬菜变软且汤汁浓郁。\n\n7. **出锅:** 检查蔬菜是否熟透,根据口味再调整一下盐分,然后即可出锅。\n\n这道“蔬菜炖锅”可以搭配面包或者米饭一起享用,营养均衡又美味。希望你会喜欢!", "finish_reason": "stop", "choices": null}
{"input_tokens": 21, "output_tokens": 398, "total_tokens": 419}
$
$
$
$ cat test.py
from http import HTTPStatus
import dashscope
import os
def sample_sync_call():
# 在这里设置问题
prompt_text = '用萝卜、土豆、茄子做饭,给我个菜谱。'
resp = dashscope.Generation.call(
# 在这里指定模型名称
model='qwen-turbo',
# 如果您没有设置环境变量,则指定api_key为您的APIKEY即可
api_key= "sk-462xxxxxxxx", #os.getenv('DASHSCOPE_API_KEY'), 你的密钥,非常重要!!!!!!!
prompt=prompt_text
)
# 如果调用成功,则打印出模型输出,以及此次调用所使用的token数
if resp.status_code == HTTPStatus.OK:
print(resp.output) # 模型的输出
print(resp.usage) # 使用token数
# 如果调用失败,则打印出错误码和错误信息
else:
print(resp.code) # 错误码
print(resp.message) # 错误信息
if __name__ == '__main__':
sample_sync_call()
$ python3.8 test.py
{"text": "当然可以,这里有一个简单的三菜合一的菜品建议——“蔬菜炖锅”。这道菜不仅营养丰富,而且烹饪过程简单,非常适合家庭晚餐或周末烹饪。\n\n**材料:**\n- 萝卜半个\n- 土豆2个\n- 茄子2个\n- 洋葱1/2个\n- 大蒜3瓣\n- 鸡汤或蔬菜汤 4杯\n- 番茄酱 2大勺\n- 橄榄油 2大勺\n- 盐适量\n- 黑胡椒粉适量\n- 百里香或者迷迭香少许(可选)\n\n**步骤:**\n1. **准备食材:** 萝卜、土豆和茄子洗净去皮,切成块状;洋葱和大蒜剁碎备用。\n\n2. **预热锅子:** 在锅中加入橄榄油,中火加热。\n\n3. **炒香洋葱和大蒜:** 当油热后,放入洋葱和大蒜炒至微黄色,散发出香味。\n\n4. **加入蔬菜:** 加入切好的萝卜、土豆和茄子,翻煎均匀,让蔬菜表面稍微焦香,这样能提升口感。\n\n5. **调入调料:** 倒入番茄酱,加入鸡汤或蔬菜汤,搅拌均匀。如果喜欢的话,可以撒上一些百里香或迷迭香增加风味。\n\n6. **煮炖:** 盖上锅盖,转小火慢炖20-25分钟,直到蔬菜变得软烂,汤汁浓稠。\n\n7. **调味:** 根据口味加盐和黑胡椒粉调味,最后尝一下味道,根据需要再做调整。\n\n8. **出锅:** 关火,让菜肴稍微冷却几分钟,然后就可以享用了。\n\n这道\"蔬菜炖锅\"既健康又美味,适合搭配米饭或者面包食用,是一道家常的好菜。", "finish_reason": "stop", "choices": null}
{"input_tokens": 21, "output_tokens": 411, "total_tokens": 432}
官方教程: https://help.aliyun.com/zh/dashscope/opening-service
大模型的平民化时代到来,调用费用相当便宜,1元钱可以调用数万次
都不知道大模型靠啥赚钱,就像1998年的QQ,先把市场抢下来再说
https://github.com/it-elektronika/SDL_RANDOM/blob/master/SDL_RenderCopy.c
#include "SDL2/SDL.h"
#define SHAPE_SIZE 64
int main(int argc, char *argv[])
{
SDL_Window* Main_Window;
SDL_Renderer* Main_Renderer;
SDL_Surface* Loading_Surf;
SDL_Texture* Background_Tx;
SDL_Texture* BlueShapes;
/* Rectangles for drawing which will specify source (inside the texture)
and atarget (on the screen) for rendering our textures. */
SDL_Rect SrcR;
SDL_Rect DestR;
SrcR.x = 0;
SrcR.y = 0;
SrcR.w = SHAPE_SIZE;
SrcR.h = SHAPE_SIZE;
DestR.x = 640 / 2 - SHAPE_SIZE / 2;
DestR.y = 580 / 2 - SHAPE_SIZE / 2;
DestR.w = SHAPE_SIZE;
DestR.h = SHAPE_SIZE;
/* Before we can render anything, we need a window and a renderer */
Main_Window = SDL_CreateWindow("SDL_RenderCopy Example",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 580, 0);
Main_Renderer = SDL_CreateRenderer(Main_Window, -1, SDL_RENDERER_SOFTWARE);
/* The loading of the background texture. Since SDL_LoadBMP() returns
a surface, we convert it to a texture afterwards for fast accelerated
blitting. */
Loading_Surf = SDL_LoadBMP("red.bmp");
Background_Tx = SDL_CreateTextureFromSurface(Main_Renderer, Loading_Surf);
SDL_FreeSurface(Loading_Surf); /* we got the texture now -> free surface */
/* Load an additional texture */
Loading_Surf = SDL_LoadBMP("green.bmp");
BlueShapes = SDL_CreateTextureFromSurface(Main_Renderer, Loading_Surf);
SDL_FreeSurface(Loading_Surf);
/* now onto the fun part.
This will render a rotating selection of the blue shapes
in the middle of the screen */
int i;
int n;
for (i = 0; i < 2; ++i)
{
for(n = 0; n < 4; ++n)
{
SrcR.x = SHAPE_SIZE * (n % 2);
if (n > 1)
{
SrcR.y = SHAPE_SIZE;
} else
{
SrcR.y = 0;
}
/* render background, whereas NULL for source and destination
rectangles just means "use the default" */
SDL_RenderCopy(Main_Renderer, Background_Tx, NULL, NULL);
/* render the current animation step of our shape */
SDL_RenderCopy(Main_Renderer, BlueShapes, &SrcR, &DestR);
SDL_RenderPresent(Main_Renderer);
SDL_Delay(500);
}
}
/* The renderer works pretty much like a big canvas:
when you RenderCopy() you are adding paint, each time adding it
on top.
You can change how it blends with the stuff that
the new data goes over.
When your 'picture' is complete, you show it
by using SDL_RenderPresent(). */
/* SDL 1.2 hint: If you're stuck on the whole renderer idea coming
from 1.2 surfaces and blitting, think of the renderer as your
main surface, and SDL_RenderCopy() as the blit function to that main
surface, with SDL_RenderPresent() as the old SDL_Flip() function.*/
SDL_DestroyTexture(BlueShapes);
SDL_DestroyTexture(Background_Tx);
SDL_DestroyRenderer(Main_Renderer);
SDL_DestroyWindow(Main_Window);
return 0;
}
编译指令:
gcc -o test2 test2.c `sdl2-config --cflags --libs` `pkg-config --cflags --libs sdl2_image` -lGL
void sdl_display_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
{
lv_coord_t hres = disp_drv->hor_res;
lv_coord_t vres = disp_drv->ver_res;
// printf("x1:%d,y1:%d,x2:%d,y2:%d\n", area->x1, area->y1, area->x2, area->y2);
/*Return if the area is out the screen*/
if(area->x2 < 0 || area->y2 < 0 || area->x1 > hres - 1 || area->y1 > vres - 1) {
lv_disp_flush_ready(disp_drv);
return;
}
/* TYPICALLY YOU DO NOT NEED THIS
* If it was the last part to refresh update the texture of the window.*/
if(lv_disp_flush_is_last(disp_drv)) {
window_update(disp_drv, color_p);
}
/*IMPORTANT! It must be called to tell the system the flush is ready*/
lv_disp_flush_ready(disp_drv);
}
static void window_update(lv_disp_drv_t *disp_drv, void * buf)
{
SDL_Renderer *renderer = ((lv_draw_sdl_drv_param_t *) disp_drv->user_data)->renderer;
SDL_Texture *texture = buf;
SDL_SetRenderTarget(renderer, NULL);
SDL_RenderClear(renderer);
#if LV_COLOR_SCREEN_TRANSP
SDL_SetRenderDrawColor(renderer, 0xff, 0, 0, 0xff);
SDL_Rect r;
r.x = 0; r.y = 0; r.w = SDL_HOR_RES; r.h = SDL_VER_RES;
SDL_RenderDrawRect(renderer, &r);
#endif
/*Update the renderer with the texture containing the rendered image*/
SDL_SetTextureBlendMode(texture, SDL_BLENDMODE_BLEND);
SDL_RenderSetClipRect(renderer, NULL);
SDL_RenderCopy(renderer, texture, NULL, NULL);
SDL_RenderPresent(renderer);
SDL_SetRenderTarget(renderer, texture);
}
SDL_RenderCopy(renderer, texture, NULL, NULL);
实在没看懂,为什么这个纹理贴图为什么不要设置目标x,y坐标
准备工作:
sudo apt-get install libsdl2-*-dev
#include <stdio.h>
#include <stdbool.h>
#include <SDL.h>
#include <SDL_opengles2.h> // 注意这里使用的是ES2的头文件,如果你的系统支持,可以使用<SDL_opengl.h>代替
const char *vertexShaderSource = "#version 330 core\n"
"layout (location = 0) in vec3 aPos;\n"
"void main()\n"
"{\n"
" gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n"
"}\0";
const char *fragmentShaderSource = "#version 330 core\n"
"out vec4 FragColor;\n"
"void main()\n"
"{\n"
" FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);\n"
"}\n"
"\0";
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Window *window = SDL_CreateWindow("Simple SDL2 OpenGL Demo",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
800, 600,
SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
SDL_GLContext context = SDL_GL_CreateContext(window);
SDL_GL_MakeCurrent(window, context);
// Request an OpenGL 3.3 context
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
GLuint vertexShader = glCreateShader(GL_VERTEX_SHADER);
GLuint fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(vertexShader, 1, &vertexShaderSource, NULL);
glShaderSource(fragmentShader, 1, &fragmentShaderSource, NULL);
glCompileShader(vertexShader);
glCompileShader(fragmentShader);
GLuint shaderProgram = glCreateProgram();
glAttachShader(shaderProgram, vertexShader);
glAttachShader(shaderProgram, fragmentShader);
glBindFragDataLocation(shaderProgram, 0, "FragColor");
glLinkProgram(shaderProgram);
glUseProgram(shaderProgram);
float vertices[] = {
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
0.0f, 0.5f, 0.0f
};
GLuint VBO, VAO;
glGenVertexArrays(1, &VAO);
glGenBuffers(1, &VBO);
glBindVertexArray(VAO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
while (true)
{
SDL_Event event;
while (SDL_PollEvent(&event))
{
if (event.type == SDL_QUIT || (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_ESCAPE))
exit(0);
}
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glBindVertexArray(VAO);
glDrawArrays(GL_TRIANGLES, 0, 3);
glBindVertexArray(0);
SDL_GL_SwapWindow(window);
}
glDeleteVertexArrays(1, &VAO);
glDeleteBuffers(1, &VBO);
glDeleteProgram(shaderProgram);
glDeleteShader(vertexShader);
glDeleteShader(fragmentShader);
SDL_GL_DeleteContext(context);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
编译指令:
gcc -o test test.c `sdl2-config --cflags --libs` `pkg-config --cflags --libs sdl2_image` -lGL
https://github.com/JefkeB/lv_port_pc_eclipse
https://github.com/lvgl/lv_drivers/issues/241
准备工作:
sudo apt-get update && sudo apt-get install -y build-essential libsdl2-dev cmake -y
#克隆项目
git clone --recursive https://github.com/JefkeB/lv_port_pc_eclipse.git
#
cd lv_port_pc_eclipse
#建立编译目录
mkdir builds/ -p
cd builds/
cmake ..
#编译
make -j32
#运行
bin/main
但是开启lbc失败:
chmod +x /tmp/g2d_lbc_rot && /tmp/g2d_lbc_rot -flag 4096 -in_fb 0 800 480 -src_rect 0 0 800 480 -out_fb 0 800 480 -dst_rect 0 0 800 480 -src_file /tmp/src_800x480_rgb.bin -dst_file /tmp/en_dst_800x480_bgra888_flip_h.bin -lbc 1 -cmp_ratio 400 -enc_lossy 1 -dec_lossy 1
# chmod +x /tmp/g2d_lbc_rot && /tmp/g2d_lbc_rot -flag 4096 -in_fb 0 800 480 -src
_rect 0 0 800 480 -out_fb 0 800 480 -dst_rect 0 0 800 480 -src_file /tmp/src_800
x480_rgb.bin -dst_file /tmp/en_dst_800x480_bgra888_flip_h.bin -lbc 1 -cmp_ratio
400 -enc_lossy 1 -dec_lossy 1
/tmp/g2d_lbc_rot -flag 4096 -in_fb 0 800 480 -src_rect 0 0 800 480 -out_fb 0 800 480 -dst_rect 0 0 800 480 -src_file /tmp/src_800x480_rgb.bin -dst_file /tmp/en_dst_800x480_bgra888_flip_h.bin -lbc 1 -cmp_ratio 400 -enc_lossy 1 -dec_lossy 1
src_file=/tmp/src_800x480_rgb.bin
dst_file=/tmp/en_dst_800x480_bgra888_flip_h.bin
in_size:1536000, out_size=1536000
ready to open src file /tmp/src_800x480_rgb.bin
[ion_open]: success fd = 4
ion_memory_request(295): ion_fd 4
ion_memory_request(306): ION_HEAP_TYPE 0x1
ion_memory_request(315): ION_IOC_ALLOC succes, dmabuf-fd = 0, size = 1536000
+++src_fd = 5
open file /tmp/src_800x480_rgb.bin ok.
read file /tmp/src_800x480_rgb.bin ,ret = 1
ready to open dst file /tmp/en_dst_800x480_bgra888_flip_h.bin
ion_memory_request(295): ion_fd 4
ion_memory_request(306): ION_HEAP_TYPE 0x1
ion_memory_request(315): ION_IOC_ALLOC succes, dmabuf-fd = 0, size = 1536000
+++dst_fd = 7
open file /tmp/en_dst_800x480_bgra888_flip_h.bin ok.
src:format=0x0, w=800, h=480, x=0, y=0, image_w=800, image_h=480, align=0
dst:format=0x0, img w=800, h=480, rect x=0, y=0, w=800, h=480, align=0
[G2D] LBC=1
[460][src/g2d_lbc_rot.c][main]G2D_CMD_LBC_ROT failure!
#
#
#
#
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <string.h>
#include <signal.h>
#include <signal.h>
#include <time.h>
#include <linux/fb.h>
#include <linux/kernel.h>
#include <sys/ioctl.h>
#include <errno.h>
#include "include/g2d_driver_enh.h"
#include "include/ion_head.h"
struct test_info_t
{
g2d_fillrect_h info;
int fd;
int ion_fd;
char filename[64];
char out_filename[64];
FILE *fp;
struct ion_info dst_ion;
};
struct test_info_t test_info;
/* Signal handler */
static void terminate(int sig_no)
{
int val[6];
memset(val,0,sizeof(val));
printf("Got signal %d, exiting ...\n", sig_no);
if(test_info.fd == -1)
{
printf("EXIT:");
exit(1);
}
close(test_info.fd);
printf("EXIT:");
exit(1);
}
static void install_sig_handler(void)
{
signal(SIGBUS, terminate);
signal(SIGFPE, terminate);
signal(SIGHUP, terminate);
signal(SIGILL, terminate);
signal(SIGINT, terminate);
signal(SIGIOT, terminate);
signal(SIGPIPE, terminate);
signal(SIGQUIT, terminate);
signal(SIGSEGV, terminate);
signal(SIGSYS, terminate);
signal(SIGTERM, terminate);
signal(SIGTRAP, terminate);
signal(SIGUSR1, terminate);
signal(SIGUSR2, terminate);
}
int ion_open(void)
{
int fd = open("/dev/ion", O_RDONLY | O_CLOEXEC);
if (fd < 0)
printf("open ion device failed!%s\n", strerror(errno));
printf("[%s]: success fd = %d\n", __func__, fd);
return fd;
}
/**
* @name :disp_layer_is_iommu_enabled
* @brief :judge whether iommu is enabled
* @return :1 if iommu enabled or 0 if iommu disable
*/
static int is_iommu_enabled(void)
{
struct stat iommu_sysfs;
if (stat("/sys/class/iommu", &iommu_sysfs) == 0 &&
S_ISDIR(iommu_sysfs.st_mode))
return 1;
else
return 0;
}
int ion_memory_request(struct ion_info *ion, int mem_size)
{
struct ion_allocation_data data;
int ret = -1;
int ion_fd = 0;;
if (test_info.ion_fd <= 0) {
test_info.ion_fd = ion_open();
if (test_info.ion_fd < 0) {
return -1;
}
}
ion_fd = test_info.ion_fd;
printf("%s(%d): ion_fd %d\n", __func__, __LINE__, ion_fd);
/* alloc buffer */
if (is_iommu_enabled())
{
printf("---> is_iommu_enabled \n");
data.heap_id_mask = ION_SYSTEM_HEAP_MASK;
}
else
{
printf("---> is_iommu_enabled fail\n");
data.heap_id_mask = ION_DMA_HEAP_MASK;
}
data.len = mem_size;
data.flags = ION_FLAG_CACHED;
printf("%s(%d): ION_HEAP_TYPE 0x%x\n", __func__, __LINE__, data.heap_id_mask);
ret = ioctl(ion_fd, ION_IOC_ALLOC, &data);
if(ret < 0) {
printf("%s(%d): ION_IOC_ALLOC err, ret = %d\n", __func__, __LINE__, ret);
data.fd = -1;
goto out;
}
printf("%s(%d): ION_IOC_ALLOC succes, dmabuf-fd = %d, size = %d\n",
__func__, __LINE__, ret, data.len);
printf("\n");
ion->virt_addr = mmap(NULL, mem_size, PROT_READ|PROT_WRITE, MAP_SHARED, data.fd, 0);
if (ion->virt_addr == MAP_FAILED) {
printf("%s(%d): mmap err, ret %p\n", __func__, __LINE__, ion->virt_addr);
data.fd = -1;
}
ion->alloc_data = data;
out:
return data.fd;
}
void ion_memory_release(int fd)
{
close(fd);
return;
}
int main(int argc, char **argv)
{
unsigned long arg[6];
int rv;
int i,n;
int ret;
int out_size;
int dst_fd = 0;
int fb_width, fb_height;
install_sig_handler();
memset(&test_info, 0, sizeof(struct test_info_t));
if((test_info.fd = open("/dev/g2d",O_RDWR)) == -1) {
printf("open g2d device fail!\n");
close(test_info.fd);
return -1;
}
strcpy(test_info.out_filename, "/tmp/fill_dmabuf_1920x1200_bgra8888.bin"); //pixelviewer的解析格式和g2d format刚好反过来
test_info.info.dst_image_h.width = 1920;
test_info.info.dst_image_h.height = 1200;
out_size = test_info.info.dst_image_h.width * test_info.info.dst_image_h.height * 4;
printf("out_size=%d\n", out_size);
dst_fd = ion_memory_request(&test_info.dst_ion, out_size);
if(dst_fd <= 0)
printf("request dst_mem failed! \n");
test_info.info.dst_image_h.fd = dst_fd;
fb_width = test_info.info.dst_image_h.width;
fb_height = test_info.info.dst_image_h.height;
//Red
test_info.info.dst_image_h.format = G2D_FORMAT_ARGB8888;
test_info.info.dst_image_h.width = 1920;
test_info.info.dst_image_h.height = 1200;
test_info.info.dst_image_h.clip_rect.x = 0;
test_info.info.dst_image_h.clip_rect.y = 0;
test_info.info.dst_image_h.clip_rect.w = 300;
test_info.info.dst_image_h.clip_rect.h = 1200;
test_info.info.dst_image_h.color = 0xFFFF0000; //A,R,G,B
test_info.info.dst_image_h.mode = G2D_MIXER_ALPHA; //G2D_PIXEL_ALPHA,G2D_GLOBAL_ALPHA,G2D_MIXER_ALPHA
test_info.info.dst_image_h.alpha = 0x30;
if(ioctl(test_info.fd , G2D_CMD_FILLRECT_H ,(unsigned long)(&test_info.info)) < 0)
{
printf("[%d][%s][%s]G2D_CMD_FILLRECT_H failure!\n",__LINE__, __FILE__,__FUNCTION__);
ion_memory_release(dst_fd);
close(test_info.fd);
return -1;
}
if(ioctl(test_info.fd , G2D_CMD_FILLRECT_H ,(unsigned long)(&test_info.info)) < 0)
{
printf("[%d][%s][%s]G2D_CMD_FILLRECT_H failure!\n",__LINE__, __FILE__,__FUNCTION__);
ion_memory_release(dst_fd);
close(test_info.fd);
return -1;
}
//Green
test_info.info.dst_image_h.format = G2D_FORMAT_ARGB8888;
test_info.info.dst_image_h.width = 1920;
test_info.info.dst_image_h.height = 1200;
test_info.info.dst_image_h.clip_rect.x = 400;
test_info.info.dst_image_h.clip_rect.y = 0;
test_info.info.dst_image_h.clip_rect.w = 300;
test_info.info.dst_image_h.clip_rect.h = 1200;
test_info.info.dst_image_h.color = 0xFF00FF00;//A,R,G,B
test_info.info.dst_image_h.mode = 1;
test_info.info.dst_image_h.alpha = 0xFF;
if(ioctl(test_info.fd , G2D_CMD_FILLRECT_H ,(unsigned long)(&test_info.info)) < 0)
{
printf("[%d][%s][%s]G2D_CMD_FILLRECT_H failure!\n",__LINE__, __FILE__,__FUNCTION__);
ion_memory_release(dst_fd);
close(test_info.fd);
return -1;
}
//Blue
test_info.info.dst_image_h.format = G2D_FORMAT_ARGB8888;
test_info.info.dst_image_h.width = 1920;
test_info.info.dst_image_h.height = 1200;
test_info.info.dst_image_h.clip_rect.x = 800;
test_info.info.dst_image_h.clip_rect.y = 0;
test_info.info.dst_image_h.clip_rect.w = 300;
test_info.info.dst_image_h.clip_rect.h = 1200;
test_info.info.dst_image_h.color = 0xFF0000FF;//A,R,G,B
test_info.info.dst_image_h.mode = 1;
test_info.info.dst_image_h.alpha = 0xFF;
/* fill color */
if(ioctl(test_info.fd , G2D_CMD_FILLRECT_H ,(unsigned long)(&test_info.info)) < 0)
{
printf("[%d][%s][%s]G2D_CMD_FILLRECT_H failure!\n",__LINE__, __FILE__,__FUNCTION__);
ion_memory_release(dst_fd);
close(test_info.fd);
return -1;
}
/* save result data to file */
printf("save result data to file %s \n", test_info.out_filename);
/* save result data to file */
if((test_info.fp = fopen(test_info.out_filename, "wb+")) == NULL) {
printf("open file %s fail. \n", test_info.out_filename);
ion_memory_release(dst_fd);
return -1;
} else {
printf("open file %s ok. \n", test_info.out_filename);
}
printf("==out_size=%d, addr=%p==\n", out_size, test_info.dst_ion.virt_addr);
ret = fwrite(test_info.dst_ion.virt_addr, out_size, 1, test_info.fp);
printf("fwrite,ret=%d\n", ret);
munmap(test_info.dst_ion.virt_addr, out_size);
fclose(test_info.fp);
ion_memory_release(dst_fd);
close(test_info.fd);
return 0;
}
STAGING_DIR="" /opt/T113_Tina5.0/prebuilt/rootfsbuilt/arm/toolchain-sunxi-glibc-gcc-830/toolchain/bin/arm-openwrt-linux-gcc -o /mnt/hgfs/D/g2d_fill_dmabuf src/g2d_fill_dmabuf.c
# chmod +x /tmp/g2d_fill_dmabuf && /tmp/g2d_fill_dmabuf
out_size=9216000
[ion_open]: success fd = 4
ion_memory_request(107): ion_fd 4
---> is_iommu_enabled
ion_memory_request(124): ION_HEAP_TYPE 0x1
ion_memory_request(133): ION_IOC_ALLOC succes, dmabuf-fd = 0, size = 9216000
save result data to file /tmp/fill_dmabuf_1920x1200_bgra8888.bin
open file /tmp/fill_dmabuf_1920x1200_bgra8888.bin ok.
==out_size=9216000, addr=0xb6500000==
fwrite,ret=1
#
#
adb pull /tmp/fill_dmabuf_1920x1200_bgra8888.bin
连续测试10000次 1920*1200 填充:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <string.h>
#include <signal.h>
#include <signal.h>
#include <time.h>
#include <linux/fb.h>
#include <linux/kernel.h>
#include <sys/ioctl.h>
#include <errno.h>
#include "include/g2d_driver_enh.h"
#include "include/ion_head.h"
struct test_info_t
{
g2d_fillrect_h info;
int fd;
int ion_fd;
char filename[64];
char out_filename[64];
FILE *fp;
struct ion_info dst_ion;
};
struct test_info_t test_info;
/* Signal handler */
static void terminate(int sig_no)
{
int val[6];
memset(val,0,sizeof(val));
printf("Got signal %d, exiting ...\n", sig_no);
if(test_info.fd == -1)
{
printf("EXIT:");
exit(1);
}
close(test_info.fd);
printf("EXIT:");
exit(1);
}
int parse_cmdline(int argc, char **argv, struct test_info_t *p)
{
int err = 0;
int i = 0;
while(i<argc) {
printf("%s ",argv[i]);
i++;
}
printf("\n");
i = 0;
while(i < argc) {
if ( ! strcmp(argv[i], "-out_fb")) {
if (argc > i+4) {
i++;
p->info.dst_image_h.format = atoi(argv[i]);
i++;
p->info.dst_image_h.width = atoi(argv[i]);
i++;
p->info.dst_image_h.height = atoi(argv[i]);
} else {
printf("-out_fb para err!\n\n");
err ++;
}
}
if ( ! strcmp(argv[i], "-dst_rect")) {
if (argc > i+4) {
i++;
p->info.dst_image_h.clip_rect.x = atoi(argv[i]);
i++;
p->info.dst_image_h.clip_rect.y = atoi(argv[i]);
i++;
p->info.dst_image_h.clip_rect.w = atoi(argv[i]);
i++;
p->info.dst_image_h.clip_rect.h = atoi(argv[i]);
} else {
printf("-out_fb para err!\n\n");
err ++;
}
}
if ( ! strcmp(argv[i], "-out_file")) {
if (argc > i+1) {
i++;
p->out_filename[0] = '\0';
sprintf(p->out_filename,"%s",argv[i]);
printf("out_file=%s\n", argv[i]);
} else {
printf("no file described!!\n");
err ++;
}
}
if ( ! strcmp(argv[i], "-color")) {
if (argc > i+1) {
i+=1;
p->info.dst_image_h.color = atoll(argv[i]);
}
}
if ( ! strcmp(argv[i], "-alpha_mode")) {
if (argc > i+1) {
i+=1;
p->info.dst_image_h.mode = atoi(argv[i]);
}
}
if ( ! strcmp(argv[i], "-alpha")) {
if (argc > i+1) {
i+=1;
p->info.dst_image_h.alpha = atoi(argv[i]);
}
}
i++;
}
if(err > 0) {
printf("example : --------\n");
return -1;
} else
return 0;
}
static void install_sig_handler(void)
{
signal(SIGBUS, terminate);
signal(SIGFPE, terminate);
signal(SIGHUP, terminate);
signal(SIGILL, terminate);
signal(SIGINT, terminate);
signal(SIGIOT, terminate);
signal(SIGPIPE, terminate);
signal(SIGQUIT, terminate);
signal(SIGSEGV, terminate);
signal(SIGSYS, terminate);
signal(SIGTERM, terminate);
signal(SIGTRAP, terminate);
signal(SIGUSR1, terminate);
signal(SIGUSR2, terminate);
}
#define DISP_MEM_REQUEST 0x2c0
#define DISP_MEM_RELEASE 0x2c1
#define DISP_MEM_GETADR 0x2c2
#define DISPALIGN(value, align) ((align==0)?(unsigned long)value:((((unsigned long)value) + ((align) - 1)) & ~((align) - 1)))
int ion_open(void)
{
int fd = open("/dev/ion", O_RDONLY | O_CLOEXEC);
if (fd < 0)
printf("open ion device failed!%s\n", strerror(errno));
printf("[%s]: success fd = %d\n", __func__, fd);
return fd;
}
/**
* @name :disp_layer_is_iommu_enabled
* @brief :judge whether iommu is enabled
* @return :1 if iommu enabled or 0 if iommu disable
*/
static int is_iommu_enabled(void)
{
struct stat iommu_sysfs;
if (stat("/sys/class/iommu", &iommu_sysfs) == 0 &&
S_ISDIR(iommu_sysfs.st_mode))
return 1;
else
return 0;
}
int ion_memory_request(struct ion_info *ion, int mem_size)
{
struct ion_allocation_data data;
int ret = -1;
int ion_fd = 0;;
if (test_info.ion_fd <= 0) {
test_info.ion_fd = ion_open();
if (test_info.ion_fd < 0) {
return -1;
}
}
ion_fd = test_info.ion_fd;
printf("%s(%d): ion_fd %d\n", __func__, __LINE__, ion_fd);
/* alloc buffer */
if (is_iommu_enabled())
{
printf("---> is_iommu_enabled \n");
data.heap_id_mask = ION_SYSTEM_HEAP_MASK;
}
else
{
printf("---> is_iommu_enabled fail\n");
data.heap_id_mask = ION_DMA_HEAP_MASK;
}
data.len = mem_size;
data.flags = ION_FLAG_CACHED;
printf("%s(%d): ION_HEAP_TYPE 0x%x\n", __func__, __LINE__, data.heap_id_mask);
ret = ioctl(ion_fd, ION_IOC_ALLOC, &data);
if(ret < 0) {
printf("%s(%d): ION_IOC_ALLOC err, ret = %d\n", __func__, __LINE__, ret);
data.fd = -1;
goto out;
}
printf("%s(%d): ION_IOC_ALLOC succes, dmabuf-fd = %d, size = %d\n",
__func__, __LINE__, ret, data.len);
printf("\n");
ion->virt_addr = mmap(NULL, mem_size, PROT_READ|PROT_WRITE, MAP_SHARED, data.fd, 0);
if (ion->virt_addr == MAP_FAILED) {
printf("%s(%d): mmap err, ret %p\n", __func__, __LINE__, ion->virt_addr);
data.fd = -1;
}
ion->alloc_data = data;
out:
return data.fd;
}
void ion_memory_release(int fd)
{
close(fd);
return;
}
int main(int argc, char **argv)
{
unsigned long arg[6];
int rv;
int i,n;
int ret;
int out_size;
int dst_fd = 0;
int fb_width, fb_height;
install_sig_handler();
memset(&test_info, 0, sizeof(struct test_info_t));
rv = parse_cmdline(argc,argv, &test_info);
if(rv < 0) {
printf("parse_command fail");
return -1;
}
if((test_info.fd = open("/dev/g2d",O_RDWR)) == -1) {
printf("open g2d device fail!\n");
close(test_info.fd);
return -1;
}
out_size = test_info.info.dst_image_h.width * test_info.info.dst_image_h.height * 4;
printf("out_size=%d\n", out_size);
printf("ready to open dst file %s \n", test_info.filename);
dst_fd = ion_memory_request(&test_info.dst_ion, out_size);
if(dst_fd <= 0)
printf("request dst_mem failed! \n");
test_info.info.dst_image_h.fd = dst_fd;
fb_width = test_info.info.dst_image_h.width;
fb_height = test_info.info.dst_image_h.height;
printf("dst:format=0x%x,color=0x%x \n img w=%d, h=%d, \n rect x=%d, y=%d, w=%d, h=%d, align=%d\n\n",
test_info.info.dst_image_h.format, test_info.info.dst_image_h.color,
test_info.info.dst_image_h.width, test_info.info.dst_image_h.height,
test_info.info.dst_image_h.clip_rect.x, test_info.info.dst_image_h.clip_rect.y,
test_info.info.dst_image_h.clip_rect.w, test_info.info.dst_image_h.clip_rect.h,
test_info.info.dst_image_h.align[0]);
sleep(1);
while(1) {
static int i = 0;
if(i > 10000) break;
/* fill color */
if(ioctl(test_info.fd , G2D_CMD_FILLRECT_H ,(unsigned long)(&test_info.info)) < 0)
{
printf("[%d][%s][%s]G2D_CMD_FILLRECT_H failure!\n",__LINE__, __FILE__,__FUNCTION__);
ion_memory_release(dst_fd);
close(test_info.fd);
return -1;
}
i++;
}
printf("[%d][%s][%s]G2D_CMD_FILLRECT_H Successful!\n",__LINE__, __FILE__,__FUNCTION__);
/* save result data to file */
printf("save result data to file %s \n", test_info.out_filename);
/* save result data to file */
if((test_info.fp = fopen(test_info.out_filename, "wb+")) == NULL) {
printf("open file %s fail. \n", test_info.out_filename);
ion_memory_release(dst_fd);
return -1;
} else {
printf("open file %s ok. \n", test_info.out_filename);
}
printf("==out_size=%d, addr=%p==\n", out_size, test_info.dst_ion.virt_addr);
ret = fwrite(test_info.dst_ion.virt_addr, out_size, 1, test_info.fp);
printf("fwrite,ret=%d\n", ret);
munmap(test_info.dst_ion.virt_addr, out_size);
fclose(test_info.fp);
ion_memory_release(dst_fd);
close(test_info.fd);
return 0;
}
chmod +x /tmp/g2d_fill_dmabuf && /tmp/g2d_fill_dmabuf -out_fb 2 1920 1200 -dst_rect 0 0 1920 1200 -out_file tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin -color 570460160 -alpha_mode 2 -alpha 128
# date && chmod +x /tmp/g2d_fill_dmabuf && /tmp/g2d_fill_dmabuf -out_fb 2 1920 1
200 -dst_rect 0 0 1920 1200 -out_file /tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bi
n -color 570460160 -alpha_mode 2 -alpha 128 && date
Sat Jun 29 20:59:03 CST 2024
/tmp/g2d_fill_dmabuf -out_fb 2 1920 1200 -dst_rect 0 0 1920 1200 -out_file /tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin -color 570460160 -alpha_mode 2 -alpha 128
out_file=/tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin
out_size=9216000
ready to open dst file
[ion_open]: success fd = 4
ion_memory_request(197): ion_fd 4
---> is_iommu_enabled
ion_memory_request(214): ION_HEAP_TYPE 0x1
ion_memory_request(223): ION_IOC_ALLOC succes, dmabuf-fd = 0, size = -1097396703
dst:format=0x2,color=0x22008800
img w=1920, h=1200,
rect x=0, y=0, w=1920, h=1200, align=0
[309][g2d_fill_dmabuf.c][main]G2D_CMD_FILLRECT_H Successful!
save result data to file /tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin
open file /tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin ok.
==out_size=9216000, addr=0xb6549000==
fwrite,ret=1
Sat Jun 29 21:01:19 CST 2024
处理速度 73fps
# echo $((10000/(120+16)))
73
#
g2d_fill_dmabuf.c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <string.h>
#include <signal.h>
#include <signal.h>
#include <time.h>
#include <linux/fb.h>
#include <linux/kernel.h>
#include <sys/ioctl.h>
#include <errno.h>
#include "include/g2d_driver_enh.h"
#include "include/ion_head.h"
struct test_info_t
{
g2d_fillrect_h info;
int fd;
int ion_fd;
char filename[64];
char out_filename[64];
FILE *fp;
struct ion_info dst_ion;
};
struct test_info_t test_info;
/* Signal handler */
static void terminate(int sig_no)
{
int val[6];
memset(val,0,sizeof(val));
printf("Got signal %d, exiting ...\n", sig_no);
if(test_info.fd == -1)
{
printf("EXIT:");
exit(1);
}
close(test_info.fd);
printf("EXIT:");
exit(1);
}
int parse_cmdline(int argc, char **argv, struct test_info_t *p)
{
int err = 0;
int i = 0;
while(i<argc) {
printf("%s ",argv[i]);
i++;
}
printf("\n");
i = 0;
while(i < argc) {
if ( ! strcmp(argv[i], "-out_fb")) {
if (argc > i+4) {
i++;
p->info.dst_image_h.format = atoi(argv[i]);
i++;
p->info.dst_image_h.width = atoi(argv[i]);
i++;
p->info.dst_image_h.height = atoi(argv[i]);
} else {
printf("-out_fb para err!\n\n");
err ++;
}
}
if ( ! strcmp(argv[i], "-dst_rect")) {
if (argc > i+4) {
i++;
p->info.dst_image_h.clip_rect.x = atoi(argv[i]);
i++;
p->info.dst_image_h.clip_rect.y = atoi(argv[i]);
i++;
p->info.dst_image_h.clip_rect.w = atoi(argv[i]);
i++;
p->info.dst_image_h.clip_rect.h = atoi(argv[i]);
} else {
printf("-out_fb para err!\n\n");
err ++;
}
}
if ( ! strcmp(argv[i], "-out_file")) {
if (argc > i+1) {
i++;
p->out_filename[0] = '\0';
sprintf(p->out_filename,"%s",argv[i]);
printf("out_file=%s\n", argv[i]);
} else {
printf("no file described!!\n");
err ++;
}
}
if ( ! strcmp(argv[i], "-color")) {
if (argc > i+1) {
i+=1;
p->info.dst_image_h.color = atoll(argv[i]);
}
}
if ( ! strcmp(argv[i], "-alpha_mode")) {
if (argc > i+1) {
i+=1;
p->info.dst_image_h.mode = atoi(argv[i]);
}
}
if ( ! strcmp(argv[i], "-alpha")) {
if (argc > i+1) {
i+=1;
p->info.dst_image_h.alpha = atoi(argv[i]);
}
}
i++;
}
if(err > 0) {
printf("example : --------\n");
return -1;
} else
return 0;
}
static void install_sig_handler(void)
{
signal(SIGBUS, terminate);
signal(SIGFPE, terminate);
signal(SIGHUP, terminate);
signal(SIGILL, terminate);
signal(SIGINT, terminate);
signal(SIGIOT, terminate);
signal(SIGPIPE, terminate);
signal(SIGQUIT, terminate);
signal(SIGSEGV, terminate);
signal(SIGSYS, terminate);
signal(SIGTERM, terminate);
signal(SIGTRAP, terminate);
signal(SIGUSR1, terminate);
signal(SIGUSR2, terminate);
}
#define DISP_MEM_REQUEST 0x2c0
#define DISP_MEM_RELEASE 0x2c1
#define DISP_MEM_GETADR 0x2c2
#define DISPALIGN(value, align) ((align==0)?(unsigned long)value:((((unsigned long)value) + ((align) - 1)) & ~((align) - 1)))
int ion_open(void)
{
int fd = open("/dev/ion", O_RDONLY | O_CLOEXEC);
if (fd < 0)
printf("open ion device failed!%s\n", strerror(errno));
printf("[%s]: success fd = %d\n", __func__, fd);
return fd;
}
/**
* @name :disp_layer_is_iommu_enabled
* @brief :judge whether iommu is enabled
* @return :1 if iommu enabled or 0 if iommu disable
*/
static int is_iommu_enabled(void)
{
struct stat iommu_sysfs;
if (stat("/sys/class/iommu", &iommu_sysfs) == 0 &&
S_ISDIR(iommu_sysfs.st_mode))
return 1;
else
return 0;
}
int ion_memory_request(struct ion_info *ion, int mem_size)
{
struct ion_allocation_data data;
int ret = -1;
int ion_fd = 0;;
if (test_info.ion_fd <= 0) {
test_info.ion_fd = ion_open();
if (test_info.ion_fd < 0) {
return -1;
}
}
ion_fd = test_info.ion_fd;
printf("%s(%d): ion_fd %d\n", __func__, __LINE__, ion_fd);
/* alloc buffer */
if (is_iommu_enabled())
{
printf("---> is_iommu_enabled \n");
data.heap_id_mask = ION_SYSTEM_HEAP_MASK;
}
else
{
printf("---> is_iommu_enabled fail\n");
data.heap_id_mask = ION_DMA_HEAP_MASK;
}
data.len = mem_size;
data.flags = ION_FLAG_CACHED;
printf("%s(%d): ION_HEAP_TYPE 0x%x\n", __func__, __LINE__, data.heap_id_mask);
ret = ioctl(ion_fd, ION_IOC_ALLOC, &data);
if(ret < 0) {
printf("%s(%d): ION_IOC_ALLOC err, ret = %d\n", __func__, __LINE__, ret);
data.fd = -1;
goto out;
}
printf("%s(%d): ION_IOC_ALLOC succes, dmabuf-fd = %d, size = %d\n",
__func__, __LINE__, ret, data.len);
printf("\n");
ion->virt_addr = mmap(NULL, mem_size, PROT_READ|PROT_WRITE, MAP_SHARED, data.fd, 0);
if (ion->virt_addr == MAP_FAILED) {
printf("%s(%d): mmap err, ret %p\n", __func__, __LINE__, ion->virt_addr);
data.fd = -1;
}
ion->alloc_data = data;
out:
return data.fd;
}
void ion_memory_release(int fd)
{
close(fd);
return;
}
int main(int argc, char **argv)
{
unsigned long arg[6];
int rv;
int i,n;
int ret;
int out_size;
int dst_fd = 0;
int fb_width, fb_height;
install_sig_handler();
memset(&test_info, 0, sizeof(struct test_info_t));
rv = parse_cmdline(argc,argv, &test_info);
if(rv < 0) {
printf("parse_command fail");
return -1;
}
if((test_info.fd = open("/dev/g2d",O_RDWR)) == -1) {
printf("open g2d device fail!\n");
close(test_info.fd);
return -1;
}
out_size = test_info.info.dst_image_h.width * test_info.info.dst_image_h.height * 4;
printf("out_size=%d\n", out_size);
printf("ready to open dst file %s \n", test_info.filename);
dst_fd = ion_memory_request(&test_info.dst_ion, out_size);
if(dst_fd <= 0)
printf("request dst_mem failed! \n");
test_info.info.dst_image_h.fd = dst_fd;
fb_width = test_info.info.dst_image_h.width;
fb_height = test_info.info.dst_image_h.height;
printf("dst:format=0x%x,color=0x%x \n img w=%d, h=%d, \n rect x=%d, y=%d, w=%d, h=%d, align=%d\n\n",
test_info.info.dst_image_h.format, test_info.info.dst_image_h.color,
test_info.info.dst_image_h.width, test_info.info.dst_image_h.height,
test_info.info.dst_image_h.clip_rect.x, test_info.info.dst_image_h.clip_rect.y,
test_info.info.dst_image_h.clip_rect.w, test_info.info.dst_image_h.clip_rect.h,
test_info.info.dst_image_h.align[0]);
sleep(1);
/* fill color */
if(ioctl(test_info.fd , G2D_CMD_FILLRECT_H ,(unsigned long)(&test_info.info)) < 0)
{
printf("[%d][%s][%s]G2D_CMD_FILLRECT_H failure!\n",__LINE__, __FILE__,__FUNCTION__);
ion_memory_release(dst_fd);
close(test_info.fd);
return -1;
}
printf("[%d][%s][%s]G2D_CMD_FILLRECT_H Successful!\n",__LINE__, __FILE__,__FUNCTION__);
/* save result data to file */
printf("save result data to file %s \n", test_info.out_filename);
/* save result data to file */
if((test_info.fp = fopen(test_info.out_filename, "wb+")) == NULL) {
printf("open file %s fail. \n", test_info.out_filename);
ion_memory_release(dst_fd);
return -1;
} else {
printf("open file %s ok. \n", test_info.out_filename);
}
printf("==out_size=%d, addr=%p==\n", out_size, test_info.dst_ion.virt_addr);
ret = fwrite(test_info.dst_ion.virt_addr, out_size, 1, test_info.fp);
printf("fwrite,ret=%d\n", ret);
munmap(test_info.dst_ion.virt_addr, out_size);
fclose(test_info.fp);
ion_memory_release(dst_fd);
close(test_info.fd);
return 0;
}
编译指令:
STAGING_DIR="" /opt/T113_Tina5.0/prebuilt/rootfsbuilt/arm/toolchain-sunxi-glibc-gcc-830/toolchain/bin/arm-openwrt-linux-gcc -o g2d_fill_dmabuf src/g2d_fill_dmabuf.c
运行指令:
chmod +x /tmp/g2d_fill_dmabuf && /tmp/g2d_fill_dmabuf -out_fb 2 1920 1200 -dst_rect 0 0 1920 1200 -out_file /tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin -color 570460160 -alpha_mode 2 -alpha 128
运行日志:
#chmod +x /tmp/g2d_fill_dmabuf && /tmp/g2d_fill_dmabuf -out_fb 2 1920 1
200 -dst_rect 0 0 1920 1200 -out_file /tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bi
n -color 570460160 -alpha_mode 2 -alpha 128
/tmp/g2d_fill_dmabuf -out_fb 2 1920 1200 -dst_rect 0 0 1920 1200 -out_file /tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin -color 570460160 -alpha_mode 2 -alpha 128
out_file=/tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin
out_size=9216000
ready to open dst file
[ion_open]: success fd = 4
ion_memory_request(197): ion_fd 4
---> is_iommu_enabled
ion_memory_request(214): ION_HEAP_TYPE 0x1
ion_memory_request(223): ION_IOC_ALLOC succes, dmabuf-fd = 0, size = -1097396703
dst:format=0x2,color=0x22008800
img w=1920, h=1200,
rect x=0, y=0, w=1920, h=1200, align=0
[309][g2d_fill_dmabuf.c][main]G2D_CMD_FILLRECT_H Successful!
save result data to file /tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin
open file /tmp/fill_dmabuf_0_1920x1200_abgr8888_2.bin ok.
==out_size=9216000, addr=0xb6549000==
fwrite,ret=1
qfbscreen_p.h
class QFbScreen : public QObject, public QPlatformScreen
{
protected:
virtual QRegion doRedraw();
void initializeCompositor();
bool event(QEvent *event) override;
QFbWindow *windowForId(WId wid) const;
QList<QFbWindow *> mWindowStack;
QRegion mRepaintRegion;
bool mUpdatePending;
QFbCursor *mCursor;
QRect mGeometry;
int mDepth;
QImage::Format mFormat;
QSizeF mPhysicalSize;
QImage mScreenImage;
}
qlinuxfbscreen.cpp
class QLinuxFbScreen : public QFbScreen
{
}
追踪了半天代码,终于找到 QLinuxFbScreen 操作的那些变量的出处了。