暂停 22.04.2 LTS 后,网络摄像头(Chicony 04f2:b761)视频反转(上下颠倒)

暂停 22.04.2 LTS 后,网络摄像头(Chicony 04f2:b761)视频反转(上下颠倒)

集成笔记本电脑(ThinkPad T14s Gen 3)网络摄像头(群光04f2:b761) 视频在挂起后反转(上下颠倒/垂直翻转)。重启后它就恢复正常了。在 cheese、zoom 和 firefox 上测试过,都显示这种情况。注意我使用的是 Xubuntu 22.04.2 LTS,但也通过可启动 USB 在 Ubuntu 22.04.2 LTS 上测试过,也遇到了同样的问题。

网络摄像头详细信息:

             *-usb:1
                   description: Video
                   product: Integrated Camera: Integrated C
                   vendor: Chicony Electronics Co.,Ltd.
                   physical id: 4
                   bus info: usb@3:4
                   logical name: input14
                   logical name: /dev/input/event9
                   version: 27.74
                   serial: 0001
                   capabilities: usb-2.01 usb
                   configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s

网络摄像头详细信息来自dmesg

[    2.211395] usb 3-4: New USB device found, idVendor=04f2, idProduct=b761, bcdDevice=27.74
[    2.211398] usb 3-4: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[    2.211400] usb 3-4: Product: Integrated Camera
[    2.211401] usb 3-4: Manufacturer: Chicony Electronics Co.,Ltd.
[    2.211402] usb 3-4: SerialNumber: 0001

为了修复暂停后的视频反转问题,尝试过以下方法,但没有成功:

  • 通过以下方式重新启动网络摄像头:
sudo rmmod uvcvideo
sudo modprobe uvcvideo
  • LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so cheeseLD_PRELOAD=/usr/lib/libv4l/v4l1compat.so cheese按照拱形文档(以及针对倒置网络摄像头问题的几个建议解决方案)
  • v4l2-ctl --list-ctrls没有提供垂直翻转选项
  • 解决办法,使用虚拟环回和ffmpeg进行翻转,出现以下错误:

[video4linux2,v4l2 @ 0x555d5917bd00] ioctl(VIDIOC_G_FMT):无效参数无法为输出文件#0 写入标题(编解码器参数不正确?):无效参数初始化输出流 0:0 时出错 --

有趣的是,如果我在重启后尝试相同的解决方案(当视频正确显示时),转换将不会出错。要点是不要搞砸事情。

format=yuv420p编辑:已设法通过使用使此解决方法奏效ffmpeg -f v4l2 -i /dev/video0 -vf "vflip,format=yuv420p" -f v4l2 /dev/video2。但实际修复会比这种繁琐的解决方法更好。

dmesg暂停和恢复的日志:

