3

是否有任何默认机制来启用调试 v4l2 驱动程序。基本上我想通过设置 /d 来检查动态调试之类的东西。make 文件中的编译时间标志也很好。

目前,我设置如下,但没有得到太多信息。

echo -n 0xFFFF>/sys/module/videobuf2_core/parameters/debug

谁能帮我获取详细的 v4l2 日志?

4

2 回答 2

2

看一下代码:作为示例,文件 drivers/media/v4l2-core/v4l2-ioctl.c 可能是更有趣的文件之一,因为它向您展示了一些用户/内核空间交互。

在此文件中,您会看到很多pr_contpr_info和其他内容。虽然printk总是被打印,但其他人只会做一些事情,如果启用的话。有关这方面的所有详细信息,请访问http://lwn.net/Articles/487437/

讨厌的方法是用 printk 替换一些 pr_cont 或 pr_info。您甚至可以使用#define 来执行此操作。如果您只想启用其中的 3 或 4 个,甚至添加您自己的特殊功能,这可能是最快的方法。

好的方法是查看系统被认为是如何使用的。如果您可以启用动态调试,您可以尝试,就像这里很好地描述了https://lwn.net/Articles/434833/一样。

最后,最简单的方法可能是查看内核配置。也许您已经知道源目录中的命令make menuconfig。您可以编辑所有不同的设置,就像在 vi 中一样,您可以使用 / 进行搜索。在特定模块旁边,您通常还可以启用或禁用调试选项。如果这还不够,您可以随时在 .config 文件中更改内核的全局调试级别。

您可能感兴趣的一个特定标志是

CONFIG_VIDEO_ADV_DEBUG
Say Y here to enable advanced debugging functionality on some
V4L devices.
In doubt, say N.

Symbol: VIDEO_ADV_DEBUG [=y]
Prompt: Enable advanced debug functionality on V4L2 drivers
  Location:
    -> Device Drivers
      -> Multimedia support (MEDIA_SUPPORT [=y]) 
  Defined at drivers/media/v4l2-core/Kconfig:11
  Depends on: MEDIA_SUPPORT [=y]

祝你好运

于 2014-06-22T10:21:02.160 回答
1

请参考这里的官方文档:

为 /sys/class/video4linux// 中的每个视频、vbi、无线电或 swradio 设备创建的“dev_debug”属性允许您启用文件操作的日志记录。

我在真实配置上对此进行了测试,它可以工作(它会打印所有信息!),请参见下面的命令:

echo 0x1f > /sys/class/video4linux/video1/dev_debug 
于 2020-10-15T10:47:38.673 回答