The DVB subsystem currently registers to the sysfs subsystem using the
"class_simple" interface.

This means that only the basic information like module loading parameters
are presented through sysfs. Other things that might be interesting are
currently *not* available.

Nevertheless it's now possible to add proper udev rules so that the
DVB device nodes are created automatically.

We assume that you have udev already up and running and that have been
creating the DVB device nodes manually up to now due to the missing sysfs
support.

0. Don't forget to disable your current method of creating the
device nodes manually.

1. Unfortunately, you'll need a helper script to transform the kernel
sysfs device name into the well known dvb adapter / device naming scheme.
The script should be called "dvb.sh" and should be placed into a script
dir where udev can execute it, most likely /etc/udev/scripts/

So, create a new file /etc/udev/scripts/dvb.sh and add the following:
------------------------------schnipp------------------------------------------------
#!/bin/sh
/bin/echo $1 | /bin/sed -e 's,dvb\([0-9]\)\.\([^0-9]*\)\([0-9]\),dvb/adapter\1/\2\3,'
------------------------------schnipp------------------------------------------------

Don't forget to make the script executable with "chmod".

1. You need to create a proper udev rule that will create the device nodes
like you know them. All real distributions out there scan the /etc/udev/rules.d
directory for rule files. The main udev configuration file /etc/udev/udev.conf
will tell you the directory where the rules are, most likely it's /etc/udev/rules.d/

Create a new rule file in that directory called "dvb.rule" and add the following line:
------------------------------schnipp------------------------------------------------
KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c"
------------------------------schnipp------------------------------------------------

If you want more control over the device nodes (for example a special group membership)
have a look at "man udev".

For every device that registers to the sysfs subsystem with a "dvb" prefix,
the helper script /etc/udev/scripts/dvb.sh is invoked, which will then
create the proper device node in your /dev/ directory.
