Uso el firmware CyanogenMod en mi teléfono (CM7.2 en un HTC Wildfire) y cuando tomo fotos a veces se reinicia. Descubrí que ocurre un kernel ups debido a una desreferencia de puntero nulo en el kernel.
Ya presenté un informe de error en el rastreador para el proyecto CyanogenMod.
¿ Puede alguien ayudarme a entender el Kernel Oops en last_ksmg ?
Si lo necesita, también hay un logcat .
He echado un vistazo a kmsg y logcat,
El logcat estaba mostrando esto:
[ 01-13 13:14:11.036 138:0xc46 I/mm-camera ]Open Device node : /dev/msm_camera/frame0
[ 01-13 13:14:11.036 138:0xc46 E/mm-camera ]Got exception but camframe_exit == 0!
[ 01-13 13:14:11.046 138:0xc46 E/QualcommCameraHardware ]ignoring preview callback--camera has been stopped
[ 01-13 13:14:11.196 138:0xc04 E/mm-camera 7x-vfe ]Received VFE start ACK!!! This is a user preview start.
[ 01-13 13:14:11.196 138:0x8a D/QualcommCameraHardware ]startPreview X
[ 01-13 13:14:11.226 2840:0xb18 V/camera ]mJpegCallbackFinishTime = 725ms
[ 01-13 13:14:11.337 2840:0xb18 D/camera ]
.....
[ 01-13 13:14:14.400 138:0x8a D/QualcommCameraHardware ]FLASHLIGHT is ENABLED
[ 01-13 13:14:14.410 138:0x8a D/QualcommCameraHardware ]stopPreviewInternal E: 1
[ 01-13 13:14:14.410 138:0x8a D/QualcommCameraHardware ]cancelAutoFocusInternal E
[ 01-13 13:14:14.410 138:0x8a D/QualcommCameraHardware ]cancelAutoFocusInternal X: 0
[ 01-13 13:14:14.480 138:0xc04 I/mm-camera 7x-vfe ]vfe_process_QDSP_VFETASK_MSG_VFE_STOP_ACK: call mmcamera_vfe_stop_ack_callback()
Me pregunto si hay algún problema con la cámara, como cuestión de interés, al tomar una instantánea con la cámara, generalmente reproduce un clip de audio de sonido de "instantánea" cuando se presiona el botón.
Esto está coincidiendo con el oops:
[ 4264.409912] adsp_pmem_del name JPEGTASK vaddr:0x40e68000 paddr:0x27012000 len:4096
[ 4264.420715] adsp: closing module JPEGTASK
[ 4264.421173] adsp: disabling module JPEGTASK
[ 4264.422485] [KEY] gpiomatrix: key 272, 0-0 (35-42) changed to 1
[ 4264.444183] [KEY] gpiomatrix: key 272, 0-0 (35-42) changed to 1
[ 4264.465789] [KEY] gpiomatrix: key 272, 0-0 (35-42) changed to 1
[ 4264.487548] [KEY] gpiomatrix: key 272, 0-0 (35-42) changed to 1
[ 4264.509094] [KEY] gpiomatrix: key 272, 0-0 (35-42) changed to 1
[ 4264.530853] [KEY] gpiomatrix: key 272, 0-0 (35-42) changed to 1
[ 4264.552398] [KEY] gpiomatrix: key 272, 0-0 (35-42) changed to 1
[ 4264.574157] [KEY] gpiomatrix: key 272, 0-0 (35-42) changed to 1
[ 4264.595733] [KEY] gpiomatrix: key 272, 0-0 (35-42) changed to 1
[ 4264.600616] [AUD][audmgr.c:audmgr_enable] audmgr_enable: ARM9 did not reply to RPC am->state = 2
[ 4264.601013] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 4264.601226] pgd = e321c000
[ 4264.601593] [00000000] *pgd=26037031, *pte=00000000, *ppte=00000000
[ 4264.602294] Internal error: Oops: 817 [#1] PREEMPT
Así que supongo que el reproductor de medios, en algún lugar, entre el hardware de Qualcomm que controla la cámara y la reproducción se estrelló. Estoy haciendo apuestas sobre la propia cámara del núcleo...
Es mejor publicar esto en el foro de CM para ver si se trata de un problema conocido.
[KEY] gpiomatrix: key 272...
relacionada con una entrada clave que toma una instantánea, ya sea haciendo zoom o presionando el botón 'tomar instantánea'... justo antes del ups... :)key 272
la tecla utilizada para tomar una instantánea. Sí, solo quería entender, pero si puede hacer más, puede hacerlo, pero muchas gracias @ ce4 y @ t0mm13b.Eché un vistazo al klog, todo lo que puedes hacer es:
Algunos antecedentes:
definitivamente es un problema del núcleo, eche un vistazo a la línea
[ 4264.601013] No se puede manejar la falta de referencia del puntero NULL del kernel en la dirección virtual 00000000
...
[ 4264.603424] La PC está en audmgr_enable+0x168/0x1c8
Si desea saber más, puede leer en Stackoverflow sobre Cómo diagnosticar un kernel oops y qué es una falta de referencia de puntero nulo del kernel de Linux .
También hay un HowTo disponible aquí .
ce4