您尚未登录。

#1 Re: 全志 SOC » 试一试用MDK ARMCC 编译全志官方f1c100s sdk --- melis » 2024-12-06 20:09:39

这样修改调试串口改到 UART2 (PE7,PE8)
F1C200S_Melis_V1.7_mdk\melis2.0-sdk-release\workspace\suniv\eFex\sys_config.fex

[uart_para]
uart_debug_port = 2
uart_debug_tx   = port:PE7<3>
uart_debug_rx   = port:PE8<3>

747f7dcbed99b879c333722d6ec9d386.png

#2 Re: 全志 SOC » A133 AW869C 蓝牙开启失败,请问是什么原因呢? » 2024-12-04 17:49:53

这是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

#3 Re: 全志 SOC » A133 AW869C 蓝牙开启失败,请问是什么原因呢? » 2024-12-04 17:38:41

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: 538
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

#4 Re: 全志 SOC » A133 AW869C 蓝牙开启失败,请问是什么原因呢? » 2024-12-04 17:37:36

开机日志:

[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

#5 全志 SOC » A133 AW869C 蓝牙开启失败,请问是什么原因呢? » 2024-12-04 17:30:52

memory
回复: 3
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: 440
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_

2e35c8198b9bfba24fa74f3fedc79f89.png


7c877fc525270bfcb12cfcf9d55b9034.png

#8 Re: Cortex M0/M3/M4/M7 » (求助)stm32F407驱动OV7670(没FIFO),将图像显示在显示屏上遇到的问题 » 2024-12-02 13:02:10

求助帖: 自制V3s 开发板 OV2640 拍照测试 照片为全绿
https://whycan.com/t_9665.html


荔枝派跑ov2640摄像头拍图效果不好,请问怎么解决
https://whycan.com/t_9486.html

#9 Re: 全志 SOC » melis 烧录失败,这是什么原因呢? » 2024-11-27 15:47:36

memory 说:
[BOOT0] BOOT0 is starting
DBG: bootinfo error1

melis v1.7 挂这里了!不知道为啥


请教一下C200S 的官方直接下载V1.6 无法正常启动
https://bbs.aw-ol.com/topic/1833


根据这个帖子搞定了,用 git reset --hard 复位一下源码目录

#10 Re: 全志 SOC » melis 烧录失败,这是什么原因呢? » 2024-11-27 15:42:14

[BOOT0] BOOT0 is starting
DBG: bootinfo error1

melis v1.7 挂这里了!不知道为啥

#11 Re: 全志 SOC » melis 烧录失败,这是什么原因呢? » 2024-11-27 11:02:33

QQ截图20241127110138.png

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,可以烧完了,但是不知道有没有起来。

#12 全志 SOC » melis 烧录失败,这是什么原因呢? » 2024-11-27 10:55:04

memory
回复: 3
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

QQ截图20241127105447.png

#14 Re: 全志 SOC » t113-s3调试aic8800dc wifi模组报错,大佬们帮忙看下? » 2024-11-24 15:23:45

燕十三 说:

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

#15 Re: 全志 SOC » modprobe aic8800_fdrv 出错,请问是什么原因呢? » 2024-11-24 15:20:49

aic8800 驱动里面所有的 Makefile都改成:

CONFIG_PLATFORM_ALLWINNER ?= y
CONFIG_PLATFORM_UBUNTU ?= n

#17 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » NXP GUI Guider 生成代码结构分析 » 2024-11-17 21:43:33

Ubuntu24.04 安装 Gui-Guider-Setup-1.8.1-GA.deb 失败

Ubuntu22.04 安装成功:

sudo apt-get install gconf2 gconf2-common  libsdl2-* libvips42* cmake libappindicator1* libffi* -y

#18 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » NXP GUI Guider 生成代码结构分析 » 2024-11-16 13:02:11

QQ截图20241116130024.png

QQ截图20241116130143.png

NXP GUI Guider 控件比 squareline 丰富多了!!!

但是 GUI Guider 不能弹性布局,也不能设置对齐方式。

#19 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » NXP GUI Guider 生成代码结构分析 » 2024-11-16 12:34:09

GUI Guider的图片控件可以随意调整图片大小,分析了生成代码,原来是编辑器先生成对应分辨率的图片,掩面泪过.gif

#20 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » NXP GUI Guider 生成代码结构分析 » 2024-11-16 12:30:05

QQ截图20241116122751.png

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,
};

#21 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » NXP GUI Guider 生成代码结构分析 » 2024-11-16 12:26:13

memory
回复: 4

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)
{
}

#22 Re: 全志 SOC » T113-S3 RGB液晶颜色不对 » 2024-11-12 10:35:34

billymc 说:
memory 说:

按复位按键系统不管用

是不是插着串口?把串口断开试一试能不能复位?

没有插,按复位后系统重新启动了,但颜色不对。

RGB显示屏这么测试:


cat /dev/zero > /dev/fb0
RGB 是否全部拉低?

#23 Re: 全志 SOC » T113-S3 RGB液晶颜色不对 » 2024-11-12 08:48:55

按复位按键系统不管用

是不是插着串口?把串口断开试一试能不能复位?

#24 Re: 全志 SOC » LVGL 的 group 研究 » 2024-11-05 21:13:05

多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。

#25 全志 SOC » LVGL 的 group 研究 » 2024-11-05 21:10:59

memory
回复: 1

初始化程序建立一个group,并把之设置为默认group

    lv_group_t * g = lv_group_create();
    lv_group_set_default(g);

创建输入设备后,把输入设备与该group关联:

    lv_indev_set_group(indev2, g);

#26 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LVGL8 的 evdev 驱动改成这样,但是长按回车键,不能跳出当前选中的widgets » 2024-11-05 16:03:01

2024-11-05_155941.png

    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;
                }

加入一个全局变量解决这个问题。

#27 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LVGL8 的 evdev 驱动改成这样,但是长按回车键,不能跳出当前选中的widgets » 2024-11-05 15:30:29

大概找到问题了,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。

按键保持按下状态:不会持续生成事件。
这种设计是为了减少不必要的事件流量,提高系统的效率。然而,这导致了一个问题:如果你需要检测按键是否一直被按下,你需要在应用程序中实现额外的逻辑来跟踪按键的状态。

如何实现持续检测按键状态
为了实现持续检测按键是否一直被按下,你可以使用以下方法:

① 记录按键按下时间:在按键首次按下时记录当前时间。
② 定期检查按键状态:在按键按下后,定期检查按键是否仍然处于按下状态。
③ 处理长按事件:如果按键保持按下状态超过一定时间阈值,则触发长按事件。

#28 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LVGL8 的 evdev 驱动改成这样,但是长按回车键,不能跳出当前选中的widgets » 2024-11-04 23:24:01

跟踪了一下代码,长按编码器按键使当前按键失焦的代码在

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) {
            //一直长按处理
        }
    }
}

#30 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LVGL8 的 evdev 驱动改成这样,但是长按回车键,不能跳出当前选中的widgets » 2024-11-04 21:07:24

memory
回复: 4
            } 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;
                }

#32 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LVGL win32 添加模拟器按键 » 2024-11-01 17:12:08

memory
回复: 1

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*/

2024-11-01_171055.png

#34 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 开发者遇到的USB转TTL串口的小坑坑 » 2024-10-26 11:09:46

memory
回复: 1

以前买的是这个 id=636315097583
发现总是出现一些奇怪的问题,后来我朋友告诉我因为这个串口模块是5V的,目标主板是3V3的,所以会出现兼容性问题。

