6.4.3. 调试指南

6.4.3.1. 调试开关

参考快速入门 - 编译概述 - Kernel配置,进入kernel的功能配置,可以打开DVP模块的DEBUG选项:

Linux
    Kernel hacking
        ZX Debug
            [*] DVP driver debug

此DEBUG选项打开的影响:

  1. DVP驱动以-O0编译

  2. DVP的pr_dbg()和dev_dbg()调试信息会被编译

在系统运行时,如果要打印pr_dbg()和dev_dbg()信息,还需要调整loglevel为8,两个方法:

  1. 在board.dts中修改bootargs,增加“loglevel=8”

  2. 在板子启动到Linux shell后,执行命令:

echo 8 > /proc/sys/kernel/printk

6.4.3.2. Sysfs 节点

6.4.3.2.1. 查看V4L2设备

在 Sysfs 中查看video设备的信息:

# ls /dev/video0 -l
crw-------    1 root     root       81,   0 Jan  1  1970 /dev/video0
# ls /sys/class/video4linux/v4l-subdev0/
dev        dev_debug  device     index      name       subsystem  uevent
#
# cat /sys/class/video4linux/v4l-subdev0/name
ov5640 3-003c
#
# cat /sys/class/video4linux/v4l-subdev1/name
aic-dvp-sd
# ls -l /sys/class/video4linux/
lrwxrwxrwx    1 root     root             0 Jan  1 00:12 v4l-subdev0 -> ../../devices/platform/soc/99223000.twi/i2c-3/3-003c/video4linux/v4l-subdev0
lrwxrwxrwx    1 root     root             0 Jan  1 00:12 v4l-subdev1 -> ../../devices/platform/soc/98830000.dvp/video4linux/v4l-subdev1
lrwxrwxrwx    1 root     root             0 Jan  1 00:12 video0 -> ../../devices/platform/soc/98830000.dvp/video4linux/video0

6.4.3.2.2. 打开V4L2的debug开关

在V4L2子系统中,用dprintk(level)接口来控制调试信息,大于代码中的dprintk(level)调用时的level就可以打印出信息。dprintk()一般用到两个debug level:

1

显示ioctl名称

2

显示API的传入参数

向对应的Sysfs节点写入一个整数值,可以修改该debug level:

echo 0x3 > /sys/module/videobuf2_v4l2/parameters/debug
echo 0x3 > /sys/module/videobuf2_common/parameters/debug
echo 0x3 > /sys/devices/platform/soc/18830000.dvp/video4linux/v4l-subdev1/dev_debug
echo 0x3 > /sys/devices/platform/soc/18830000.dvp/video4linux/video0/dev_debug

6.4.3.2.3. 查看 DVP 的 Buf 队列情况

DVP驱动中实现了一个sysfs节点buflist,查看当前三个Qbuf、DQbuf、DVP驱动中的buf list状态:

# cat /sys/devices/platform/soc/18830000.dvp/buflist
In dvp->buf_list, the current buf in list:
[0]: empty
[1]: empty
[2]: empty

In V4L2 Q-buf list:
[0]: empty
[1]: empty
[2]: empty

In V4L2 DQ-buf list:
[0], state: Done
[1], state: Done
[2], state: Done

6.4.3.3. V4L2 相关的其他工具

  • V4l2-ctl,v4l2的瑞士军刀

  • V4l2兼容性测试

  • V4l2-dbg,

  • qv4l2,QT测试程序

小技巧

TODO:以上工具的使用方法待验证和整理