On Mon, 2013-03-11 at 22:28 +0100, Laurent Pinchart wrote:
> Hi Vinay,
>
> On Monday 11 March 2013 10:55:37 [email protected] wrote:
> > > Names of V4L2 device nodes keep on varying depending on target, on some
> > > targets, the device node assigned to my device is /dev/video21 and on some
> > > it is /dev/video15. In order to determine my device, i am opening it,
> > > reading the capabilities, enumerating its formats and then chose the one
> > > matching my requirements. This is impacting start-up latency. One way to
> > > resolve this without impacting start-up latency is to give custom name to
> > > my V4L2 device node (/dev/custom_name instead of /dev/video21). This needs
> > > following change in V4L2 framework. Please review this patch. If you have
> > > faced similar problem please let me know.
>
> Shouldn't this be implemented in userspace as udev rules instead ?
Indeed, this is possible; I use it to provide consistent names for my
MythTV installation. If you have different V4L devices, you could have a
utility that probes the capabilities when the device is discovered and
use its output to add appropriate symlinks -- for example
IMPORT{program}="your/utility/here $tempnode"
ENV{YOUR_EXPORTED_VAR_VBI_SUPPORT}=="yes", SYMLINK+="v4l/hd-capable/video"
That that would need some tweaks to handle multiple devices (ie, naming)
that I didn't go look up the escapes for.
Here's my set from home to give you more grist for the mill:
$ cat /etc/udev/rules.d/60-persistent-capture.rules
# Give a persistent name for MythTV to use
#
ACTION=="remove", GOTO="name_video_end"
SUBSYSTEM!="video4linux", GOTO="name_video_end"
IMPORT{program}="v4l_id $tempnode"
#IMPORT{program}="path_id %p"
SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p"
KERNEL=="video*", ENV{ID_SERIAL}=="Hauppauge_Hauppauge_Device_4034580546",
SYMLINK+="v4l/HVR850/video"
KERNEL=="vbi*", ENV{ID_SERIAL}=="Hauppauge_Hauppauge_Device_4034580546",
SYMLINK+="v4l/HVR850/vbi"
# These no longer work; we stopped getting a PCI device path from the kernel it
seems...
#KERNEL=="video*", ENV{ID_PATH}=="pci-0000:04:00.0", SYMLINK+="v4l/WinTV/video"
#KERNEL=="vbi*", ENV{ID_PATH}=="pci-0000:04:00.0", SYMLINK+="v4l/WinTV/vbi"
# Key off of the product name now that we cannot tie it to the PCI path
KERNEL=="video*", ENV{ID_V4L_PRODUCT}=="Hauppauge WinTV 34xxx models",
SYMLINK+="v4l/WinTV/video"
KERNEL=="vbi*", ENV{ID_V4L_PRODUCT}=="Hauppauge WinTV 34xxx models",
SYMLINK+="v4l/WinTV/vbi"
LABEL="name_video_end"
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html