[ 8017.902921] PM: suspend entry (deep)
[ 8017.921779] Filesystems sync: 0.018 seconds
[ 8017.923437] Freezing user space processes ... (elapsed 0.031 seconds) done.
[ 8017.955329] OOM killer disabled.
[ 8017.955333] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 8017.957871] printk: Suspending console(s) (use no_console_suspend to debug)
[ 8018.629951] ACPI: EC: interrupt blocked
[ 8018.681099] ACPI: PM: Preparing to enter system sleep state S3
[ 8018.718112] ACPI: EC: event blocked
[ 8018.718112] ACPI: EC: EC stopped
[ 8018.718113] ACPI: PM: Saving platform NVS memory
[ 8018.718175] Disabling non-boot CPUs ...
[ 8018.719786] smpboot: CPU 1 is now offline
[ 8018.722812] smpboot: CPU 2 is now offline
[ 8018.726002] smpboot: CPU 3 is now offline
[ 8018.728008] smpboot: CPU 4 is now offline
[ 8018.730773] smpboot: CPU 5 is now offline
[ 8018.732720] smpboot: CPU 6 is now offline
[ 8018.735428] smpboot: CPU 7 is now offline
[ 8018.737375] smpboot: CPU 8 is now offline
[ 8018.739427] smpboot: CPU 9 is now offline
[ 8018.741712] smpboot: CPU 10 is now offline
[ 8018.743878] smpboot: CPU 11 is now offline
[ 8018.746121] smpboot: CPU 12 is now offline
[ 8018.748104] smpboot: CPU 13 is now offline
[ 8018.749938] smpboot: CPU 14 is now offline
[ 8018.751504] smpboot: CPU 15 is now offline
[ 8018.762536] ACPI: PM: Low-level resume complete
[ 8018.762803] ACPI: EC: EC started
[ 8018.762804] ACPI: PM: Restoring platform NVS memory
[ 8018.764561] Enabling non-boot CPUs ...
[ 8018.764598] x86: Booting SMP configuration:
[ 8018.764598] smpboot: Booting Node 0 Processor 1 APIC 0x1
[ 8018.766500] CPU1 is up
[ 8018.766523] smpboot: Booting Node 0 Processor 2 APIC 0x8
[ 8018.772838] CPU2 is up
[ 8018.772859] smpboot: Booting Node 0 Processor 3 APIC 0x9
[ 8018.774852] CPU3 is up
[ 8018.774870] smpboot: Booting Node 0 Processor 4 APIC 0x10
[ 8018.780903] CPU4 is up
[ 8018.780924] smpboot: Booting Node 0 Processor 5 APIC 0x11
[ 8018.782907] CPU5 is up
[ 8018.782925] smpboot: Booting Node 0 Processor 6 APIC 0x18
[ 8018.789236] CPU6 is up
[ 8018.789254] smpboot: Booting Node 0 Processor 7 APIC 0x19
[ 8018.791433] CPU7 is up
[ 8018.791450] smpboot: Booting Node 0 Processor 8 APIC 0x20
[ 8018.796099] core: cpu_atom PMU driver: PEBS-via-PT 
[ 8018.796105] ... version:                5
[ 8018.796106] ... bit width:              48
[ 8018.796107] ... generic registers:      6
[ 8018.796108] ... value mask:             0000ffffffffffff
[ 8018.796109] ... max period:             00007fffffffffff
[ 8018.796110] ... fixed-purpose events:   3
[ 8018.796110] ... event mask:             000000070000003f
[ 8018.796864] CPU8 is up
[ 8018.796936] smpboot: Booting Node 0 Processor 9 APIC 0x22
[ 8018.799493] CPU9 is up
[ 8018.799556] smpboot: Booting Node 0 Processor 10 APIC 0x24
[ 8018.802143] CPU10 is up
[ 8018.802190] smpboot: Booting Node 0 Processor 11 APIC 0x26
[ 8018.804984] CPU11 is up
[ 8018.805052] smpboot: Booting Node 0 Processor 12 APIC 0x28
[ 8018.810868] CPU12 is up
[ 8018.810911] smpboot: Booting Node 0 Processor 13 APIC 0x2a
[ 8018.813555] CPU13 is up
[ 8018.813618] smpboot: Booting Node 0 Processor 14 APIC 0x2c
[ 8018.816422] CPU14 is up
[ 8018.816486] smpboot: Booting Node 0 Processor 15 APIC 0x2e
[ 8018.819229] CPU15 is up
[ 8018.823861] ACPI: PM: Waking up from system sleep state S3
[ 8018.894408] ACPI: EC: interrupt unblocked
[ 8019.069189] ACPI: EC: event unblocked
[ 8019.087815] xhci_hcd 0000:00:0d.0: xHC error in resume, USBSTS 0x401, Reinit
[ 8019.087817] usb usb1: root hub lost power or was reset
[ 8019.087818] usb usb2: root hub lost power or was reset
[ 8019.171586] nvme nvme0: Shutdown timeout set to 10 seconds
[ 8019.174440] nvme nvme0: 16/0/0 default/read/poll queues
[ 8019.175956] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_62.0.3.bin version 62.0 submission:enabled
[ 8019.175960] i915 0000:00:02.0: [drm] GuC SLPC: enabled
[ 8019.175961] i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc_7.9.3.bin version 7.9 authenticated:yes
[ 8019.176297] i915 0000:00:02.0: [drm] GuC RC: enabled
[ 8019.402251] usb 3-4: reset high-speed USB device number 3 using xhci_hcd
[ 8019.678432] usb 3-3: reset full-speed USB device number 2 using xhci_hcd
[ 8019.831591] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[ 8019.832878] OOM killer enabled.
[ 8019.832881] Restarting tasks ... done.
[ 8019.858003] thermal thermal_zone7: failed to read out thermal zone (-61)
[ 8019.967724] PM: suspend exit
[ 8019.977581] audit: type=1107 audit(1686052624.208:85): pid=795 uid=102 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_signal"  bus="system" path="/org/freedesktop/login1" interface="org.freedesktop.login1.Manager" member="PrepareForSleep" name=":1.10" mask="receive" pid=2337 label="snap.firefox.firefox" peer_pid=828 peer_label="unconfined"
                exe="/usr/bin/dbus-daemon" sauid=102 hostname=? addr=? terminal=?'

