akmd sigevent 11 during boot
6-06 03:00:20.249 F/libc ( 233): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xffffffff in tid 233 (akmd)
06-06 03:00:20.518 I/DEBUG ( 227): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-06 03:00:20.518 I/DEBUG ( 227): Build fingerprint: 'rockchip/bzt16wifi02/rk312x:5.1.1/1.0.1/1039-05231027:user/release-keys'
06-06 03:00:20.519 I/DEBUG ( 227): Revision: '0'
06-06 03:00:20.519 I/DEBUG ( 227): ABI: 'arm'
06-06 03:00:20.519 I/DEBUG ( 227): pid: 233, tid: 233, name: akmd >>> /system/bin/akmd <<<
06-06 03:00:20.519 I/DEBUG ( 227): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xffffffff
06-06 03:00:20.538 I/DEBUG ( 227): r0 ffffffff r1 2f84b02d r2 2f84b02d r3 2f84b02d
06-06 03:00:20.538 I/DEBUG ( 227): r4 ffffffff r5 b6fc8f8c r6 befe58e4 r7 00000001
06-06 03:00:20.538 I/DEBUG ( 227): r8 b6fc78b1 r9 00000001 sl b6fa1df4 fp 00000001
06-06 03:00:20.538 I/DEBUG ( 227): ip b6fc8ff4 sp befe5480 lr b6fc4311 pc b6f4aa50 cpsr a0070030
06-06 03:00:20.539 I/DEBUG ( 227):
06-06 03:00:20.539 I/DEBUG ( 227): backtrace:
06-06 03:00:20.539 I/DEBUG ( 227): #00 pc 00016a50 /system/lib/libc.so (timer_delete+3)
06-06 03:00:20.539 I/DEBUG ( 227): #01 pc 0000230d /system/bin/akmd
06-06 03:00:20.539 I/DEBUG ( 227): #02 pc 00000a1f /system/bin/akmd
06-06 03:00:20.539 I/DEBUG ( 227): #03 pc 00012df9 /system/lib/libc.so (__libc_init+44)
06-06 03:00:20.539 I/DEBUG ( 227): #04 pc 00000b08 /system/bin/akmd
Looking at the backtrace, shows that the calls to timer_delete appear to be getting passed an invalid timer handle.
mstevens@lt-mstevens-mac2:rk312x$ cd hardware/rockchip/sensor/
-------------------------------------------------------------------------------------------------------------------------------------- 10:14:08
mstevens@lt-mstevens-mac2:sensor$ sgrep timer_delete
./normal/akm8975/Acc_mma8452.c:170: timer_delete(sDisableAccTimer);
./normal/akm8975/Acc_mma8452.c:191: timer_delete(sDisableAccTimer);
./st/akm09911/Acc_mma8452.c:174: timer_delete(sDisableAccTimer);
./st/akm09911/Acc_mma8452.c:195: timer_delete(sDisableAccTimer);
./st/akm8963/Acc_mma8452.c:174: timer_delete(sDisableAccTimer);
./st/akm8963/Acc_mma8452.c:195: timer_delete(sDisableAccTimer);
./st/akm8975/Acc_mma8452.c:174: timer_delete(sDisableAccTimer);
./st/akm8975/Acc_mma8452.c:195: timer_delete(sDisableAccTimer);
Next step is reverse engineer the build system to determine which of the accelerometer sensor sources are getting used :
normal , st/akm09911, st/akm8963, st/akm8975
Resolved :
device/rockchip/common/BoardConfig.mk:209 sets BOARD_SENSOR_ST ?= true
does not set add'l BOARD_SENSOR_ props
=> hardware/rockchip/sensor/st/Android.mk:69-76
include ../akm8975/Android_akmd8975.mk
=> st/akm8975
is the sensor code in use.
then modify appropriately to address sigevent