# Sample /etc/devfsd.conf configuration file.
# Richard Gooch  <rgooch@atnf.csiro.au>		17-FEB-2002
#
# adapted for busybox devfsd implementation by Tito <farmatito@tiscali.it>
#
# Enable full compatibility mode for old device names. You may comment these
# out if you don't use the old device names. Make sure you know what you're
# doing!
REGISTER	.*		MKOLDCOMPAT
UNREGISTER	.*		RMOLDCOMPAT

# You may comment out the above and uncomment the following if you've
# configured your system to use the original "new" devfs names or the really
# new names
#REGISTER	^vc/		MKOLDCOMPAT
#UNREGISTER	^vc/		RMOLDCOMPAT
#REGISTER	^pty/		MKOLDCOMPAT
#UNREGISTER	^pty/		RMOLDCOMPAT
#REGISTER	^misc/		MKOLDCOMPAT
#UNREGISTER	^misc/		RMOLDCOMPAT

# You may comment these out if you don't use the original "new" names
REGISTER	.*		MKNEWCOMPAT
UNREGISTER	.*		RMNEWCOMPAT

# Enable module autoloading. You may comment this out if you don't use
# autoloading
# Supported by busybox when CONFIG_DEVFSD_MODLOAD is set.
# This actually doesn't work with busybox  modutils but needs
# the real modutils' modprobe
LOOKUP		.*		MODLOAD

# Uncomment the following if you want to set the group to "tty" for the
# pseudo-tty devices. This is necessary so that mesg(1) can later be used to
# enable/disable talk requests and wall(1) messages.
REGISTER	^pty/s.*	PERMISSIONS	-1.tty	0600
#REGISTER	^pts/.*		PERMISSIONS	-1.tty	0600

# Restoring /dev/log on startup would trigger the minilogd/initlog deadlock
# (minilogd falsely assuming syslogd has been started).
REGISTER	^log$		IGNORE
CREATE		^log$		IGNORE
CHANGE		^log$		IGNORE
DELETE		^log$		IGNORE

#
# Uncomment this if you want permissions to be saved and restored
# Do not do this for pseudo-terminal devices
REGISTER	^pt[sy]		IGNORE
CREATE		^pt[sy]		IGNORE
CHANGE		^pt[sy]		IGNORE
DELETE		^pt[sy]		IGNORE
REGISTER	.*		COPY	/lib/dev-state/$devname $devpath
CREATE		.*		COPY	$devpath /lib/dev-state/$devname
CHANGE		.*		COPY	$devpath /lib/dev-state/$devname
#DELETE		.*		CFUNCTION GLOBAL unlink /lib/dev-state/$devname
# Busybox
DELETE		.*		EXECUTE /bin/rm -f		/lib/dev-state/$devname

RESTORE		/lib/dev-state

#
# Uncomment this if you want the old /dev/cdrom symlink
#REGISTER	^cdroms/cdrom0$	CFUNCTION GLOBAL mksymlink $devname cdrom
#UNREGISTER	^cdroms/cdrom0$	CFUNCTION GLOBAL unlink cdrom
# busybox
REGISTER	^cdroms/cdrom0$	EXECUTE /bin/ln -sf $devname cdrom
UNREGISTER	^cdroms/cdrom0$	EXECUTE /bin/rm -f cdrom

#REGISTER	^v4l/video0$	CFUNCTION GLOBAL mksymlink v4l/video0 video
#UNREGISTER	^v4l/video0$	CFUNCTION GLOBAL unlink video
#REGISTER	^radio0$	CFUNCTION GLOBAL mksymlink radio0 radio
#UNREGISTER	^radio0$	CFUNCTION GLOBAL unlink radio
# Busybox
REGISTER	^v4l/video0$	EXECUTE /bin/ln -sf v4l/video0 video
UNREGISTER	^v4l/video0$	EXECUTE /bin/rm -f video
REGISTER	^radio0$		EXECUTE /bin/ln -sf  radio0 radio
UNREGISTER	^radio0$		EXECUTE /bin/rm -f radio

# ALSA stuff
#LOOKUP 		snd 		MODLOAD ACTION snd

# Uncomment this to let PAM manage devfs
# Not supported by busybox
#REGISTER	.*		CFUNCTION /lib/security/pam_console_apply_devfsd.so pam_console_apply_single $devpath

# Uncomment this to manage USB mouse
# Not supported by busybox
#REGISTER	^input/mouse0$	CFUNCTION GLOBAL mksymlink $devname usbmouse
#UNREGISTER	^input/mouse0$	CFUNCTION GLOBAL unlink usbmouse
# Busybox
#REGISTER	^input/mouse0$	EXECUTE /bin/ln -sf $devname usbmouse
#UNREGISTER	^input/mouse0$	EXECUTE /bin/rm -f usbmouse
# Not supported by busybox
#REGISTER	^input/mice$	CFUNCTION GLOBAL mksymlink $devname usbmouse
#UNREGISTER	^input/mice$	CFUNCTION GLOBAL unlink usbmouse
# Busybox
REGISTER	^input/mice$	EXECUTE /bin/ln -sf $devname usbmouse
UNREGISTER	^input/mice$	EXECUTE /bin/rm -f usbmouse

# If you have removable media and want to force media revalidation when looking
# up new or old compatibility names, uncomment the following lines
# SCSI NEWCOMPAT  /dev/sd/* names
LOOKUP		^(sd/c[0-9]+b[0-9]+t[0-9]+u[0-9]+)p[0-9]+$	EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1
# SCSI OLDCOMPAT  /dev/sd?? names
LOOKUP		^(sd[a-z]+)[0-9]+$	EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1
# IDE NEWCOMPAT   /dev/ide/hd/* names
LOOKUP		^(ide/hd/c[0-9]+b[0-9]+t[0-9]+u[0-9]+)p[0-9]+$	EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1
# IDE OLDCOMPAT   /dev/hd?? names
LOOKUP		^(hd[a-z])[0-9]+$	EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1
# IDE-SCSI NEWCOMPAT  /dev/sd/* names
#LOOKUP		^(sd/c[0-9]+b[0-9]+t[0-9]+u[0-9]+)p[0-9]+$	EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1
#SCSI OLDCOMPAT  /dev/scd? names
LOOKUP		^(scd+)[0-9]+$	EXECUTE /bin/dd if=$mntpnt/\1 of=/dev/null count=1


REGISTER ^dvb/card[0-9]+/[^/]+$ PERMISSIONS root.video 0660
# Not supported by busybox
#REGISTER	^dvb/card([0-9]+)/([^/0-9]*)[0-9]+$	CFUNCTION GLOBAL mksymlink /dev/$devname ost/\2\1
#UNREGISTER	^dvb/card([0-9]+)/([^/0-9]*)[0-9]+$	CFUNCTION GLOBAL unlink ost/\2\1
# Busybox
REGISTER	^dvb/card([0-9]+)/([^/0-9]*)[0-9]+$	EXECUTE /bin/ln -sf /dev/$devname ost/\2\1
UNREGISTER	^dvb/card([0-9]+)/([^/0-9]*)[0-9]+$	EXECUTE /bin/rm -f ost/\2\1

# Include package-generated files from /etc/devfs/conf.d
# Supported by busybox
# INCLUDE   /etc/devfs/conf.d/
INCLUDE   /etc/devfs/busybox/
# Busybox: just for testing
#INCLUDE			/etc/devfs/nothing/
#INCLUDE			/etc/devfs/nothing/nothing
#OPTIONAL_INCLUDE	/etc/devfs/nothing/
#OPTIONAL_INCLUDE	/etc/devfs/nothing/nothing
