2 votos

Mi teléfono se reinicia después de un kernel oops, ¿qué puedo hacer?

Uso el firmware CyanogenMod en mi teléfono (CM7.2 en un HTC Wildfire) y a veces se reinicia cuando tomo fotos. Descubrí que ocurre un error de kernel debido a una referencia nula en el kernel.

Ya he presentado un informe de error en el rastreador del proyecto CyanogenMod.

¿Alguien puede ayudarme a entender el error del Kernel en last_ksmg?
Si lo necesitas, también hay un logcat.

1voto

Nick Pierpoint Puntos 7976

He echado un vistazo al kmsg y al logcat,

El logcat mostraba 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 un problema con la cámara, por curiosidad, cuando se toma una foto con la cámara, ¿normalmente reproduce un clip de audio con el sonido de "snapshot" cuando se presiona el botón?

Esto coincide con el error:

[ 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 multimedia, en algún lugar, entre el hardware Qualcomm que controla la cámara, y la reproducción, se bloqueó. Estoy apostando al problema en la cámara del kernel en sí...

Es mejor publicar esto en el foro de CM para ver si este es un problema conocido.

0voto

ce4 Puntos 11180

Le eché un vistazo al klog, todo lo que puedes hacer es:

  • buscar un kernel diferente (¿está actualizado tu firmware?)
  • pedir al (¡correcto!) mantenedor/desarrollador que lo arregle
    especialmente si es una compilación no oficial de CyanogenMod, no puedes preguntar al equipo de CM, sino que tienes que preguntar en el foro de donde obtuviste la imagen del firmware.
  • rastrearlo y arreglar el kernel tú mismo (poco probable que hayas preguntado esto aquí)

Algunos antecedentes:
Definitivamente es un problema del kernel, echa un vistazo a la línea

[ 4264.601013] No se puede manejar la referencia nula del puntero del kernel en la dirección virtual 00000000
...
[ 4264.603424] PC está en audmgr_enable+0x168/0x1c8

Si quieres saber más, puedes leer en Stackoverflow sobre Cómo diagnosticar un kernel oops y qué es una referencia nula de puntero del kernel de Linux.
También hay disponible un HowTo aquí.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X