更新 1

dmesg重启后第一次挂起,启用 ivcvideo 模块跟踪,按照@cryptarch 的建议:

[  138.325199] PM: suspend entry (deep)
[  138.339292] Filesystems sync: 0.014 seconds
[  138.340600] Freezing user space processes ... (elapsed 0.042 seconds) done.
[  138.383018] OOM killer disabled.
[  138.383022] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[  138.385050] printk: Suspending console(s) (use no_console_suspend to debug)
[  138.393601] usb 3-4: Suspending interface 1
[  138.393608] usb 3-4: Suspending interface 0
[  139.072627] ACPI: EC: interrupt blocked
[  139.120739] ACPI: PM: Preparing to enter system sleep state S3
[  139.147920] ACPI: EC: event blocked
[  139.147923] ACPI: EC: EC stopped
[  139.147924] ACPI: PM: Saving platform NVS memory
[  139.147980] Disabling non-boot CPUs ...
[  139.149629] smpboot: CPU 1 is now offline
[  139.153130] smpboot: CPU 2 is now offline
[  139.156528] smpboot: CPU 3 is now offline
[  139.158650] smpboot: CPU 4 is now offline
[  139.161650] smpboot: CPU 5 is now offline
[  139.163535] smpboot: CPU 6 is now offline
[  139.166202] smpboot: CPU 7 is now offline
[  139.168233] smpboot: CPU 8 is now offline
[  139.170394] smpboot: CPU 9 is now offline
[  139.172502] smpboot: CPU 10 is now offline
[  139.174937] smpboot: CPU 11 is now offline
[  139.176889] smpboot: CPU 12 is now offline
[  139.178480] smpboot: CPU 13 is now offline
[  139.179998] smpboot: CPU 14 is now offline
[  139.181524] smpboot: CPU 15 is now offline
[  139.192521] ACPI: PM: Low-level resume complete
[  139.192788] ACPI: EC: EC started
[  139.192788] ACPI: PM: Restoring platform NVS memory
[  139.194557] Enabling non-boot CPUs ...
[  139.194591] x86: Booting SMP configuration:
[  139.194591] smpboot: Booting Node 0 Processor 1 APIC 0x1
[  139.196397] CPU1 is up
[  139.196419] smpboot: Booting Node 0 Processor 2 APIC 0x8
[  139.203108] CPU2 is up
[  139.203127] smpboot: Booting Node 0 Processor 3 APIC 0x9
[  139.205091] CPU3 is up
[  139.205107] smpboot: Booting Node 0 Processor 4 APIC 0x10
[  139.211835] CPU4 is up
[  139.211854] smpboot: Booting Node 0 Processor 5 APIC 0x11
[  139.213656] CPU5 is up
[  139.213672] smpboot: Booting Node 0 Processor 6 APIC 0x18
[  139.220067] CPU6 is up
[  139.220084] smpboot: Booting Node 0 Processor 7 APIC 0x19
[  139.222197] CPU7 is up
[  139.222254] smpboot: Booting Node 0 Processor 8 APIC 0x20
[  139.227186] core: cpu_atom PMU driver: PEBS-via-PT 
[  139.227191] ... version:                5
[  139.227193] ... bit width:              48
[  139.227194] ... generic registers:      6
[  139.227194] ... value mask:             0000ffffffffffff
[  139.227196] ... max period:             00007fffffffffff
[  139.227197] ... fixed-purpose events:   3
[  139.227197] ... event mask:             000000070000003f
[  139.228035] CPU8 is up
[  139.228090] smpboot: Booting Node 0 Processor 9 APIC 0x22
[  139.230454] CPU9 is up
[  139.230508] smpboot: Booting Node 0 Processor 10 APIC 0x24
[  139.233470] CPU10 is up
[  139.233490] smpboot: Booting Node 0 Processor 11 APIC 0x26
[  139.236218] CPU11 is up
[  139.236280] smpboot: Booting Node 0 Processor 12 APIC 0x28
[  139.242705] CPU12 is up
[  139.242751] smpboot: Booting Node 0 Processor 13 APIC 0x2a
[  139.245462] CPU13 is up
[  139.245506] smpboot: Booting Node 0 Processor 14 APIC 0x2c
[  139.248506] CPU14 is up
[  139.248548] smpboot: Booting Node 0 Processor 15 APIC 0x2e
[  139.251391] CPU15 is up
[  139.255790] ACPI: PM: Waking up from system sleep state S3
[  139.324599] ACPI: EC: interrupt unblocked
[  139.488895] ACPI: EC: event unblocked
[  139.490100] iwlwifi 0000:00:14.3: RF_KILL bit toggled to enable radio.
[  139.513247] xhci_hcd 0000:00:0d.0: xHC error in resume, USBSTS 0x401, Reinit
[  139.513250] usb usb1: root hub lost power or was reset
[  139.513251] usb usb2: root hub lost power or was reset
[  139.614405] nvme nvme0: Shutdown timeout set to 10 seconds
[  139.617058] nvme nvme0: 16/0/0 default/read/poll queues
[  139.618763] i915 0000:00:02.0: [drm] GuC firmware i915/adlp_guc_62.0.3.bin version 62.0 submission:enabled
[  139.618767] i915 0000:00:02.0: [drm] GuC SLPC: enabled
[  139.618768] i915 0000:00:02.0: [drm] HuC firmware i915/tgl_huc_7.9.3.bin version 7.9 authenticated:yes
[  139.619264] i915 0000:00:02.0: [drm] GuC RC: enabled
[  139.815115] usb 3-4: reset high-speed USB device number 3 using xhci_hcd
[  139.969946] usb 3-4: Resuming interface 0
[  139.969959] usb 3-4: Resuming interface 1
[  140.096431] usb 3-3: reset full-speed USB device number 2 using xhci_hcd
[  140.255833] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_component_ops [i915])
[  140.261404] OOM killer enabled.
[  140.261406] Restarting tasks ... done.
[  140.290245] thermal thermal_zone8: failed to read out thermal zone (-61)
[  140.405185] PM: suspend exit
[  140.424221] audit: type=1107 audit(1686111498.220:80): pid=764 uid=102 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_signal"  bus="system" path="/org/freedesktop/login1" interface="org.freedesktop.login1.Manager" member="PrepareForSleep" name=":1.9" mask="receive" pid=2386 label="snap.firefox.firefox" peer_pid=792 peer_label="unconfined"
                exe="/usr/bin/dbus-daemon" sauid=102 hostname=? addr=? terminal=?'