后来买了这个 id=816399928095,终于解决了这个问题,而且这个可以用拨码开关切换3V3和5V0电平。

#35 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » LVGL 的 lv_demo_music 主界面上拉是怎么实现的? » 2024-10-25 21:10:51

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);
}

跟踪了半天,是这样吗?

#38 Re: 全志 SOC » 全志的参考电路在哪里下载 » 2024-10-17 15:49:46

freedombye 说:

全志T113I芯片的参考电路在哪里下载

T113-i Hardware硬件类文档.7z

#40 Re: 全志 SOC » 全志a20可不可以接8位并口的8080 CPU屏?如果可以的话接口怎么连接? » 2024-10-01 10:36:43

@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 左右

#41 Re: 全志 SOC » mpv 切换声卡 » 2024-09-29 20:54:53

mpv --no-video  --ao=alsa --audio-device='alsa/sysdefault:CARD=snddaudio0' --audio-format=s16 --audio-samplerate=48000 /opt/今天.wav


mpv --no-video  --ao=alsa --audio-device='alsa/sysdefault:CARD=sndspdif' --audio-format=s16 --audio-samplerate=48000 /opt/今天.wav

#42 Re: 全志 SOC » AXP2101 PMU 资料 » 2024-09-23 11:33:25

Tina_Linux_PMU_开发指南.pdf

读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]

#51 Re: 全志 SOC » Qt5 QListView 动态加载数据 » 2024-09-16 21:28:35

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);

#53 全志 SOC » Qt5 QListView 动态加载数据 » 2024-09-16 20:47:30

memory
回复: 2

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();
}

#54 全志 SOC » 解决ubuntu24.04虚拟机vmware tools无法共享剪贴板问题 » 2024-09-11 17:16:17

memory
回复: 0
sudo apt-get install open-vm-tools-desktop open-vm-tools -y

vmware tools的开源版本open-vm-tools由两个组件构成

open-vm-tools 包含显示驱动,屏幕可以自适应大小,可以共享文件夹
open-vm-tools-desktop 用于共享剪贴板和文件拖拽功能

#58 全志 SOC » mpv 切换声卡 » 2024-09-01 11:20:43

memory
回复: 1

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

#59 Re: 全志 SOC » V3s 应用程序 segmentation fatult » 2024-08-29 11:40:28

用工具测试一下内存泄漏,可能是内存一直没有释放导致。

#60 Re: 全志 SOC » V3s 应用程序 segmentation fatult » 2024-08-29 11:24:48

2个月才暴露的问题,确认是你换TF卡解决的?

#61 Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » Qt监视 U盘、移动硬盘,TF卡插入。原理用QFileSystemWatcher 的 directoryChanged信号 » 2024-08-28 21:04:59

memory
回复: 0
#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();
}

#62 Re: 全志 SOC » A133播放音乐,44100Hz,48000Hz,96000Hz都正常,19200Hz不能播放,日志显示unsupport clk_div » 2024-08-28 20:58:56

wupaul2001 说:

声卡驱动不支持,打开重采样应该就可以

看起来好像不是这个问题

#63 全志 SOC » A133播放音乐,44100Hz,48000Hz,96000Hz都正常,19200Hz不能播放,日志显示unsupport clk_div » 2024-08-28 16:57:01

memory
回复: 3

# 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)

#65 Re: 全志 SOC » A133 使用GPU做OpenCL 并行运算 » 2024-08-27 11:02:26

@微凉VeiLiang
我问了一下店主,说可能是tina4只适配了1G,2G内存的问题,

4G版本可能需要微调一下 sys_config.fex ddr 参数。

#67 Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 终于,Qt6 对 高分辨率显示屏的缩放支持挺好了 » 2024-08-27 09:55:57

memory
回复: 1

QQ截图20240827095256.png

3倍放大,windows画图和Qt app可以对上了。

400*3 = 1200
100*3 =   300

#69 Re: 全志 SOC » A133 使用GPU做OpenCL 并行运算 » 2024-08-26 17:04:49

微凉VeiLiang 说:

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

#72 Re: 全志 SOC » 如何修改固件里的文件,然后重新打包 » 2024-08-26 15:44:01

对安卓不太了解,或许你改了他也会生成覆盖,←强行解释

#73 Re: 全志 SOC » 如何修改固件里的文件,然后重新打包 » 2024-08-26 15:34:46

tempfsop 看起来是 临时文件目录,程序运行中产生的。

你是怎么修改的呢?

#74 Re: 全志 SOC » A133 使用GPU做OpenCL 并行运算 » 2024-08-26 15:21:36

opencl 只会跑demo,不会onnxruntime

我这边 Qt跑OpenGL DEMO正常,没有花屏。

#82 Re: 全志 SOC » 跟踪 A133 tplayerdemo播放视频遮住了 Qt5 widget界面 » 2024-08-12 11:48:48

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 处理其他默认绘制
}

#83 Re: 全志 SOC » 跟踪 A133 tplayerdemo播放视频遮住了 Qt5 widget界面 » 2024-08-11 21:53:04

A133 照上面修改,然后把文件lichee/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/dev_fb.c

			config.info.alpha_mode = 1;

修改成:

			config.info.alpha_mode = 0;

即可正常工作。

#84 Re: 全志 SOC » 跟踪 A133 tplayerdemo播放视频遮住了 Qt5 widget界面 » 2024-08-11 17:58:59

分析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

屎山代码写得真烂

#85 Re: 全志 SOC » 跟踪 A133 tplayerdemo播放视频遮住了 Qt5 widget界面 » 2024-08-11 12:04:25

正常的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会把视频层遮住,这个是正常逻辑。

#86 全志 SOC » 跟踪 A133 tplayerdemo播放视频遮住了 Qt5 widget界面 » 2024-08-11 11:47:03

memory
回复: 5
#
# 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值越大,越处于上层,所以视频层遮住了视频播放层

#87 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » Ubuntu18.04编译测试带OpenGL加速的LVGL » 2024-08-11 10:10:51

准备工作:

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 

#88 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » Ubuntu18.04编译测试带OpenGL加速的LVGL » 2024-08-11 10:03:42

memory
回复: 1

源码: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

运行:

QQ截图20240811095850.png

#92 Re: 全志 SOC » 解决全志科技A133特殊分辨率下使用GPU,导致 Qt5 OpenGL ES2程序撕裂问题 » 2024-08-09 11:44:35

shaoxi2010 说:

大佬,要不研究下A133的QT双缓冲切换问题。在静态画面下,最后一帧在缓冲内一直不显示的毛病。

具体是什么情况呢,有视频吗?

#95 全志 SOC » 解决全志科技A133特殊分辨率下使用GPU,导致 Qt5 OpenGL ES2程序撕裂问题 » 2024-08-09 11:00:43

memory
回复: 6

现象:
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

#96 全志 SOC » A133 使用GPU做OpenCL 并行运算 » 2024-08-08 18:16:19

memory
回复: 25

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
#

#98 Re: 全志 SOC » tplayerdemo 报:ERROR:awplayer <ProcessVideoSync>need to drop this frame » 2024-08-07 17:15:15

造成丢帧的原因:
目前造成视频时间戳晚于系统时钟的可能原因有四个:
(1)解封装给解码器送码流晚;
(2)解封转或解码器计算出的pts存在问题;
(3)解码速度慢导致的视频pts晚
(4)送显流程过程中的buffer轮转不及时,导致解码晚或送显晚而引起的视频pts晚

#99 Re: 全志 SOC » tplayerdemo 报:ERROR:awplayer <ProcessVideoSync>need to drop this frame » 2024-08-07 17:12:36

