es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿El controlador Linux V4L2, video_register_device devuelve un parámetro no válido?

Estoy intentando ejecutar un código tutorial en el controlador v4l2 desde la web.

El sistema operativo es Raspbian 11.

El código de llamada es

int ret1 = video_register_device(&vdev, VFL_TYPE_VIDEO, -1);

Pero en el insmod, devuelve -22 EINVAL.

Comprobé el código fuente en línea de la función, devuelve EINVAL solo si el vfl_type es incorrecto o vdev.release no tiene valor nulo, pero no parece ser la razón (comprobado).

¿El código de ejemplo omite algún paso?

Código completo: [se incluye el código fuente]

dmesg:
“`
[21499.403742] CPU: 0 PID: 9463 Comm: insmod Tainted: G WC O 5.10.63+ #1459
[21499.403752] Hardware name: BCM2835
[21499.403761] Backtrace:
[21499.403813] [] (dump_backtrace) from [] (show_stack+0x20/0x24)
[21499.403831] r7:00000382 r6:00000009 r5:bf26ac78 r4:c0a70ae0
[21499.403853] [] (show_stack) from [] (dump_stack+0x28/0x30)
[21499.403880] [] (dump_stack) from [] (__warn+0xe8/0x110)
[21499.403893] r5:bf26ac78 r4:bf2897a0
[21499.403915] [] (__warn) from [] (warn_slowpath_fmt+0x68/0xd8)
[21499.403932] r7:00000009 r6:bf26ac78 r5:00000382 r4:bf2897a0
[21499.404163] [] (warn_slowpath_fmt) from [] (__video_register_device+0x1494/0x2144 [videodev])
[21499.404186] r9:bf341000 r8:c33599c0 r7:00000000 r6:c0bb3028 r5:ffffffff r4:bf341258
[21499.404405] [] (__video_register_device [videodev]) from [] (vivi_init+0xbc/0x1000 [v4l2step2])
[21499.404427] r10:00000028 r9:bf341000 r8:c33599c0 r7:00000000 r6:c0bb3028 r5:00000000
[21499.404438] r4:bf341200
[21499.404468] []

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El código de error -22 indica que el parámetro pasado a la función es inválido. En este caso, parece que puede haber un problema con los parámetros v4l2_type o vdev.release.

    Sin embargo, ya que ambos han sido revisados y parecen ser correctos, es posible que el ejemplo de código omita algunos pasos. Sería necesario analizar todo el código para determinar si faltan pasos o si hay otros problemas que causen el error.

Comments are closed.