dmesg 输出中的“未知像素格式 0x00000000”是什么意思

dmesg 输出中的“未知像素格式 0x00000000”是什么意思

重启后我运行了sudo dmesg --follow一下,在输出的末尾发现了这些消息。它似乎出现了好几次。那几行左右是

[  139.356270] ------------[ cut here ]------------
[  139.356272] Unknown pixelformat 0x00000000
[  139.356309] WARNING: CPU: 1 PID: 3056 at /build/linux-7kdHqT/linux-4.15.0/drivers/media/v4l2-core/v4l2-ioctl.c:1291 v4l_fill_fmtdesc+0xf41/0x1250 [videodev]

更多的dmesg输出可见https://pastebin.com/4YxinP3Z

系统是带有英特尔视频适配器的 Dell XPS-13 9370。

hbarta@karakum:~$ cat /etc/issue
Ubuntu 18.04.2 LTS \n \l

hbarta@karakum:~$ uname -a
Linux karakum 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
hbarta@karakum:~$ lspci|grep VGA
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
hbarta@karakum:~$ 

报告了什么问题?我应该关注吗?我该如何修复?我应该提交错误报告吗?

我这么说并不是想找什么问题,所以表面上看,这似乎无害。

谢谢!

答案1

当对某个视频设备(例如网络摄像头)执行 VIDIOC_ENUM_FMT ioctl() 命令时,Video4Linux 驱动程序会发出此警告消息。应用程序使用 ioctl 命令枚举图像格式并传递 v4l2_fmtdesc 结构,其中 pixelformat 字段设置为零,这是不正确的。驱动程序检测到此情况并发出警告消息。

如果你感兴趣的话,这个警告来自函数 v4l_fill_fmtdeschttps://github.com/torvalds/linux/blob/master/drivers/media/v4l2-core/v4l2-ioctl.c

所以,这不是内核问题,而是某些应用程序误用了 ioctl 命令 VIDIOC_ENUM_FMT

相关内容