找到表面原因了,另外一个Qt OpenGL 程序占了 30%的cpu,那个程序kill掉初步解决问题。

#100 全志 SOC » tplayerdemo 报:ERROR:awplayer <ProcessVideoSync>need to drop this frame » 2024-08-07 17:04:23

memory
回复: 2
# 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

然后卡住了。

#101 全志 SOC » A133 Tina 不能自动热拔插 U盘的问题 » 2024-08-04 17:58:48

memory
回复: 0

分析:

首先,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

#103 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » OpenGL ES2 不支持 glGenVertexArrays, glBindVertexArray吗? » 2024-08-04 12:26:46

memory
回复: 1
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);

QQ截图20240804122618.png

#104 Re: 全志 SOC » 关于全志视频播放器的旋转 » 2024-08-04 11:32:34

memory 说:
wupaul2001 说:

V3S绝对有G2D

可是手册没有写

再次确认,V3s/R11确实没有g2d,只能用TPlayerSetRotate旋转视频。

目前确认有G2D芯片 A133/T113/H133等。

#105 全志 SOC » 请问 A133 SDL2 OpenGLES 可以使用 directfb后端吗? » 2024-08-01 10:09:55

memory
回复: 0

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

#106 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 试一试 Qt5 运行 OpenGL 程序 » 2024-07-30 21:32:18

https://blog.csdn.net/Fox_Alex/article/details/80163942

QOpenGLTest1.zip

#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();
}

#108 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 面向嵌入式的MQTT项目 ---- MQTT-C,顺便测试一下我的亚马逊服务器 » 2024-07-27 22:01:12

QQ截图20240727220039.png

终于搞定了。

双引号里面的字符会转义,单引号不会转义。

比较过N次,MQTTX参数和命令行一毛一样,MQTTX就是可以的,然后看到MQTTX的系统消息发现的。

#109 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 面向嵌入式的MQTT项目 ---- MQTT-C,顺便测试一下我的亚马逊服务器 » 2024-07-27 21:27:25

QQ截图20240727212533.png

可是MQTTX 订阅 $aws/events/#正常,Ubuntu16.04和Ubuntu22.04 mosquitto_sub 订阅都失败,一脸懵逼。

#110 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 讨论一下MQTT物联网安全问题 » 2024-07-27 21:03:31

aws 接入awsIOT平台的证书签发逻辑

当 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函数完成证书激活




本站打开:接入aws-IOT平台的证书签发逻辑(一设备一证书).pdf

#111 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 面向嵌入式的MQTT项目 ---- MQTT-C,顺便测试一下我的亚马逊服务器 » 2024-07-27 20:44:47

aws 接入awsIOT平台的证书签发逻辑

当 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函数完成证书激活





这个没有看懂。

#112 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 面向嵌入式的MQTT项目 ---- MQTT-C,顺便测试一下我的亚马逊服务器 » 2024-07-27 20:43:07

QQ截图20240727204120.png

mosquitto_sub --cafile ${FILE_CA} --cert ${FILE_CERT} --key ${FILE_KEY} -h ${HOST_MQTT} -p ${PORT} -i ${ID_CMD_LINE} -t "$aws/events/#"

不知道为什么网页里面可以订阅 $aws/events/#,而mosquitto_sub订阅不到。

#113 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 记录一下常用易忘的Linux日常操作 » 2024-07-26 17:02:16

记住两个时间戳并比较结果:

DATE1=`date +%s` && sleep 5 && DATE2=`date +%s` && echo $(($DATE2 - $DATE1))

#115 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 从0开始的OpenGL学习(十七)-加载模型 (转载) » 2024-07-26 11:57:46

源码地址: https://gitee.com/pengrui2009/open-gl-study

ubuntu编译先安装glfw3: sudo apt-get install libglfw3-dev

Makefile 里面的 third-party/library/libglfw3.a 改成 -lglfw 即可。

#117 Re: 全志 SOC » 编译qt5webengine,编译器挂了:aarch64-linux-gnu-g++: internal compiler error » 2024-07-24 20:46:07

# 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
#
#

#118 Re: 全志 SOC » 编译qt5webengine,编译器挂了:aarch64-linux-gnu-g++: internal compiler error » 2024-07-24 18:27:17

编译完了,但是运行 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
#

#119 Re: 全志 SOC » 编译qt5webengine,编译器挂了:aarch64-linux-gnu-g++: internal compiler error » 2024-07-24 17:48:18

搞定了!

根据以前编译android的经验,应该是虚拟机内存不足引起,关机后把虚拟机内存配置由16G升级到32G搞定。

#120 全志 SOC » 编译qt5webengine,编译器挂了:aarch64-linux-gnu-g++: internal compiler error » 2024-07-24 17:08:56

memory
回复: 4
$ 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

#121 全志 SOC » A133 运行 Qt5 OpenGL cellphone 出错 » 2024-07-24 16:46:58

memory
回复: 0
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"

#123 Re: 全志 SOC » 奇怪,这个buildroot Qt5依赖的库路径好神奇 » 2024-07-23 09:50:11

搞定了,换另外一套带SONAME节点的so文件库就好了。

另外一个解决办法,给这些so文件用patchelf手动打上SONAME也可以解决,但是我没有测试。

#125 Re: 全志 SOC » 奇怪,这个buildroot Qt5依赖的库路径好神奇 » 2024-07-19 17:54:18

跟踪了一下,貌似 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]
$
$

#126 Re: 全志 SOC » 奇怪,这个buildroot Qt5依赖的库路径好神奇 » 2024-07-19 17:34:16

这里有人提出同样的问题:

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/104015/cross-compilation-generates-full-paths-in-libqt5gui-so-for-libglesv2-so-and-libgl-so-then-cannot-be-found-in-execution-time

https://forum.qt.io/topic/101590/absolute-paths-to-egl-library-in-libqt5gui-so-since-qt-5-12-1

#127 Re: 全志 SOC » 奇怪,这个buildroot Qt5依赖的库路径好神奇 » 2024-07-19 17:31:53

不知道是不是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

#128 全志 SOC » 奇怪,这个buildroot Qt5依赖的库路径好神奇 » 2024-07-19 11:56:07

memory
回复: 4
$ /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

QQ截图20240719115454.png

#129 Re: 工业芯 匠芯创 » AWTK UI在D21x RTOS SDK平台上性能非常差,平移动画非常卡!什么原因? » 2024-07-18 17:57:45

平移就是 bitblt 像素拷贝,这个动作如果没有g2d之类的硬件参与,速度相当慢,就是把全屏每个像素挨个做一次复制粘贴。

#130 全志 SOC » buildroot Qt5 需要开启 qt5 3d » 2024-07-18 11:07:28

memory
回复: 0

BR2_PACKAGE_QT5_GL_AVAILABLE

BR2_PACKAGE_HAS_LIBGL
BR2_PACKAGE_HAS_LIBGLES

27170f370d9a1cee29870109aff74ddb.png

#131 Re: 工业芯 匠芯创 » 摄像头硬件电路咨询 » 2024-07-18 10:25:35

需要转换芯片,看D213支持DVP还是MIPI接口


AHD 转 DVP
AHD 转 MIPI

#132 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 请问如何获取windows和Ubuntu的缩放值 » 2024-07-16 18:12:53

Qt5 平台可以用  screen->logicalDotsPerInchX() 除以 96 得到缩放因子

#133 Re: 全志 SOC » 200s spinand-ubifs文件系统无法挂载 » 2024-07-15 09:43:10

