V4l2 device not detected in Rocky Linux 9.4

I have a v4l2 device that works fine with Rocky Linux 9.3. The node /dev/video0 is present when the device is connected. The dmesg output includes the following line.
[79694.820351] usb 2-1: Found UVC 1.10 device AVMATRIX USB Capture Video (04b4:4231)

With Rocky Linux 9.4, the video0 node does not appear under /dev. The dmesg output is missing the above line.

Did something change in Rocky Linux 9.4?

Are you testing this by switching to the old 9.3 kernel, and the device still works, but then does not work when you boot to the 9.4 kernel?

The v4l2 device was working with Rocky Linux 9.3. Then, we did a fresh install of Rocky Linux 9.4 from an ISO. The v4l2 device stopped working, even after fully power cycling the host. The v4l2 device was then moved to a different host running Rocky Linux 9.3 and is running fine now.

Have you looked through dmesg to see what the kernel is doing when the device is plugged in? There were no changes to v4l2 or uvc since 9.3’s development. Below are relevant change logs during 9.3’s development.

No other change logs talk about uvcvideo nor v4l2 since these.

- media: uvcvideo: Fix menu count handling for userspace XU mappings (Desnes Nunes) [RHEL-15948]
- media: uvcvideo: Constify descriptor buffers (Desnes Nunes) [RHEL-15948]
- media: uvcvideo: Constify formats, frames and intervals (Desnes Nunes) [RHEL-15948]
- media: uvcvideo: Increment intervals pointer at end of parsing (Desnes Nunes) [RHEL-15948]
- media: uvcvideo: Reorganize format descriptor parsing (Desnes Nunes) [RHEL-15948]
- media: uvcvideo: Use clamp() to replace manual implementation (Desnes Nunes) [RHEL-15948]
- media: uvcvideo: Rename uvc_format 'frame' field to 'frames' (Desnes Nunes) [RHEL-15948]
- media: uvcvideo: Rename uvc_streaming 'format' field to 'formats' (Desnes Nunes) [RHEL-15948]
- media: uvcvideo: Enable Intel RealSense metadata for devices (Desnes Nunes) [RHEL-15948]
- media: uvcvideo: Don't expose unsupported formats to userspace (Desnes Nunes) [2212495]

- usb: uvc: Enumerate valid values for color matching (Desnes Nunes) [2212495]
- usb: uvc: use v4l2_fill_fmtdesc instead of open coded format name (Desnes Nunes) [2212495]
- usb: uvc: make uvc_format_desc table const (Desnes Nunes) [2212495]
- usb: uvc: move uvc_fmts and uvc_format_by_guid to own compile unit (Desnes Nunes) [2212495]
- usb: uvc: move media/v4l2-uvc.h to usb/uvc.h (Desnes Nunes) [2212495]
- usb: gadget: uvc: add v4l2 try_format api call (Desnes Nunes) [2212495]
- usb: gadget: uvc: add v4l2 enumeration api calls (Desnes Nunes) [2212495]
- media: uvcvideo: Silence memcpy() run-time false positive warnings (Desnes Nunes) [2212495]
- media: uvcvideo: Quirk for autosuspend in Logitech B910 and C910 (Desnes Nunes) [2212495]
- media: uvcvideo: Fix race condition with usb_kill_urb (Desnes Nunes) [2212495]
- media: uvcvideo: Use standard names for menus (Desnes Nunes) [2212495]
- media: uvcvideo: Fix power line control for Lenovo Integrated Camera (Desnes Nunes) [2212495]
- media: uvcvideo: Refactor power_line_frequency_controls_limited (Desnes Nunes) [2212495]
- media: uvcvideo: Refactor uvc_ctrl_mappings_uvcXX (Desnes Nunes) [2212495]
- media: uvcvideo: Implement mask for V4L2_CTRL_TYPE_MENU (Desnes Nunes) [2212495]
- media: uvcvideo: Extend documentation of uvc_video_clock_decode() (Desnes Nunes) [2212495]
- media: uvcvideo: Refactor __uvc_ctrl_add_mapping (Desnes Nunes) [2212495]
- media: uvcvideo: Fix handling on Bitmask controls (Desnes Nunes) [2212495]
- media: uvcvideo: Do not return positive errors in uvc_query_ctrl() (Desnes Nunes) [2212495]
- media: uvcvideo: Return -EACCES for Wrong state error (Desnes Nunes) [2212495]
- media: uvcvideo: Improve error logging in uvc_query_ctrl() (Desnes Nunes) [2212495]
- media: uvcvideo: Check for INACTIVE in uvc_ctrl_is_accessible() (Desnes Nunes) [2212495]
- media: uvcvideo: Factor out usb_string() calls (Desnes Nunes) [2212495]
- media: uvcvideo: Limit power line control for Acer EasyCamera (Desnes Nunes) [2212495]
- media: uvcvideo: Recover stalled ElGato devices (Desnes Nunes) [2212495]
- media: uvcvideo: Remove void casting for the status endpoint (Desnes Nunes) [2212495]
- media: uvcvideo: Fix usage of symbolic permissions to octal (Desnes Nunes) [2212495]
- media: uvcvideo: Fix assignment inside if condition (Desnes Nunes) [2212495]
- media: uvcvideo: Fix missing newline after declarations (Desnes Nunes) [2212495]
- media: uvcvideo: Handle errors from calls to usb_string (Desnes Nunes) [2212495]
- media: uvcvideo: Only create input devs if hw supports it (Desnes Nunes) [2212495]
- media: uvcvideo: Handle cameras with invalid descriptors (Desnes Nunes) [2212495]
- media: uvcvideo: Remove format descriptions (Desnes Nunes) [2212495]

Strange. I moved the v4l2 device back to the host running Rocky Linux 9.4 and now /dev/video0 shows up. Thanks for looking at this issue.