我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
系统是带有 Intel 视频适配器的 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:~$
报告什么问题?我应该担心吗?我该如何修复,我应该提交错误报告吗?
我表面上这么说的时候并不是在寻找问题,这似乎是无害的。
谢谢!
当 VIDIOC_ENUM_FMT ioctl() 命令在某些视频设备(例如,网络摄像头)上执行时,Video4Linux 驱动程序会发出此警告消息。应用程序正在使用 ioctl 命令枚举图像格式并传递 v4l2_fmtdesc 结构,其中 pixelformat 字段设置为零,这是不正确的。驱动程序检测到这一点并发出警告消息。
如果您有兴趣,警告来自https://github.com/torvalds/linux/blob/master/drivers/media/v4l2-core/v4l2-ioctl.c中的函数 v4l_fill_fmtdesc
所以,这不是内核问题,而是某些应用程序滥用了 ioctl 命令 VIDIOC_ENUM_FMT