改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>;
	};

QQ截图20240715094200.png

#134 Re: 全志 SOC » 200s spinand-ubifs文件系统无法挂载 » 2024-07-14 17:52:46

玛德,什么没动,换了一片W25N01GVZEIG就可以了,看来全志SDK软件上面对SPI NAND处理真是渣。

#135 Re: 全志 SOC » 200s spinand-ubifs文件系统无法挂载 » 2024-07-13 22:54:15

正常的应该是这样:

[    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

#136 Re: 全志 SOC » 200s spinand-ubifs文件系统无法挂载 » 2024-07-13 21:45:45

改了 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) ]---

#137 Re: 全志 SOC » 200s spinand-ubifs文件系统无法挂载 » 2024-07-13 21:34:18

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) ]---

#139 全志 SOC » 全志 A133 查看Qt 3D 程序 cellphone 运行时 GPU的占用率 » 2024-07-12 21:04:52

memory
回复: 2

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%

#142 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 跨平台 Qt 开源音乐播放器天天酷音(TTK Music Player),像素级模仿酷狗音乐 » 2024-07-11 21:25:03

记得把 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

#146 Re: 人工智能,深度学习,神经网络,OpenAI,阿里通义 » Ubuntu Python3.8 使用阿里通义API,大模型的平民化时代到来,调用费用相当便宜,1元钱可以调用数万次 » 2024-07-05 10:22:21

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

#148 Re: 人工智能,深度学习,神经网络,OpenAI,阿里通义 » Ubuntu Python3.8 使用阿里通义API,大模型的平民化时代到来,调用费用相当便宜,1元钱可以调用数万次 » 2024-07-05 10:16:30

流式输出:

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}
$
$
$

#149 Re: 人工智能,深度学习,神经网络,OpenAI,阿里通义 » Ubuntu Python3.8 使用阿里通义API,大模型的平民化时代到来,调用费用相当便宜,1元钱可以调用数万次 » 2024-07-05 10:11:54

2A148B5C23DC505CE6FBCFC3F41BC81D.png

$ 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}

#150 人工智能,深度学习,神经网络,OpenAI,阿里通义 » Ubuntu Python3.8 使用阿里通义API,大模型的平民化时代到来,调用费用相当便宜,1元钱可以调用数万次 » 2024-07-05 10:07:22

memory
回复: 8

官方教程: https://help.aliyun.com/zh/dashscope/opening-service

大模型的平民化时代到来,调用费用相当便宜,1元钱可以调用数万次

都不知道大模型靠啥赚钱,就像1998年的QQ,先把市场抢下来再说

#151 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 试一试 直接用 win32 api 运行 OpenGL 程序 » 2024-07-04 17:31:24

QQ截图20240704173002.png

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

#152 Re: 全志 SOC » LVGL 使用 GPU 的 DEMO » 2024-07-04 17:03:00

#define LV_DISP_DEF_REFR_PERIOD 30      /*[ms]*/
#define LV_DISP_DEF_REFR_PERIOD 1      /*[ms]*/

瞬间飙升到 400fps:

QQ截图20240704165523.png

但是实际上电脑液晶显示器刷新率一般也就60FPS,你搞那么高有什么卵用?
但是实际上电脑液晶显示器刷新率一般也就60FPS,你搞那么高有什么卵用?
但是实际上电脑液晶显示器刷新率一般也就60FPS,你搞那么高有什么卵用?

#153 Re: 全志 SOC » LVGL 使用 GPU 的 DEMO » 2024-07-04 13:45:00

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坐标

#154 Re: 计算机图形/GUI/RTOS/FileSystem/OpenGL/DirectX/SDL2 » 试一试 直接用 win32 api 运行 OpenGL 程序 » 2024-07-04 11:45:20

准备工作:

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

QQ截图20240704114840.png

#155 Re: 全志 SOC » LVGL 使用 GPU 的 DEMO » 2024-07-04 11:02:28

QQ截图20240704105958.png

sdl.c 使用:

    m->renderer = SDL_CreateRenderer(m->window, -1, SDL_RENDERER_SOFTWARE);

sdl_gpu.c 使用:

    m->renderer = SDL_CreateRenderer(m->window, -1, SDL_RENDERER_ACCELERATED);

#156 Re: 全志 SOC » LVGL 使用 GPU 的 DEMO » 2024-07-02 22:49:48

QQ截图20240702223928.png

QQ截图20240702224421.png



CPU渲染的时候,GPU使用率22% | GPU渲染的时候,GPU使用率35%以上。
CPU渲染的时候,GPU使用率22% | GPU渲染的时候,GPU使用率35%以上。
CPU渲染的时候,GPU使用率22% | GPU渲染的时候,GPU使用率35%以上。

#157 Re: 全志 SOC » LVGL 使用 GPU 的 DEMO » 2024-07-02 22:45:15

海石生风 说:

对比通过wayland来使用GPU会怎样?

wayland没有听说过,没能力,不会玩。

#158 Re: 全志 SOC » LVGL 使用 GPU 的 DEMO » 2024-07-01 22:05:17

QQ截图20240701220218.png

ubuntu22.04

编译运行成功
编译运行成功
编译运行成功

#159 全志 SOC » LVGL 使用 GPU 的 DEMO » 2024-07-01 22:05:05

memory
回复: 8

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

#160 Re: 全志 SOC » 全志T113 Linux G2D学习 » 2024-07-01 16:16:08

但是开启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!
#
#
#
#

#161 Re: 全志 SOC » 全志T113 Linux G2D学习 » 2024-07-01 15:53:43

测试水平镜像:

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

QQ截图20240701155316.png

#162 Re: 全志 SOC » 全志T113 Linux G2D学习 » 2024-07-01 15:41:40

旋转测试:

chmod +x /tmp/g2d_lbc_rot && /tmp/g2d_lbc_rot -flag 256 -in_fb 0 800 480 -src_rect 0 0 800 480 -out_fb 0 480 800 -dst_rect 0 0 480 800 -src_file /tmp/src_800x480_rgb.bin -dst_file /tmp/en_src_480x800_bgra888_rotate_90.bin

原图:
QQ截图20240701153922.png

旋转90°:
QQ截图20240701153827.png

#163 Re: 全志 SOC » 外接高速adc的问题 » 2024-07-01 11:10:39

可以用摄像头的 DVP CSI或者 MIPI CSI 接口

#164 Re: 全志 SOC » 全志T113 Linux G2D学习 » 2024-06-30 11:24:53

#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

QQ截图20240630112430.png

#165 Re: 全志 SOC » 全志T113 Linux G2D学习 » 2024-06-29 21:23:33

连续测试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
#

#166 全志 SOC » 全志T113 Linux G2D学习 » 2024-06-29 21:19:22

memory
回复: 5

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

#167 Re: 全志 SOC » 全志v3s的dts怎么配置pwm0,让其管脚PB4在系统初始化阶段不是3.3v高电平 » 2024-06-26 17:06:08

@游侠TT

linux dts 把pwm部分屏蔽,看进入linux之后是否一直保持uboot的pwm状态。

如果是,

则改下Linux里面PWM的驱动初始化代码,读出io寄存器复用状态,如果是pwm复用,继续读出pwm的频率与占空比。

#168 Re: 全志 SOC » d1s/t113s如何旋转屏幕?尝试了g2d,但是需要手动调用接口,但是qt如何调用? » 2024-06-25 21:09:05

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 操作的那些变量的出处了。

