devd.conf man page on FreeBSD

Man page or keyword search:  
man Server   9747 pages
apropos Keyword Search (all sections)
Output format
FreeBSD logo
[printable version]

DEVD.CONF(5)		    BSD File Formats Manual		  DEVD.CONF(5)

NAME
     devd.conf — configuration file for devd(8)

DESCRIPTION
   General Syntax
     A devd(8) configuration consists of two general features, statements and
     comments.	All statements end with a semicolon.  Many statements can con‐
     tain substatements, which are also terminated with a semicolon.

     The following statements are supported:

     attach   Specifies various matching criteria and actions to perform when
	      a newly attached device matches said criteria.

     detach   Specifies various matching criteria and actions to perform when
	      a newly detached device matches said criteria.

     nomatch  Specifies various matching criteria and actions to perform when
	      no device driver currently loaded in the kernel claims a (new)
	      device.

     notify   Specifies various matching criteria and actions to perform when
	      the kernel sends an event notification to userland.

     options  Specifies various options and parameters for the operation of
	      devd(8).

     Statements may occur in any order in the configuration file, and may be
     repeated as often as required.  Further details on the syntax and meaning
     of each statement and their substatements are explained below.

     Each statement, except options has a priority (an arbitrary number) asso‐
     ciated with it, where ‘0’ is defined as the lowest priority.  If two
     statements match the same event, only the action of the statement with
     highest priority will be executed.	 In this way generic statements can be
     overridden for devices or notifications that require special attention.

     The general syntax of a statement is:

	   statement priority {
		   substatement "value";
		   ...
		   substatement "value";
	   };

   Sub-statements
     The following sub-statements are supported within the options statement.

     directory "/some/path";
		Adds the given directory to the list of directories from which
		devd(8) will read all files named "*.conf" as further configu‐
		ration files.  Any number of directory statements can be used.

     pid-file "/var/run/devd.pid";
		Specifies PID file.

     set regexp-name "(some|regexp)";
		Creates a regular expression and assigns it to the variable
		regexp-name.  The variable is available throughout the rest of
		the configuration file.	 All regular expressions have an
		implicit ‘^$’ around them.

     The following sub-statements are supported within the attach and detach
     statements.

     action "command";
		Command to execute upon a successful match.  Example
		“/etc/pccard_ether $device-name start”.

     class "string";
		This is shorthand for “match "class" "string"”.

     device-name "string";
		This is shorthand for “match "device-name" "string"”.  This
		matches a device named string, which is allowed to be a regu‐
		lar expression or a variable previously created containing a
		regular expression.  The “device-name” variable is available
		for later use with the action statement.

     match "variable" "value";
		Matches the content of value against variable; the content of
		value may be a regular expression.  Not required during attach
		nor detach events since the device-name statement takes care
		of all device matching.	 For a partial list of variables, see
		below.

     media-type "string";
		For network devices, media-type will match devices that have
		the given media type.  Valid media types are: “Ethernet”,
		“Tokenring”, “FDDI”, “802.11”, “ATM”, and “CARP”.

     subdevice "string";
		This is shorthand for “match "subdevice" "string"”.

     The following sub-statements are supported within the nomatch statement.

     action "command";
		Same as above.

     match "variable" "value";
		Matches the content of value against variable; the content of
		value may be a regular expression.  For a partial list of
		variables, see below.

     The following sub-statements are supported within the notify statement.
     The “notify” variable is available inside this statement and contains, a
     value, depending on which system and subsystem that delivered the event.

     action "command";
		Command to execute upon a successful match.  Example
		“/etc/rc.d/power_profile $notify”.

     match "system | subsystem | type | notify" "value";
		Any number of match statements can exist within a notify
		statement; value can be either a fixed string or a regular
		expression.  Below is a list of available systems, subsystems,
		and types.

     media-type "string";
		See above.

   Variables that can be used with the match statement
     A partial list of variables and their possible values that can be used
     together with the match statement.

     Variable	   Description
     bus	   Device name of parent bus.
     cdev	   Device node path if one is created by the devfs(5) filesys‐
		   tem.
     cisproduct	   CIS-product.
     cisvendor	   CIS-vendor.
     class	   Device class.
     device	   Device ID.
     devclass	   Device Class (USB)
     devsubclass   Device Sub-class (USB)
     device-name   Name of attached/detached device.
     endpoints	   Endpoint count (USB)
     function	   Card functions.
     interface	   Interface ID (USB)
     intclass	   Interface Class (USB)
     intprotocol   Interface Protocol  (USB)
     intsubclass   Interface Sub-class (USB)
     manufacturer  Manufacturer ID (pccard).
     mode	   Peripheral mode (USB)
     notify	   Match the value of the “notify” variable.
     parent	   Parent device
     port	   Hub port number (USB)
     product	   Product ID (pccard/USB).
     release	   Hardware revision (USB)
     serial	   Serial Number (USB).
     slot	   Card slot.
     subvendor	   Sub-vendor ID.
     subdevice	   Sub-device ID.
     subsystem	   Matches a subsystem of a system, see below.
     system	   Matches a system type, see below.
     type	   Type of notification, see below.
     vendor	   Vendor ID.

   Notify matching
     A partial list of systems, subsystems, and types used within the notify
     mechanism.

     System
     ACPI      Events related to the ACPI subsystem.
	       Subsystem
	       ACAD	  AC line state ($notify=0x00 is offline, 0x01 is
			  online).
	       Button	  Button state ($notify=0x00 is power, 0x01 is sleep).
	       CMBAT	  Battery events.
	       Lid	  Lid state ($notify=0x00 is closed, 0x01 is open).
	       Thermal	  Thermal zone events.

     IFNET     Events related to the network subsystem.
	       Subsystem
	       interface  The “subsystem” is the actual name of the network
			  interface on which the event took place.
			  Type
			  LINK_UP    Carrier status changed to UP.
			  LINK_DOWN  Carrier status changed to DOWN.
			  ATTACH     The network interface is attached to the
				     system.
			  DETACH     The network interface is detached from
				     the system.
     DEVFS     Events related to the devfs(5) filesystem.
	       Subsystem
	       CDEV
			  Type
			  CREATE   The devfs(5) node is created.
			  DESTROY  The devfs(5) node is destroyed.
     USB       Events related to the USB subsystem.
	       Subsystem
	       DEVICE
			  Type
			  ATTACH  USB device is attached to the system.
			  DETACH  USB device is detached from the system.
	       INTERFACE
			  Type
			  ATTACH  USB interface is attached from a device.
			  DETACH  USB interface is detached from a device.
     coretemp  Events related to the coretemp(4) device.
	       Subsystem
	       Thermal	  Notification that the CPU core has reached critical
			  temperature.
			  Type
			  temperature  String containing the temperature of
				       the core that has become too hot.
     kern      Events related to the kernel.
	       Subsystem
	       power	  Information about the state of the system.
			  Type
			  resume      Notification that the system has woken
				      from the suspended state.

     A link state change to UP on the interface “fxp0” would result in the
     following notify event:

	   system=IFNET, subsystem=fxp0, type=LINK_UP

     An AC line state change to “offline” would result in the following event:

	   system=ACPI, subsystem=ACAD, notify=0x00

   Comments
     Comments may appear anywhere that whitespace may appear in a configura‐
     tion file.	 To appeal to programmers of all kinds, they can be written in
     C, C++, or shell/Perl constructs.

     C-style comments start with the two characters ‘/*’ (slash, star) and end
     with ‘*/’ (star, slash).  Because they are completely delimited with
     these characters, they can be used to comment only a portion of a line or
     to span multiple lines.

     C-style comments cannot be nested.	 For example, the following is not
     valid because the entire comment ends with the first ‘*/’:

	   /* This is the start of a comment.
	      This is still part of the comment.
	   /* This is an incorrect attempt at nesting a comment. */
	      This is no longer in any comment. */

     C++-style comments start with the two characters ‘//’ (slash, slash) and
     continue to the end of the physical line.	They cannot be continued
     across multiple physical lines; to have one logical comment span multiple
     lines, each line must use the ‘//’ pair.  For example:

	   // This is the start of a comment.  The next line
	   // is a new comment, even though it is logically
	   // part of the previous comment.