[  142.248520] audit: type=1107 audit(1686111500.040:81): pid=764 uid=102 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_signal"  bus="system" path="/org/freedesktop/login1" interface="org.freedesktop.login1.Manager" member="UserNew" name=":1.9" mask="receive" pid=2386 label="snap.firefox.firefox" peer_pid=792 peer_label="unconfined"
                exe="/usr/bin/dbus-daemon" sauid=102 hostname=? addr=? terminal=?'
[  142.252668] audit: type=1107 audit(1686111500.044:82): pid=764 uid=102 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_signal"  bus="system" path="/org/freedesktop/login1" interface="org.freedesktop.login1.Manager" member="SessionNew" name=":1.9" mask="receive" pid=2386 label="snap.firefox.firefox" peer_pid=792 peer_label="unconfined"
                exe="/usr/bin/dbus-daemon" sauid=102 hostname=? addr=? terminal=?'
[  142.343604] usb 3-4: uvc_v4l2_open
[  142.343649] usb 3-4: uvc_v4l2_release
[  142.346373] usb 3-4: uvc_v4l2_open
[  142.346430] usb 3-4: uvc_v4l2_release
[  142.346696] usb 3-4: uvc_v4l2_open
[  142.346731] usb 3-4: uvc_v4l2_release
[  142.347024] usb 3-4: uvc_v4l2_open
[  142.347086] usb 3-4: uvc_v4l2_release
[  142.347226] usb 3-4: uvc_v4l2_open
[  142.347284] usb 3-4: uvc_v4l2_release
[  142.654353] usb 3-4: uvc_v4l2_open
[  142.654414] usb 3-4: uvc_v4l2_release
[  144.415123] wlp0s20f3: authenticate with d6:35:1d:4b:d6:5c
[  144.421279] wlp0s20f3: send auth to d6:35:1d:4b:d6:5c (try 1/3)
[  144.487608] wlp0s20f3: authenticated
[  144.494137] wlp0s20f3: associate with d6:35:1d:4b:d6:5c (try 1/3)
[  144.498975] wlp0s20f3: RX AssocResp from d6:35:1d:4b:d6:5c (capab=0x1411 status=0 aid=18)
[  144.508645] wlp0s20f3: associated
[  144.571120] wlp0s20f3: Limiting TX power to 36 (36 - 0) dBm as advertised by d6:35:1d:4b:d6:5c
[  144.631165] IPv6: ADDRCONF(NETDEV_CHANGE): wlp0s20f3: link becomes ready
[  145.199288] wlp0s20f3: deauthenticated from d6:35:1d:4b:d6:5c (Reason: 2=PREV_AUTH_NOT_VALID)
[  145.390535] wlp0s20f3: authenticate with d6:35:1d:4b:d6:64
[  145.397020] wlp0s20f3: send auth to d6:35:1d:4b:d6:64 (try 1/3)
[  145.428940] wlp0s20f3: authenticated
[  145.432058] wlp0s20f3: associate with d6:35:1d:4b:d6:64 (try 1/3)
[  145.433439] wlp0s20f3: RX AssocResp from d6:35:1d:4b:d6:64 (capab=0x1011 status=0 aid=9)
[  145.441352] wlp0s20f3: associated
[  145.598359] wlp0s20f3: Limiting TX power to 23 (23 - 0) dBm as advertised by d6:35:1d:4b:d6:64
[  168.284859] audit: type=1107 audit(1686111526.039:83): pid=764 uid=102 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_signal"  bus="system" path="/org/freedesktop/login1" interface="org.freedesktop.login1.Manager" member="SessionRemoved" name=":1.9" mask="receive" pid=2386 label="snap.firefox.firefox" peer_pid=792 peer_label="unconfined"
                exe="/usr/bin/dbus-daemon" sauid=102 hostname=? addr=? terminal=?'
