Version in base suite: 0.0.1-2 Base version: hdmi2usb-mode-switch_0.0.1-2 Target version: hdmi2usb-mode-switch_0.0.1-2+deb11u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/h/hdmi2usb-mode-switch/hdmi2usb-mode-switch_0.0.1-2.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/h/hdmi2usb-mode-switch/hdmi2usb-mode-switch_0.0.1-2+deb11u1.dsc changelog | 8 ++++ patches/disambiguate-video-device-nodes | 52 ++++++++++++++++++++++++++++++++ patches/series | 1 rules | 4 ++ 4 files changed, 65 insertions(+) gpgv: Signature made Fri Jan 19 07:30:37 2018 UTC gpgv: using RSA key FF312DA5B8E24665C793E8FFEAF192BCAA3F0F51 gpgv: issuer "stefanor@debian.org" gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on /srv/release.debian.org/tmp/tmpq_jqexrh/hdmi2usb-mode-switch_0.0.1-2.dsc diff -Nru hdmi2usb-mode-switch-0.0.1/debian/changelog hdmi2usb-mode-switch-0.0.1/debian/changelog --- hdmi2usb-mode-switch-0.0.1/debian/changelog 2018-01-19 07:28:58.000000000 +0000 +++ hdmi2usb-mode-switch-0.0.1/debian/changelog 2022-05-27 10:22:19.000000000 +0000 @@ -1,3 +1,11 @@ +hdmi2usb-mode-switch (0.0.1-2+deb11u1) bullseye; urgency=low + + * Patch: Udev: Add a suffix to /dev/video device nodes to disambiguate them. + (Closes: #1011938) + * Move udev rules to priority 70, to come after 60-persistent-v4l.rules. + + -- Stefano Rivera Fri, 27 May 2022 12:22:19 +0200 + hdmi2usb-mode-switch (0.0.1-2) unstable; urgency=medium * Update symlinks for ixo-usb-jtag 0.0.1. diff -Nru hdmi2usb-mode-switch-0.0.1/debian/patches/disambiguate-video-device-nodes hdmi2usb-mode-switch-0.0.1/debian/patches/disambiguate-video-device-nodes --- hdmi2usb-mode-switch-0.0.1/debian/patches/disambiguate-video-device-nodes 1970-01-01 00:00:00.000000000 +0000 +++ hdmi2usb-mode-switch-0.0.1/debian/patches/disambiguate-video-device-nodes 2022-05-27 10:22:19.000000000 +0000 @@ -0,0 +1,52 @@ +From: Nicolas Dandrimont +Date: Thu, 26 May 2022 22:17:33 +0200 +Subject: Add a suffix to the video device name when no capture capability is + detected + +Recent versions of the linux kernel generate multiple device nodes for +each uvcvideo capture card. The HDMI2USB-generated video symlinks end up +stomping on one another until the last one wins. + +Recent versions of udev's id_v4l script add a ID_V4L_CAPABILITIES +variable that we can use to distinguish both devices. We give the +metadata device a `-metadata` suffix to distinguish it from the capture +node. + +Origin: https://github.com/litex-hub/litex-buildenv-udev/pull/9 +Bug-Debian: https://bugs.debian.org/1011938 +--- + udev/99-hdmi2usb-aliases.rules | 15 ++++++++++----- + 1 file changed, 10 insertions(+), 5 deletions(-) + +diff --git a/udev/99-hdmi2usb-aliases.rules b/udev/99-hdmi2usb-aliases.rules +index 8ae7f48..e0863ca 100644 +--- a/udev/99-hdmi2usb-aliases.rules ++++ b/udev/99-hdmi2usb-aliases.rules +@@ -119,17 +119,22 @@ SUBSYSTEM=="tty", ENV{ID_HDMI2USB}=="1", ENV{NUM_HDMI2USB_TTY}!="", ENV{NUM_HDMI + SYMLINK+="hdmi2usb/by-num/$env{ID_HDMI2USB_BOARD}$env{NUM_HDMI2USB_BOARD}/tty$env{NUM_HDMI2USB_TTY}" + + # Video capture device ++SUBSYSTEM=="video4linux", ENV{ID_HDMI2USB}=="1", ENV{ID_V4L_CAPABILITIES}=="*:capture:*" \ ++ ENV{HDMI2USB_VIDEO_SUFFIX}:="" ++SUBSYSTEM=="video4linux", ENV{ID_HDMI2USB}=="1", ENV{ID_V4L_CAPABILITIES}!="*:capture:*" \ ++ ENV{HDMI2USB_VIDEO_SUFFIX}:="-metadata" ++ + SUBSYSTEM=="video4linux", ENV{ID_HDMI2USB}=="1", ENV{ID_SERIAL_SHORT}!="" \ +- SYMLINK+="hdmi2usb/by-serial/$env{ID_SERIAL_SHORT}/video" ++ SYMLINK+="hdmi2usb/by-serial/$env{ID_SERIAL_SHORT}/video$env{HDMI2USB_VIDEO_SUFFIX}" + + SUBSYSTEM=="video4linux", ENV{ID_HDMI2USB}=="1", ENV{ID_PATH}!="" \ +- SYMLINK+="hdmi2usb/by-path/$env{ID_PATH}/video" ++ SYMLINK+="hdmi2usb/by-path/$env{ID_PATH}/video$env{HDMI2USB_VIDEO_SUFFIX}" + + SUBSYSTEM=="video4linux", ENV{ID_HDMI2USB}=="1", ENV{ID_PATH_HUMAN}!="" \ +- SYMLINK+="hdmi2usb/by-path/$env{ID_PATH_HUMAN}/video" ++ SYMLINK+="hdmi2usb/by-path/$env{ID_PATH_HUMAN}/video$env{HDMI2USB_VIDEO_SUFFIX}" + + SUBSYSTEM=="video4linux", ENV{ID_HDMI2USB}=="1", ENV{NUM_HDMI2USB}!="" \ +- SYMLINK+="hdmi2usb/by-num/all$env{NUM_HDMI2USB}/video" ++ SYMLINK+="hdmi2usb/by-num/all$env{NUM_HDMI2USB}/video$env{HDMI2USB_VIDEO_SUFFIX}" + + SUBSYSTEM=="video4linux", ENV{ID_HDMI2USB}=="1", ENV{ID_HDMI2USB_BOARD}!="", ENV{NUM_HDMI2USB_BOARD}!="" \ +- SYMLINK+="hdmi2usb/by-num/$env{ID_HDMI2USB_BOARD}$env{NUM_HDMI2USB_BOARD}/video" ++ SYMLINK+="hdmi2usb/by-num/$env{ID_HDMI2USB_BOARD}$env{NUM_HDMI2USB_BOARD}/video$env{HDMI2USB_VIDEO_SUFFIX}" diff -Nru hdmi2usb-mode-switch-0.0.1/debian/patches/series hdmi2usb-mode-switch-0.0.1/debian/patches/series --- hdmi2usb-mode-switch-0.0.1/debian/patches/series 2018-01-19 07:28:58.000000000 +0000 +++ hdmi2usb-mode-switch-0.0.1/debian/patches/series 2022-05-27 10:22:19.000000000 +0000 @@ -1,2 +1,3 @@ no-unbind-helper flashproxy-source +disambiguate-video-device-nodes diff -Nru hdmi2usb-mode-switch-0.0.1/debian/rules hdmi2usb-mode-switch-0.0.1/debian/rules --- hdmi2usb-mode-switch-0.0.1/debian/rules 2018-01-19 07:28:58.000000000 +0000 +++ hdmi2usb-mode-switch-0.0.1/debian/rules 2022-05-27 10:22:19.000000000 +0000 @@ -15,3 +15,7 @@ override_dh_auto_test: # Only one test, and it isn't really appliccable to an autobuilder environment + +override_dh_installudev: + # Sort after 60-persistent-v4l.rules + dh_installudev --priority=70