#169 Re: 全志 SOC » d1s/t113s如何旋转屏幕?尝试了g2d,但是需要手动调用接口,但是qt如何调用? » 2024-06-24 18:13:22

QQ截图20240624181110.png

确实啊,把fb0数据导出来,可以明显看到双缓冲切换的时候撕裂的画面

cat /dev/fb0 > /tmp/480x1600_bgra8888.bin

adb pull /tmp/480x1600_bgra8888.bin

#170 Re: 全志 SOC » F133B DDR初始化 » 2024-06-23 10:06:18

被 SigamaStar 毒打之后,就知道全志为什么香了

#171 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » Linux 驱动开发 / fbdev 双缓存 / 快速入门 , 转 » 2024-06-21 16:35:24

三、编写支持 double buffer 的 fbdev 应用
驱动支持 double buffer 后,还得在应用程序里将其使用起来。

先梳理一下思路:

检查是否支持 double buffer;

使能 double buffer:FBIOPUT_VSCREENINFO;

更新 buffer 里数据;

通知驱动切换 buffer:FBIOPAN_DISPLAY;

等待切换完成:FBIO_WAITFORVSYNC;

实例分析:show_color.c

static int fd_fb;
static struct fb_fix_screeninfo fix;    /* Current fix */
static struct fb_var_screeninfo var;    /* Current var */
static int screen_size;
static unsigned char *fb_base;
static unsigned int line_width;
static unsigned int pixel_width;
 
int main(int argc, char **argv)
{
    int i;
    int ret;
    int buffer_num;
    int buf_idx = 1;
    char *buf_next;
    unsigned int colors[] = {0x00FF0000, 0x0000FF00, 0x000000FF, 0, 0x00FFFFFF};  /* 0x00RRGGBB */
    struct timespec time;
 
    ...
    
    fd_fb = open("/dev/fb0", O_RDWR);
    ioctl(fd_fb, FBIOGET_FSCREENINFO, &fix);
    ioctl(fd_fb, FBIOGET_VSCREENINFO, &var);
 
    line_width  = var.xres * var.bits_per_pixel / 8;
    pixel_width = var.bits_per_pixel / 8;
    screen_size = var.xres * var.yres * var.bits_per_pixel / 8;
 
    // 1. 获得 buffer 个数
    buffer_num = fix.smem_len / screen_size;
    printf("buffer_num = %d\n", buffer_num);
    
    fb_base = (unsigned char *)mmap(NULL , fix.smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fd_fb, 0);
    if (fb_base == (unsigned char *)-1) {
        printf("can't mmap\n");
        return -1;
    }
 
    if ((argv[1][0] == 's') || (buffer_num == 1)) {
        printf("single buffer:\n");
        while (1) {
            for (i = 0; i < sizeof(colors)/sizeof(colors[0]); i++) {
                lcd_draw_screen(fb_base, colors[i]);
                nanosleep(&time, NULL);
            }
        }
    } else {
        printf("double buffer:\n");
 
        // 2. 使能多 buffer
        var.yres_virtual = buffer_num * var.yres;
        ioctl(fd_fb, FBIOPUT_VSCREENINFO, &var);
 
        while (1) {
            for (i = 0; i < sizeof(colors)/sizeof(colors[0]); i++) {
 
                // 3. 更新 buffer 里的数据
                buf_next =  fb_base + buf_idx * screen_size;
                lcd_draw_screen(buf_next, colors[i]);
 
                // 4. 通知驱动切换 buffer
                var.yoffset = buf_idx * var.yres;
                ret = ioctl(fd_fb, FBIOPAN_DISPLAY, &var);
                if (ret < 0) {
                    perror("ioctl() / FBIOPAN_DISPLAY");
                }
 
                // 5. 等待帧同步完成
                ret = 0;
                ioctl(fd_fb, FBIO_WAITFORVSYNC, &ret);
                if (ret < 0) {
                    perror("ioctl() / FBIO_WAITFORVSYNC");
                }
                
                buf_idx = !buf_idx;
                nanosleep(&time, NULL);
            }
        }
        
    }
    
    munmap(fb_base , screen_size);
    close(fd_fb);
    
    return 0;   
}

运行:
$ ./show_color single
buffer_num = 1
single buffer:

$ ./show_color double
buffer_num = 2
double buffer:
该程序会在屏幕上循环的显示不同的颜色。

当传入 "single" 参数时,使用单 buffer,可见撕裂。
当传入 "double" 参数时,使用双 buffer,不再撕裂。

#173 Re: 全志 SOC » t113驱动spi屏幕,tplayerdemo播放视频有声音没画面 » 2024-06-21 15:12:34

SPI显示屏不支持分层显示,所以tplayerdemo就不支持了

#174 Re: 全志 SOC » d1s/t113s如何旋转屏幕?尝试了g2d,但是需要手动调用接口,但是qt如何调用? » 2024-06-21 11:16:27

如果直接用 Qt5 自带的软旋转,画面撕裂太严重了,Qt5默认都不支持双缓冲,

得把 FBIOPAN_DISPLAY 添加到 qlinuxfbscreen.cpp 才行。

#176 Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » QT5.5.1 嵌入式平台 鼠标键盘不能热插拔问题解决,转 » 2024-06-19 09:19:31

memory
回复: 1

https://blog.csdn.net/shengzhadon/article/details/51454703

https://blog.csdn.net/shengzhadon/article/details/51455361

修改:qdevicediscovery_hotplug.cpp

/****************************************************************************
**
** usb input device hot plug function
** by sn02241 
**
****************************************************************************/
 
#include "qdevicediscovery_hotplug_p.h"
 
#include <QCoreApplication>
#include <QObject>
#include <QHash>
#include <QDir>
#include <QLoggingCategory>
#include <QtCore/private/qcore_unix_p.h>
 
#include <linux/input.h>
#include <fcntl.h>
 
/* android (and perhaps some other linux-derived stuff) don't define everything
 * in linux/input.h, so we'll need to do that ourselves.
 */
#ifndef KEY_CNT
#define KEY_CNT                 (KEY_MAX+1)
#endif
#ifndef REL_CNT
#define REL_CNT                 (REL_MAX+1)
#endif
#ifndef ABS_CNT
#define ABS_CNT                 (ABS_MAX+1)
#endif
 
#define LONG_BITS (sizeof(long) * 8 )
#define LONG_FIELD_SIZE(bits) ((bits / LONG_BITS) + 1)
 
static bool testBit(long bit, const long *field)
{
    return (field[bit / LONG_BITS] >> bit % LONG_BITS) & 1;
}
 
QT_BEGIN_NAMESPACE
 
Q_LOGGING_CATEGORY(lcDD, "qt.qpa.input")
 
QDeviceDiscovery *QDeviceDiscovery::create(QDeviceTypes types, QObject *parent)
{
    return new QDeviceDiscoveryHotPlug(types, parent);
}
 
QDeviceDiscoveryHotPlug::QDeviceDiscoveryHotPlug(QDeviceTypes types, QObject *parent)
    : QDeviceDiscovery(types, parent),m_fileWatcher(0)
{
    // 初始化文件监听器
    m_fileWatcher = new QFileSystemWatcher(this);
    m_fileWatcher->addPath(QString::fromLatin1(QT_EVDEV_DEVICE_PATH));// "dev/input/"
    connect(m_fileWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(handleHotPlugWatch(QString)));
 
    qCDebug(lcDD) << "hotplug device discovery for type" << types;
}
 
