1.. SPDX-License-Identifier: GPL-2.0 2 3UDEV rules for DVB 4================== 5 6.. note:: 7 8 #) This documentation is outdated. Udev on modern distributions auto-detect 9 the DVB devices. 10 11 #) **TODO:** change this document to explain how to make DVB devices 12 persistent, as, when a machine has multiple devices, they may be detected 13 on different orders, which could cause apps that relies on the device 14 numbers to fail. 15 16The DVB subsystem currently registers to the sysfs subsystem using the 17"class_simple" interface. 18 19This means that only the basic information like module loading parameters 20are presented through sysfs. Other things that might be interesting are 21currently **not** available. 22 23Nevertheless it's now possible to add proper udev rules so that the 24DVB device nodes are created automatically. 25 26We assume that you have udev already up and running and that have been 27creating the DVB device nodes manually up to now due to the missing sysfs 28support. 29 300. Don't forget to disable your current method of creating the 31device nodes manually. 32 331. Unfortunately, you'll need a helper script to transform the kernel 34sysfs device name into the well known dvb adapter / device naming scheme. 35The script should be called "dvb.sh" and should be placed into a script 36dir where udev can execute it, most likely /etc/udev/scripts/ 37 38So, create a new file /etc/udev/scripts/dvb.sh and add the following: 39 40.. code-block:: none 41 42 #!/bin/sh 43 /bin/echo $1 | /bin/sed -e 's,dvb\([0-9]\)\.\([^0-9]*\)\([0-9]\),dvb/adapter\1/\2\3,' 44 45Don't forget to make the script executable with "chmod". 46 471. You need to create a proper udev rule that will create the device nodes 48like you know them. All real distributions out there scan the /etc/udev/rules.d 49directory for rule files. The main udev configuration file /etc/udev/udev.conf 50will tell you the directory where the rules are, most likely it's /etc/udev/rules.d/ 51 52Create a new rule file in that directory called "dvb.rule" and add the following line: 53 54.. code-block:: none 55 56 KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c" 57 58If you want more control over the device nodes (for example a special group membership) 59have a look at "man udev". 60 61For every device that registers to the sysfs subsystem with a "dvb" prefix, 62the helper script /etc/udev/scripts/dvb.sh is invoked, which will then 63create the proper device node in your /dev/ directory. 64