[  177.801572] wlp0s20f3: disconnect from AP d6:35:1d:4b:d6:64 for new auth to d6:35:1d:4b:d6:5c
[  177.853535] wlp0s20f3: authenticate with d6:35:1d:4b:d6:5c
[  177.858616] wlp0s20f3: send auth to d6:35:1d:4b:d6:5c (try 1/3)
[  177.887513] wlp0s20f3: authenticated
[  177.892033] wlp0s20f3: associate with d6:35:1d:4b:d6:5c (try 1/3)
[  177.896728] wlp0s20f3: RX ReassocResp from d6:35:1d:4b:d6:5c (capab=0x1411 status=0 aid=19)
[  177.906568] wlp0s20f3: associated
[  177.939563] wlp0s20f3: Limiting TX power to 36 (36 - 0) dBm as advertised by d6:35:1d:4b:d6:5c
[  178.460339] audit: type=1107 audit(1686111536.212:84): pid=764 uid=102 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_signal"  bus="system" path="/org/freedesktop/login1" interface="org.freedesktop.login1.Manager" member="UserRemoved" name=":1.9" mask="receive" pid=2386 label="snap.firefox.firefox" peer_pid=792 peer_label="unconfined"
                exe="/usr/bin/dbus-daemon" sauid=102 hostname=? addr=? terminal=?'

更新 2

如果有用的话,重新启动后的相关 dmesg 如下:

[    2.060296] usb 3-4: new high-speed USB device number 3 using xhci_hcd
[    2.187719] EXT4-fs (nvme0n1p8): re-mounted. Opts: (null). Quota mode: none.
[    2.187723] EXT4-fs (nvme0n1p6): re-mounted. Opts: errors=remount-ro. Quota mode: none.
[    2.197090] lp: driver loaded but no devices found
[    2.203511] ppdev: user-space parallel port driver
[    2.211395] usb 3-4: New USB device found, idVendor=04f2, idProduct=b761, bcdDevice=27.74
[    2.211398] usb 3-4: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[    2.211400] usb 3-4: Product: Integrated Camera
[    2.211401] usb 3-4: Manufacturer: Chicony Electronics Co.,Ltd.
[    2.211402] usb 3-4: SerialNumber: 0001
[    2.221313] pstore: Using crash dump compression: deflate
[    2.221322] pstore: Registered efi as persistent store backend
[    2.326598] input: Intel HID events as /devices/platform/INTC1070:00/input/input9

相关内容