FILES
     /etc/devd.conf  The devd(8) configuration file.

EXAMPLES
     #
     # This will catch link down events on the interfaces fxp0 and ath0
     #
     notify 0 {
	     match "system"		     "IFNET";
	     match "subsystem"		     "(fxp0|ath0)";
	     match "type"		     "LINK_DOWN";
	     action "logger $subsystem is DOWN";
     };

     #
     # Match lid open/close events
     # These can be combined to a single event, by passing the
     # value of $notify to the external script.
     #
     notify 0 {
	     match "system"		     "ACPI";
	     match "subsystem"		     "Lid";
	     match "notify"		     "0x00";
	     action "logger Lid closed, we can sleep now!";
     };

     notify 0 {
	     match "system"		     "ACPI";
	     match "subsystem"		     "Lid";
	     match "notify"		     "0x01";
	     action "logger Lid opened, the sleeper must awaken!";
     };

     #
     # Match a USB device type
     #
     notify 0 {
	     match "system"		     "USB";
	     match "subsystem"		     "INTERFACE";
	     match "type"		     "ATTACH";
	     match "intclass"		     "0x0e";
	     action "logger USB video device attached";
     };

     #
     # Try to configure ath and wi devices with pccard_ether
     # as they are attached.
     #
     attach 0 {
	     device-name "(ath|wi)[0-9]+";
	     action "/etc/pccard_ether $device-name start";
     };

     #
     # Stop ath and wi devices as they are detached from
     # the system.
     #
     detach 0 {
	     device-name "(ath|wi)[0-9]+";
	     action "/etc/pccard_ether $device-name stop";
     };

     The installed /etc/devd.conf has many additional examples.

SEE ALSO
     coretemp(4), devfs(5), devd(8)

BSD				 March 8, 2009				   BSD
[top]

List of man pages available for FreeBSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
...................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net