man devfsd.conf (Formats) - the main configuration file for devfsd.
NAME
/etc/devfs/devfsd.conf - the main configuration file for devfsd.
FORMAT
EXAMPLES
Here are some examples of the most common usage:
Compatibility entries, the following will create symbolic links from /dev/misc/device to /dev/device on node registration and remove them on unregistration:
REGISTER misc MKOLDCOMPAT
UNREGISTER misc RMOLDCOMPAT
The following means to ignore any REGISTER or CHANGE entries occurring later in the file for devices matching the regex ^pt[sy]/.*:
REGISTER ^pt[sy]/.* IGNORE
CHANGE ^pt[sy]/.* IGNORE
CREATE ^pt[sy]/.* IGNORE
This runs the partx command to tell the kernel about the partitioning of an IDE or SCSI hard disk when one of the partitions is accessed for the first time. Notice the use of regular expression substituation in the command "\1", corresponding to the first set of parentheses in the regular expression being matched.
LOOKUP ^((ide|scsi)/host[0-9]+/bus[0-9]+/target[0-9]+/lun[0-9]+)/part[0-9]+$ EXECUTE /sbin/partx -a $mntpnt/\1/disc
This calls the GLOBAL function to create a symlink from /dev/tts/0 to /dev/ttyS0 and also to /dev/modem, the links will be removed at device unregistration time. The order of link creation is the reverse of the order in the config file. Typically the GLOBAL functions are in libc. Note how the mksymlink function is being used, rather than the symlink function from libc. The mksymlink function will create parent directories as required, and will not generate a failure code if the symlink already exists.
REGISTER ^tts/0$ CFUNCTION GLOBAL mksymlink $devname modem
REGISTER ^tts/3$ CFUNCTION GLOBAL mksymlink $devname ttyS0
UNREGISTER ^tts/0$ CFUNCTION GLOBAL unlink modem
UNREGISTER ^tts/3$ CFUNCTION GLOBAL unlink ttyS0
The other use of CFUNCTION and MFUNCTION is to call a function in a shared object that devfsd will load. See the /usr/share/doc/devfsd/examples directory for code for some shared objects.