QStringList QDeviceDiscoveryHotPlug::scanConnectedDevices()
{
    m_devices.clear();
    QDir dir;
    dir.setFilter(QDir::System);
 
    // check for input devices
    if (m_types & Device_InputMask) {
        dir.setPath(QString::fromLatin1(QT_EVDEV_DEVICE_PATH));
        foreach (const QString &deviceFile, dir.entryList()) {
            QString absoluteFilePath = dir.absolutePath() + QString::fromLatin1("/") + deviceFile;
            if (checkDeviceType(absoluteFilePath))
                m_devices << absoluteFilePath;
        }
    }
 
    // check for drm devices
    if (m_types & Device_VideoMask) {
        dir.setPath(QString::fromLatin1(QT_DRM_DEVICE_PATH));
        foreach (const QString &deviceFile, dir.entryList()) {
            QString absoluteFilePath = dir.absolutePath() + QString::fromLatin1("/") + deviceFile;
            if (checkDeviceType(absoluteFilePath))
                m_devices << absoluteFilePath;
        }
    }
 
    qCDebug(lcDD) << "Found matching devices" << m_devices;
 
    return m_devices;
}
 
bool QDeviceDiscoveryHotPlug::checkDeviceType(const QString &device)
{
    bool ret = false;
    int fd = QT_OPEN(device.toLocal8Bit().constData(), O_RDONLY | O_NDELAY, 0);
    if (!fd) {
        qWarning() << "Device discovery cannot open device" << device;
        return false;
    }
 
    long bitsKey[LONG_FIELD_SIZE(KEY_CNT)];
    if (ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(bitsKey)), bitsKey) >= 0 ) {
        if (!ret && (m_types & Device_Keyboard)) {
            if (testBit(KEY_Q, bitsKey)) {
                qCDebug(lcDD) << "Found keyboard at" << device;
                ret = true;
            }
        }
 
        if (!ret && (m_types & Device_Mouse)) {
            long bitsRel[LONG_FIELD_SIZE(REL_CNT)];
            if (ioctl(fd, EVIOCGBIT(EV_REL, sizeof(bitsRel)), bitsRel) >= 0 ) {
                if (testBit(REL_X, bitsRel) && testBit(REL_Y, bitsRel) && testBit(BTN_MOUSE, bitsKey)) {
                    qCDebug(lcDD) << "Found mouse at" << device;
                    ret = true;
                }
            }
        }
 
        if (!ret && (m_types & (Device_Touchpad | Device_Touchscreen))) {
            long bitsAbs[LONG_FIELD_SIZE(ABS_CNT)];
            if (ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(bitsAbs)), bitsAbs) >= 0 ) {
                if (testBit(ABS_X, bitsAbs) && testBit(ABS_Y, bitsAbs)) {
                    if ((m_types & Device_Touchpad) && testBit(BTN_TOOL_FINGER, bitsKey)) {
                        qCDebug(lcDD) << "Found touchpad at" << device;
                        ret = true;
                    } else if ((m_types & Device_Touchscreen) && testBit(BTN_TOUCH, bitsKey)) {
                        qCDebug(lcDD) << "Found touchscreen at" << device;
                        ret = true;
                    } else if ((m_types & Device_Tablet) && (testBit(BTN_STYLUS, bitsKey) || testBit(BTN_TOOL_PEN, bitsKey))) {
                        qCDebug(lcDD) << "Found tablet at" << device;
                        ret = true;
                    }
                }
            }
        }
 
        if (!ret && (m_types & Device_Joystick)) {
            long bitsAbs[LONG_FIELD_SIZE(ABS_CNT)];
            if (ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(bitsAbs)), bitsAbs) >= 0 ) {
                if ((m_types & Device_Joystick)
                    && (testBit(BTN_A, bitsKey) || testBit(BTN_TRIGGER, bitsKey) || testBit(ABS_RX, bitsAbs))) {
                    qCDebug(lcDD) << "Found joystick/gamepad at" << device;
                    ret = true;
                }
            }
        }
    }
 
    if (!ret && (m_types & Device_DRM) && device.contains(QString::fromLatin1(QT_DRM_DEVICE_PREFIX)))
        ret = true;
 
    QT_CLOSE(fd);
    return ret;
}
 
void QDeviceDiscoveryHotPlug::handleHotPlugWatch(const QString &path)
{
	if(path.compare(QString::fromLatin1(QT_EVDEV_DEVICE_PATH)))
	{
		return;
	}
 
	QStringList devices;
 
	// 先移除原来的设备
    foreach (const QString &device, m_devices)
        deviceRemoved(device);
 
	// 获取现在的设备
	// 注,这里获取的设备已经经过过滤,原因是在对该类进行实例化的时候
	// 已经传进了筛选参数,如:QDeviceDiscovery::Device_Keyboard
	devices = this->scanConnectedDevices();
 
	// 重新添加设备
    foreach (const QString &device, devices)
        deviceDetected(device);
}
 
QT_END_NAMESPACE

修改:qdevicediscovery_hotplug_p.h

/****************************************************************************
**
** usb input device hot plug function
** by sn02241
**
****************************************************************************/
 
#ifndef QDEVICEDISCOVERY_HOTPLUG_H
#define QDEVICEDISCOVERY_HOTPLUG_H
 
//
//  W A R N I N G
//  -------------
//
// This file is not part of the Qt API.  It exists purely as an
// implementation detail.  This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
//
 
#include "qdevicediscovery_p.h"
#include <QFileSystemWatcher>
#include <QStringList>
 
QT_BEGIN_NAMESPACE
 
class QDeviceDiscoveryHotPlug : public QDeviceDiscovery
{
    Q_OBJECT
 
public:
    QDeviceDiscoveryHotPlug(QDeviceTypes types, QObject *parent = 0);
    QStringList scanConnectedDevices() Q_DECL_OVERRIDE;
 
private slots:
    void handleHotPlugWatch(const QString &path);
 
private:
    bool checkDeviceType(const QString &device);
 
    // 用于检测鼠标键盘热插拔
    QFileSystemWatcher *m_fileWatcher;
 
	// 原有的设备列表
    QStringList m_devices;
};
 
QT_END_NAMESPACE
 
#endif // QDEVICEDISCOVERY_HOTPLUG_H

#179 Re: 全志 SOC » Nordic NRF52832 DFU 固件升级 UartSecureDFU » 2024-06-16 20:03:54

Linux下直接make就可以编译,然后用这个命令就可以运行:

sudo ./UartSecureDFU ttyUSB0 dfu_usb.zip -v -v -v


2008824069608861616c5dff22388f87.png

#180 Re: 全志 SOC » Nordic NRF52832 DFU 固件升级 UartSecureDFU » 2024-06-16 19:17:18

eb1765605a39d4df954c35f48baba6e3.png

记得设置这个地方,如果选“Unicode字符集”会出现打开COM端口错误。

#183 Re: 全志 SOC » 全志H618 固件用什么软件可以修改? » 2024-06-15 16:29:55

@yo5201314

感谢分享


我大胆猜一下,大概是Android4之后的版本为了保护隐私,MAC地址改成了非固定,如果要固定MAC地址,Android编译的时候需要修改一个MACRO

#184 Re: 全志 SOC » 全志H618 固件用什么软件可以修改? » 2024-06-15 15:41:05

yo5201314 说:

@fuco98
我發mail給你了,有收到了嗎?
試著一個版本的固件 畫面如下
https://whycan.com/files/members/14659/截圖.jpg

兄弟牛啊!

什么原理,是不是反编译?

#185 Re: 全志 SOC » qt5mqtt-5.15.2 自带 simpleclient 没有 ssl 支持,添加几行代码支持一下 » 2024-06-14 17:16:47

#if 0
    const QByteArray pem = R"(-----BEGIN CERTIFICATE-----
    MIIC8DCCAlmgAwIBAgIJAOD63PlXjJi8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
    VQQGEwJHQjEXMBUGA1UECAwOVW5pdGVkIEtpbmdkb20xDjAMBgNVBAcMBURlcmJ5
    MRIwEAYDVQQKDAlNb3NxdWl0dG8xCzAJBgNVBAsMAkNBMRYwFAYDVQQDDA1tb3Nx
    dWl0dG8ub3JnMR8wHQYJKoZIhvcNAQkBFhByb2dlckBhdGNob28ub3JnMB4XDTEy
    MDYyOTIyMTE1OVoXDTIyMDYyNzIyMTE1OVowgZAxCzAJBgNVBAYTAkdCMRcwFQYD
    VQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwGA1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1v
    c3F1aXR0bzELMAkGA1UECwwCQ0ExFjAUBgNVBAMMDW1vc3F1aXR0by5vcmcxHzAd
    BgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hvby5vcmcwgZ8wDQYJKoZIhvcNAQEBBQAD
    gY0AMIGJAoGBAMYkLmX7SqOT/jJCZoQ1NWdCrr/pq47m3xxyXcI+FLEmwbE3R9vM
    rE6sRbP2S89pfrCt7iuITXPKycpUcIU0mtcT1OqxGBV2lb6RaOT2gC5pxyGaFJ+h
    A+GIbdYKO3JprPxSBoRponZJvDGEZuM3N7p3S/lRoi7G5wG5mvUmaE5RAgMBAAGj
    UDBOMB0GA1UdDgQWBBTad2QneVztIPQzRRGj6ZHKqJTv5jAfBgNVHSMEGDAWgBTa
    d2QneVztIPQzRRGj6ZHKqJTv5jAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA
    A4GBAAqw1rK4NlRUCUBLhEFUQasjP7xfFqlVbE2cRy0Rs4o3KS0JwzQVBwG85xge
    REyPOFdGdhBY2P1FNRy0MDr6xr+D2ZOwxs63dG1nnAnWZg7qwoLgpZ4fESPD3PkA
    1ZgKJc2zbSQ9fCPxt2W3mdVav66c6fsb7els2W2Iz7gERJSX
    -----END CERTIFICATE-----
    )";

    QSslCertificate cert = QSslCertificate(pem, QSsl::Pem);
    QSslSocket::addDefaultCaCertificate(cert);
#endif

如果用的是阿里云申请的免费或者收费CA证书,这段可以不用。

#186 Re: 全志 SOC » qt5mqtt-5.15.2 自带 simpleclient 没有 ssl 支持,添加几行代码支持一下 » 2024-06-14 09:37:56

ubuntu 编译出现 : QtCore/private/qobject_p.h: No such file or directory

解决方法: sudo apt install qtbase5-private-dev

pro 工程文件添加:QT   +=   core-private

项目地址: https://github.com/qt/qtmqtt

#187 Re: ESP32/ESP8266 » 计划做一款基于ESP32 S3的调试工具,具备工业485、CAN调试功能 » 2024-06-12 18:43:23

@Leotian
应该收到,SN65HVD23X transceiver就是传输层芯片,T113-S3也是要外挂CAN PHY芯片。

#190 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 请问mosqutto服务器 8883端口,绑定多个ssl证书吗? » 2024-06-10 11:51:55

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>mqtt.min.js 测试</title>
    <style>
        .divblock {
            display: inline-block;
            padding: 20px;
            border: 2px solid #00ff00;
            border-radius: 6px;
            margin: 20px 0px;
            user-select: none;
        }

        .divblock:active {
            background-color: #455072;
            border: 1px solid #0044ff;
        }
    </style>
    <script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script> <!-- 引处MQTT.MINI.JS库文件 -->
</head>


<body>
    <div>4路开关模块</div>
    <div class="divblock" onclick="Onmqtttest()">mqtt 发送</div>
</body>

<script>
    // Create a client instance
    var options = {
		//mqtt客户端的id,这里面应该还可以加上其他参数,具体看官方文档
		clientId: 'mqttjs_' + (Math.random() * 1000000).toString(),
		username: "player",
		password: "player",
		reconnectPeriod: 1000, // 1000毫秒,设置为 0 禁用自动重连,两次重新连接之间的间隔时间
		connectTimeout: 30 * 1000, // 30秒,连接超时时间
    }
    //console.log(options.clientId);

    //浏览器采用websocket协议,host主机地址为192.168.0.200,端口为9001,路径为/mqtt
    var client = mqtt.connect("wss://player2.mqtt.memory.com:8084/", options) // you add a ws:// url here

    //建立连接
    client.on('connect', function () {
        console.log("connect success!")
        //订阅主题 /topic/player
        client.subscribe('/topic/player', function (err) {
            if (!err) {
                console.log("subscribe success!")
            } else {
                //打印错误
                console.log(err)
            }
        })
    })

    //如果连接错误,打印错误
    client.on('error', function (err) {
        console.log(err)
        client.end()
    })

    //如果client订阅主题成功,那么这里就是当接收到自己订阅主题的处理逻辑
    client.on('message', function (topic, message) {
        // message is Buffer,此处就是打印消息的具体内容
        console.log('-> ' + message.toString())
    })



    // 用户程序点击事件
    function Onmqtttest() {
        message = "message from browser with websocket"; // 消息内容
        //发布主题presence,消息内容为Hello mqtt,订阅与推送一样自发自收
        client.publish('/topic/player', 'Hello mqtt ' + message)
    }
</script>

</html>

再来一个简单的浏览器版本的 MQTT测试demo

#191 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 请问mosqutto服务器 8883端口,绑定多个ssl证书吗? » 2024-06-09 17:10:11

查了一下,mosqutto做不到,只能用其他办法做到:



方法一:使用 SNI(Server Name Indication)与代理服务器
最常用的方法是利用反向代理服务器(如 Nginx、HAProxy 或 Apache)来实现 SNI。SNI 允许在同一个 IP 地址和端口上运行多个 HTTPS 服务,每个服务有其独立的 SSL 证书。你可以在代理服务器上配置多个虚拟主机,每个虚拟主机都有自己的 SSL 证书。然后,代理服务器将连接转交给后端的 Mosquitto 服务器。

Nginx 示例配置:

server {
    listen 8883 ssl;
    server_name example1.com;
    ssl_certificate /etc/nginx/ssl/example1.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example1.com.key;
    proxy_pass mosquitto://localhost:8883;
}

server {
    listen 8883 ssl;
    server_name example2.com;
    ssl_certificate /etc/nginx/ssl/example2.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example2.com.key;
    proxy_pass mosquitto://localhost:8883;
}

在上述配置中,Nginx 监听 8883 端口,接收来自不同域名的 SSL 连接,并基于 SNI 选择正确的 SSL 证书。然后,Nginx 将解密后的连接转发给 Mosquitto 的 8883 端口。











方法二:使用 Mosquitto 多实例
另一种可能的方法是运行多个 Mosquitto 实例,每个实例监听不同的端口,但这些端口需要映射到同一公共端口(如 8883)。这可以通过在服务器上使用 iptables 或类似工具进行端口转发来实现。然而,这种方法可能增加管理和维护的复杂性,因为它涉及到管理多个 Mosquitto 实例及其各自的 SSL 证书。

#193 全志 SOC » qt5mqtt-5.15.2 自带 simpleclient 没有 ssl 支持,添加几行代码支持一下 » 2024-06-09 12:17:24

memory
回复: 2

参考: https://stackoverflow.com/questions/57829480/how-do-i-perform-a-secure-mqtt-using-qtmqtt-and-ssl

    const QByteArray pem = R"(-----BEGIN CERTIFICATE-----
    MIIC8DCCAlmgAwIBAgIJAOD63PlXjJi8MA0GCSqGSIb3DQEBBQUAMIGQMQswCQYD
    VQQGEwJHQjEXMBUGA1UECAwOVW5pdGVkIEtpbmdkb20xDjAMBgNVBAcMBURlcmJ5
    MRIwEAYDVQQKDAlNb3NxdWl0dG8xCzAJBgNVBAsMAkNBMRYwFAYDVQQDDA1tb3Nx
    dWl0dG8ub3JnMR8wHQYJKoZIhvcNAQkBFhByb2dlckBhdGNob28ub3JnMB4XDTEy
    MDYyOTIyMTE1OVoXDTIyMDYyNzIyMTE1OVowgZAxCzAJBgNVBAYTAkdCMRcwFQYD
    VQQIDA5Vbml0ZWQgS2luZ2RvbTEOMAwGA1UEBwwFRGVyYnkxEjAQBgNVBAoMCU1v
    c3F1aXR0bzELMAkGA1UECwwCQ0ExFjAUBgNVBAMMDW1vc3F1aXR0by5vcmcxHzAd
    BgkqhkiG9w0BCQEWEHJvZ2VyQGF0Y2hvby5vcmcwgZ8wDQYJKoZIhvcNAQEBBQAD
    gY0AMIGJAoGBAMYkLmX7SqOT/jJCZoQ1NWdCrr/pq47m3xxyXcI+FLEmwbE3R9vM
    rE6sRbP2S89pfrCt7iuITXPKycpUcIU0mtcT1OqxGBV2lb6RaOT2gC5pxyGaFJ+h
    A+GIbdYKO3JprPxSBoRponZJvDGEZuM3N7p3S/lRoi7G5wG5mvUmaE5RAgMBAAGj
    UDBOMB0GA1UdDgQWBBTad2QneVztIPQzRRGj6ZHKqJTv5jAfBgNVHSMEGDAWgBTa
    d2QneVztIPQzRRGj6ZHKqJTv5jAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA
    A4GBAAqw1rK4NlRUCUBLhEFUQasjP7xfFqlVbE2cRy0Rs4o3KS0JwzQVBwG85xge
    REyPOFdGdhBY2P1FNRy0MDr6xr+D2ZOwxs63dG1nnAnWZg7qwoLgpZ4fESPD3PkA
    1ZgKJc2zbSQ9fCPxt2W3mdVav66c6fsb7els2W2Iz7gERJSX
    -----END CERTIFICATE-----
    )";

    QSslCertificate cert = QSslCertificate(pem, QSsl::Pem);
    QSslSocket::addDefaultCaCertificate(cert);

    m_client = new QMqttClient(this);

    m_client->setHostname(ui->lineEditHost->text());
    m_client->setPort(ui->spinBoxPort->value());
    m_client->setUsername("user"); //用户名
    m_client->setPassword("password");//密码

m_client->connectToHost();
改为 ==>
m_client->connectToHostEncrypted();


下载:simplemqttclient.tar


QQ截图20240609121149.png

#195 全志 SOC » T113 Busybox ls 支持中文的解决办法 » 2024-06-06 08:59:26

memory
回复: 0

在嵌入式T113 Linux中,在终端中若输入ls命令,显示乱码等问题,可通过以下步骤解决。

一、配置内核

File systems  --->
	*- Native language support  --->  
	<* >   Simplified Chinese charset (CP936, GB2312)  
  		<* >   NLS UTF-8   
File systems  ---> 
DOS/FAT/NT Filesystems  ---> 
              <*> MSDOS fs support 
              <*> VFAT (Windows-95) fs support 
             (936) Default codepage for FAT    
             (cp936) Default iocharset for FAT   		/* 括弧中的值可以是utf8或cp936,可按下H查看帮助说明 */

二、设置系统的 LANG 为 zh_CN.UTF-8
可在/etc/profile文件中添加

export LANG=zh_CN.UTF-8

三、挂载U盘时指定字符编码

mount -t vfat -o codepage=936,iocharset=utf8  /dev/sda1 /mnt

若按照上面的选项配置内核,不使用-o选项挂载,则默认就是内核中设定的值,根据实际情况设定。

四、设置secureCRT

设置secureCRT的编码格式为utf-8



五、配置修改busybox

从busybox1.17.0以后,对ls命令不做修改是无法显示中文的。就算是内核设置了支持中文的话,在shell下用ls命令也是无法显示中文的,这是因为busybox1.17.0以后版本对中文的支持进行了限制。现在就来讲讲如何修改让busybox1.17.0以上版本支持中文,要想让busybox1.17.0以上支持中文,需要修改两个文件:printable_string.c以及unicode.c 。

分析源码发现busybox将字符大于0x7f的替换为?。

a.修改busybox源码目录下的./libbb/printable_string.c
先找到这样一段:

  if (c < ' ')
  break;
    if (c >= 0x7f)
   break;
  s++;

注释掉某两行(34,35行):

/* if (c >= 0x7f) */
/* break; */

然后找这样一段(48行):

    unsigned char c = *d;
    if (c == '\0')
     break;
   if (c < ' ' || c >= 0x7f)
     *d = '?';
    d++;

把 if (c < ' ' || c >= 0x7f)  改成   if (c < ' ')

a.修改busybox源码目录下的./libbb/unicode.c


在配置里,如果Support Unicode选上的:

   
Busybox Settings->
General Configuration->  
[*] Enable locale support (system needs locale for this to work)         
[*] Support Unicode                                                      
[*] Support for --long-options


那么这样还需要修改一个文件,这个文件就是:unicode.c。如果不修改这个文件,ls命令也是无法显示出中文的。
在函数unicode_conv_to_printable2中

将*d++ = (c >= ' ' && c < 0x7f) ? c : '?'; 修改为*d++ = (c >= ' ') ? c : '?';

if(c<'' || c>=0x7f)
    *d='?';
修改为
if(c<'')
*d='?';

总之将所有对0x7f的判断条件去掉。


原文链接:https://blog.csdn.net/qpwyj/article/details/41985797

#196 Re: 全志 SOC » 关于全志视频播放器的旋转 » 2024-06-01 17:45:44

wupaul2001 说:

V3S绝对有G2D

可是手册没有写

#198 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » ssh 登录服务器,明明密钥是正确的,确提示 invalid format,终于找到问题了 » 2024-05-30 12:15:54

memory
回复: 2
#ssh 139.224.2xx.xx -p 8822 -l root
Load key "/c/Users/xxx/.ssh/id_rsa.xxx.tunnel.key": invalid format
root@139.224.2xx.xx: Permission denied (publickey,keyboard-interactive).

QQ截图20240530121519.png

原来是换行符不同~!

#199 Re: 全志 SOC » T113 tplayerdemo 播放视频,放着放着就挂了 » 2024-05-29 10:51:34

但是这狗屎一样的全志系统,出了重启别无他法,文件系统挂了关你播放器啥事,播放器挂了系统只能重启,垃圾

#200 Re: 全志 SOC » T113 tplayerdemo 播放视频,放着放着就挂了 » 2024-05-29 10:49:09

发现是电脑里面的U盘挂了,CRC32读文件出现输入输出错误

84c1f21799347291eb4ed2a567328fd.png

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn