Index: head/etc/Makefile =================================================================== --- head/etc/Makefile +++ head/etc/Makefile @@ -13,7 +13,6 @@ .endif BIN1= crontab \ - devd.conf \ devfs.conf \ dhclient.conf \ disktab \ @@ -152,7 +151,6 @@ ${_+_}cd ${.CURDIR}/bluetooth; ${MAKE} install .endif ${_+_}cd ${.CURDIR}/defaults; ${MAKE} install - ${_+_}cd ${.CURDIR}/devd; ${MAKE} install ${_+_}cd ${.CURDIR}/gss; ${MAKE} install ${_+_}cd ${.CURDIR}/mtree; ${MAKE} install ${_+_}cd ${SRCTOP}/share/termcap; ${MAKE} etc-termcap Index: head/etc/devd.conf =================================================================== --- head/etc/devd.conf +++ head/etc/devd.conf @@ -1,353 +0,0 @@ -# $FreeBSD$ -# -# Refer to devd.conf(5) and devd(8) man pages for the details on how to -# run and configure devd. -# - -# NB: All regular expressions have an implicit ^$ around them. -# NB: device-name is shorthand for 'match device-name' - -options { - # Each "directory" directive adds a directory to the list of - # directories that we scan for files. Files are loaded in the order - # that they are returned from readdir(3). The rule-sets are combined - # to create a DFA that's used to match events to actions. - directory "/etc/devd"; - directory "/usr/local/etc/devd"; - pid-file "/var/run/devd.pid"; - - # Setup some shorthand for regex that we use later in the file. - #XXX Yes, these are gross -- imp - set scsi-controller-regex - "(aac|adv|adw|aha|ahc|ahd|aic|amr|bt|ciss|dpt|\ - esp|ida|iir|ips|isp|mlx|mly|mpr|mps|mpt|ncr|ncv|nsp|stg|sym|\ - trm)\ - [0-9]+"; - set wifi-driver-regex - "(ath|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rtwn|rum|run|\ - uath|upgt|ural|urtw|wi|wpi|wtap|zyd)[0-9]+"; -}; - -# Note that the attach/detach with the highest value wins, so that one can -# override these general rules. - -# -# Configure the interface on attach. Due to a historical accident, this -# script is called pccard_ether. -# -# NB: DETACH events are ignored; the kernel should handle all cleanup -# (routes, arp cache). Beware of races against immediate create -# of a device with the same name; e.g. -# ifconfig bridge0 destroy; ifconfig bridge0 create -# -notify 0 { - match "system" "IFNET"; - match "subsystem" "!usbus[0-9]+"; - match "type" "ATTACH"; - action "/etc/pccard_ether $subsystem start"; -}; - -# -# Try to start dhclient on Ethernet-like interfaces when the link comes -# up. Only devices that are configured to support DHCP will actually -# run it. No link down rule exists because dhclient automatically exits -# when the link goes down. -# -notify 0 { - match "system" "IFNET"; - match "type" "LINK_UP"; - media-type "ethernet"; - action "service dhclient quietstart $subsystem"; -}; - -# -# Like Ethernet devices, but separate because 802.11 require spawning -# wlan(4) interface. -# -attach 0 { - device-name "$wifi-driver-regex"; - action "/etc/pccard_ether $device-name startchildren"; -}; -detach 0 { - device-name "$wifi-driver-regex"; - action "/etc/pccard_ether $device-name stopchildren"; -}; -notify 0 { - match "system" "IFNET"; - match "type" "LINK_UP"; - media-type "802.11"; - action "service dhclient quietstart $subsystem"; -}; - -# An entry like this might be in a different file, but is included here -# as an example of how to override things. Normally 'ed50' would match -# the above attach/detach stuff, but the value of 100 makes it -# hard wired to 1.2.3.4. -attach 100 { - device-name "ed50"; - action "ifconfig $device-name inet 1.2.3.4 netmask 0xffff0000"; -}; -detach 100 { - device-name "ed50"; -}; - -# When a USB Bluetooth dongle appears, activate it -attach 100 { - device-name "ubt[0-9]+"; - action "service bluetooth quietstart $device-name"; -}; -detach 100 { - device-name "ubt[0-9]+"; - action "service bluetooth quietstop $device-name"; -}; - -# Firmware downloader for Atheros AR3011 based USB Bluetooth devices -#attach 100 { -# match "vendor" "0x0cf3"; -# match "product" "0x3000"; -# action "sleep 2 && /usr/sbin/ath3kfw -d $device-name -f /usr/local/etc/ath3k-1.fw"; -#}; - -# When a USB keyboard arrives, attach it as the console keyboard. -attach 100 { - device-name "ukbd0"; - action "service syscons setkeyboard /dev/ukbd0"; -}; -detach 100 { - device-name "ukbd0"; - action "service syscons setkeyboard /dev/kbd0"; -}; - -notify 100 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "CREATE"; - match "cdev" "atp[0-9]+"; - - action "service moused quietstart $cdev"; -}; - -notify 100 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "CREATE"; - match "cdev" "ums[0-9]+"; - - action "service moused quietstart $cdev"; -}; - -notify 100 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "CREATE"; - match "cdev" "wsp[0-9]+"; - - action "service moused quietstart $cdev"; -}; - -notify 100 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "DESTROY"; - match "cdev" "ums[0-9]+"; - - action "service moused stop $cdev"; -}; - -# Firmware download into the ActiveWire board. After the firmware download is -# done, the device detaches and reappears as something new and shiny -# automatically. -attach 100 { - match "vendor" "0x0854"; - match "product" "0x0100"; - match "release" "0x0000"; - action "/usr/local/bin/ezdownload -f /usr/local/share/usb/firmware/0854.0100.0_01.hex $device-name"; -}; - -# Firmware download for Entrega Serial DB25 adapter. -attach 100 { - match "vendor" "0x1645"; - match "product" "0x8001"; - match "release" "0x0101"; - action "if ! kldstat -n usio > /dev/null 2>&1 ; then kldload usio; fi; /usr/sbin/ezdownload -v -f /usr/share/usb/firmware/1645.8001.0101 /dev/$device-name"; -}; - -# This entry starts the ColdSync tool in daemon mode. Make sure you have an up -# to date /usr/local/etc/palms. We override the 'listen' settings for port and -# type in /usr/local/etc/coldsync.conf. -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x082d"; - match "product" "0x0100"; - match "release" "0x0100"; - action "/usr/local/bin/coldsync -md -p /dev/$cdev -t usb"; -}; - -# -# Rescan SCSI device-names on attach, but not detach. However, it is -# disabled by default due to reports of problems. -# -attach 0 { - device-name "$scsi-controller-regex"; -// action "camcontrol rescan all"; -}; - -# Don't even try to second guess what to do about drivers that don't -# match here. Instead, pass it off to syslog. Commented out for the -# moment, as the pnpinfo variable isn't set in devd yet. Individual -# variables within the bus supplied pnpinfo are set. -nomatch 0 { -# action "logger Unknown device: $pnpinfo $location $bus"; -}; - -# Various logging of unknown devices. -nomatch 10 { - match "bus" "uhub[0-9]+"; - action "logger Unknown USB device: vendor $vendor product $product \ - bus $bus"; -}; - -# Some PC-CARDs don't offer numerical manufacturer/product IDs, just -# show the CIS info there. -nomatch 20 { - match "bus" "pccard[0-9]+"; - match "manufacturer" "0xffffffff"; - match "product" "0xffffffff"; - action "logger Unknown PCCARD device: CISproduct $cisproduct \ - CIS-vendor $cisvendor bus $bus"; -}; - -nomatch 10 { - match "bus" "pccard[0-9]+"; - action "logger Unknown PCCARD device: manufacturer $manufacturer \ - product $product CISproduct $cisproduct CIS-vendor \ - $cisvendor bus $bus"; -}; - -nomatch 10 { - match "bus" "cardbus[0-9]+"; - action "logger Unknown Cardbus device: device $device class $class \ - vendor $vendor bus $bus"; -}; - -# Switch power profiles when the AC line state changes. -notify 10 { - match "system" "ACPI"; - match "subsystem" "ACAD"; - action "service power_profile $notify"; -}; - -# Notify all users before beginning emergency shutdown when we get -# a _CRT or _HOT thermal event and we're going to power down the system -# very soon. -notify 10 { - match "system" "ACPI"; - match "subsystem" "Thermal"; - match "notify" "0xcc"; - action "logger -p kern.emerg 'WARNING: system temperature too high, shutting down soon!'"; -}; - -# User requested suspend, so perform preparation steps and then execute -# the actual suspend process. -notify 10 { - match "system" "ACPI"; - match "subsystem" "Suspend"; - action "/etc/rc.suspend acpi $notify"; -}; -notify 10 { - match "system" "ACPI"; - match "subsystem" "Resume"; - action "/etc/rc.resume acpi $notify"; -}; - -/* EXAMPLES TO END OF FILE - -# An example of something that a vendor might install if you were to -# add their device. This might reside in /usr/local/etc/devd/deqna.conf. -# A deqna is, in this hypothetical example, a pccard ethernet-like device. -# Students of history may know other devices by this name, and will get -# the in-jokes in this entry. -nomatch 10 { - match "bus" "pccard[0-9]+"; - match "manufacturer" "0x1234"; - match "product" "0x2323"; - action "kldload -n if_deqna"; -}; -attach 10 { - device-name "deqna[0-9]+"; - action "/etc/pccard_ether $device-name start"; -}; -detach 10 { - device-name "deqna[0-9]+"; - action "/etc/pccard_ether $device-name stop"; -}; - -# Examples of notify hooks. A notify is a generic way for a kernel -# subsystem to send event notification to userland. - -# Here are some examples of ACPI notify handlers. ACPI subsystems that -# generate notifies include the AC adapter, power/sleep buttons, -# control method batteries, lid switch, and thermal zones. -# -# Information returned is not always the same as the ACPI notify -# events. See the ACPI specification for more information about -# notifies. Here is the information returned for each subsystem: -# -# ACAD: AC line state (0 is offline, 1 is online) -# Button: Button pressed (0 for power, 1 for sleep) -# CMBAT: ACPI battery events -# Lid: Lid state (0 is closed, 1 is open) -# Suspend, Resume: Suspend and resume notification -# Thermal: ACPI thermal zone events -# -# This example calls a script when the AC state changes, passing the -# notify value as the first argument. If the state is 0x00, it might -# call some sysctls to implement economy mode. If 0x01, it might set -# the mode to performance. -notify 10 { - match "system" "ACPI"; - match "subsystem" "ACAD"; - action "/etc/acpi_ac $notify"; -}; - -# This example works around a memory leak in PostgreSQL, restarting -# it when the "user:postgres:swap:devctl=1G" rctl(8) rule gets triggered. -notify 0 { - match "system" "RCTL"; - match "rule" "user:770:swap:.*"; - action "service postgresql restart"; -}; - -# Discard autofs caches, useful for the -media special map. -notify 100 { - match "system" "GEOM"; - match "subsystem" "DEV"; - action "/usr/sbin/automount -c"; -}; - -# Handle userland coredumps. -# This commented out handler makes it possible to run an -# automated debugging session after the core dump is generated. -# Replace action with a proper coredump handler, but be aware that -# it will run with elevated privileges. -notify 10 { - match "system" "kernel"; - match "subsystem" "signal"; - match "type" "coredump"; - action "logger $comm $core"; -}; - -# Let the init(8) know there's a new USB serial interface it might -# want to run getty(8) for. This includes device-side tty created -# by usb_template(4). -notify 100 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "CREATE"; - match "cdev" "ttyU[0-9]+"; - action "/sbin/init q"; -}; - -*/ Index: head/etc/devd/Makefile =================================================================== --- head/etc/devd/Makefile +++ head/etc/devd/Makefile @@ -1,34 +0,0 @@ -# $FreeBSD$ - -.include - -FILEGROUPS= FILES - -FILES+= devmatch.conf - -.if ${MACHINE} == "powerpc" -FILES+= apple.conf -.endif - -.if ${MACHINE} == "amd64" || ${MACHINE} == "i386" -.if ${MK_ACPI} != "no" -FILES+= asus.conf -.endif -.if ${MK_HYPERV} != "no" -FILES+= hyperv.conf -.endif -.endif - -.if ${MK_USB} != "no" -FILES+= uath.conf ulpt.conf -.endif - -.if ${MK_ZFS} != "no" -FILES+= zfs.conf -.endif - -NO_OBJ= -FILESDIR= /etc/devd -FILESMODE= 644 - -.include Index: head/etc/devd/apple.conf =================================================================== --- head/etc/devd/apple.conf +++ head/etc/devd/apple.conf @@ -1,80 +0,0 @@ -# $FreeBSD$ -# -# PowerPC Apple specific devd events - -# Keyboard power key -notify 0 { - match "system" "PMU"; - match "subsystem" "Button"; - action "shutdown -p now"; -}; - - -# PowerBook and iBook lid close. -notify 0 { - match "system" "PMU"; - match "subsystem" "lid"; - match "type" "close"; - action "shutdown -p now"; -}; - - -# The next blocks enable brightness hotkeys that can be found on Apple laptops -notify 0 { - match "system" "PMU"; - match "subsystem" "keys"; - match "type" "brightness"; - match "notify" "down"; - action "sysctl dev.backlight.0.level=\ - $(expr `sysctl -n dev.backlight.0.level` - 10)"; -}; - -notify 0 { - match "system" "PMU"; - match "subsystem" "keys"; - match "type" "brightness"; - match "notify" "up"; - action "sysctl dev.backlight.0.level=\ - $(expr `sysctl -n dev.backlight.0.level` + 10)"; -}; - - -# The next blocks enable volume hotkeys that can be found on Apple laptops -notify 0 { - match "system" "PMU"; - match "subsystem" "keys"; - match "type" "mute"; - action "mixer 0"; -}; - -notify 0 { - match "system" "PMU"; - match "subsystem" "keys"; - match "type" "volume"; - match "notify" "down"; - action "mixer vol -10"; -}; - -notify 0 { - match "system" "PMU"; - match "subsystem" "keys"; - match "type" "volume"; - match "notify" "up"; - action "mixer vol +10"; -}; - -# Eject key -notify 0 { - match "system" "PMU"; - match "subsystem" "keys"; - match "type" "eject"; - action "camcontrol eject cd0"; -}; - -# Equivalent to the ACPI/ACAD notify -notify 10 { - match "system" "PMU"; - match "subsystem" "POWER"; - match "type" "ACLINE"; - action "service power_profile $notify"; -}; Index: head/etc/devd/asus.conf =================================================================== --- head/etc/devd/asus.conf +++ head/etc/devd/asus.conf @@ -1,74 +0,0 @@ -# $FreeBSD$ -# -# ASUS specific devd events - -# The next blocks enable volume hotkeys that can be found on the Asus laptops -notify 0 { - match "system" "ACPI"; - match "subsystem" "ASUS"; - match "notify" "0x32"; - action "mixer 0"; -}; - -notify 0 { - match "system" "ACPI"; - match "subsystem" "ASUS"; - match "notify" "0x31"; - action "mixer vol -10"; -}; - -notify 0 { - match "system" "ACPI"; - match "subsystem" "ASUS"; - match "notify" "0x30"; - action "mixer vol +10"; -}; - -# The next blocks enable volume hotkeys that can be found on the Asus EeePC -notify 0 { - match "system" "ACPI"; - match "subsystem" "ASUS-Eee"; - match "notify" "0x13"; - action "mixer 0"; -}; - -notify 0 { - match "system" "ACPI"; - match "subsystem" "ASUS-Eee"; - match "notify" "0x14"; - action "mixer vol -10"; -}; - -notify 0 { - match "system" "ACPI"; - match "subsystem" "ASUS-Eee"; - match "notify" "0x15"; - action "mixer vol +10"; -}; - -# Enable user hotkeys that can be found on the Asus EeePC -# The four keys above the keyboard notify 0x1a through to 0x1d respectively -#notify 0 { -# match "system" "ACPI"; -# match "subsystem" "ASUS-Eee"; -# match "notify" "0x1a"; -# action ""; -#}; -#notify 0 { -# match "system" "ACPI"; -# match "subsystem" "ASUS-Eee"; -# match "notify" "0x1b"; -# action ""; -#}; -#notify 0 { -# match "system" "ACPI"; -# match "subsystem" "ASUS-Eee"; -# match "notify" "0x1c"; -# action ""; -#}; -#notify 0 { -# match "system" "ACPI"; -# match "subsystem" "ASUS-Eee"; -# match "notify" "0x1d"; -# action ""; -#}; Index: head/etc/devd/devmatch.conf =================================================================== --- head/etc/devd/devmatch.conf +++ head/etc/devd/devmatch.conf @@ -1,20 +0,0 @@ -# -# $FreeBSD$ -# - -# -# Example devd configuration file for automatically -# loading what modules we can based on nomatch -# events. -# -# Generic NOMATCH event -nomatch 100 { - action "service devmatch quietstart '?'$_"; -}; - -# Add the following to devd.conf to prevent this from running: -# nomatch 1000 { -# action "true"; -# }; -# it replaces the generic event with one of higher priority that -# does nothing. You can also set 'devmatch_enable=NO' in /etc/rc.conf Index: head/etc/devd/hyperv.conf =================================================================== --- head/etc/devd/hyperv.conf +++ head/etc/devd/hyperv.conf @@ -1,108 +0,0 @@ -# $FreeBSD$ -# -# Hyper-V specific events - -notify 10 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "CREATE"; - match "cdev" "hv_kvp_dev"; - action "/usr/sbin/hv_kvp_daemon"; -}; - -notify 10 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "DESTROY"; - match "cdev" "hv_kvp_dev"; - action "pkill -x hv_kvp_daemon"; -}; - -notify 11 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "CREATE"; - match "cdev" "hv_fsvss_dev"; - action "/usr/sbin/hv_vss_daemon"; -}; - -notify 11 { - match "system" "DEVFS"; - match "subsystem" "CDEV"; - match "type" "DESTROY"; - match "cdev" "hv_fsvss_dev"; - action "pkill -x hv_vss_daemon"; -}; - -# -# Rules for non-transparent network VF. -# -# How network VF works with hn(4) on Hyper-V in non-transparent mode: -# -# - Each network VF has a corresponding hn(4). -# - The network VF and the it's corresponding hn(4) have the same hardware -# address. -# - Once the network VF is up, e.g. ifconfig VF up: -# o All of the transmission should go through the network VF. -# o Most of the reception goes through the network VF. -# o Small amount of reception may go through the corresponding hn(4). -# This reception will happen, even if the corresponding hn(4) is -# down. The corresponding hn(4) will change the reception interface -# to the network VF, so that network layer and application layer will -# be tricked into thinking that these packets were received by the -# network VF. -# o The corresponding hn(4) pretends the physical link is down. -# - Once the network VF is down or detached: -# o All of the transmission should go through the corresponding hn(4). -# o All of the reception goes through the corresponding hn(4). -# o The corresponding hn(4) fallbacks to the original physical link -# detection logic. -# -# All these features are mainly used to help live migration, during which -# the network VF will be detached, while the network communication to the -# VM must not be cut off. In order to reach this level of live migration -# transparency, we use failover mode lagg(4) with the network VF and the -# corresponding hn(4) attached to it. -# -# To ease user configuration for both network VF and non-network VF, the -# lagg(4) will be created by the following rules, and the configuration -# of the corresponding hn(4) will be applied to the lagg(4) automatically. -# -# NOTE: -# If live migration is not needed at all, the following rules could be -# commented out, and the network VF interface could be used exclusively. -# Most often the corresponding hn(4) could be completely ignored. -# -# -# Default workflow for the network VF bringup: -# 1) ETHERNET/IFATTACH -> VF interface up (delayed by rc.conf hyperv_vf_delay -# seconds). This operation will trigger HYPERV_NIC_VF/VF_UP. -# 2) HYPERV_NIC_VF/VF_UP: -# a) Create laggX coresponding to hnX. -# b) Add hnX and VF to laggX. -# c) Whack all previous network configuration on hnX, including stopping -# dhclient. -# d) Apply rc.conf ifconfig_hnX to laggX; i.e. including starting dhclient. -# -# NOTE: -# HYPERV_NIC_VF/VF_UP action script could be customized per-interface by -# adding /usr/libexec/hyperv/hyperv_vfup.hnX script. -# /usr/libexec/hyperv/hyperv_vfup could be used as the template for the -# customized per-interface script. -# -# NOTE: -# For transparent network VF, hyperv_vfattach does nothing and -# HYPERV_NIC_VF/VF_UP will not be triggered at all. -# - -notify 10 { - match "system" "HYPERV_NIC_VF"; - match "type" "VF_UP"; - action "/usr/libexec/hyperv/hyperv_vfup $subsystem"; -}; - -notify 10 { - match "system" "ETHERNET"; - match "type" "IFATTACH"; - action "/usr/libexec/hyperv/hyperv_vfattach $subsystem 0"; -}; Index: head/etc/devd/uath.conf =================================================================== --- head/etc/devd/uath.conf +++ head/etc/devd/uath.conf @@ -1,146 +0,0 @@ -# $FreeBSD$ -# -# Atheros USB wireless network device specific devd events - -# Accton -# SMCWUSBT-G2 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x083a"; - match "product" "0x4507"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# Atheros Communications -# AR5523 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x168c"; - match "product" "0x0002"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# Atheros Communications -# AR5523 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x0cf3"; - match "product" "(0x0002|0x0004|0x0006)"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# Conceptronic -# AR5523 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x0d8e"; - match "product" "(0x7802|0x7812)"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# D-Link -# DWL-AG132, DWL-G132 and DWL-AG122 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x2001"; - match "product" "(0x3a01|0x3a03|0x3a05)"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# D-Link -# DWA-120 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x07d1"; - match "product" "0x3a0c"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# Gigaset -# SMCWUSBT-G -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x1690"; - match "product" "(0x0711|0x0713)"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# Global Sun Technology -# AR5523 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x16ab"; - match "product" "(0x7802|0x7812)"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# BayNETGEAR -# WG111U -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x0846"; - match "product" "0x4301"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# Netgear -# WG111T and WPN111 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x1385"; - match "product" "(0x4251|0x5f01)"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# U-MEDIA Communications -# TEW-444UB and AR5523 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x157e"; - match "product" "(0x3007|0x3206)"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# Wistron NeWeb -# AR5523 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x1435"; - match "product" "(0x0827|0x0829)"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; - -# Z-Com -# AR5523 -notify 100 { - match "system" "USB"; - match "subsystem" "DEVICE"; - match "type" "ATTACH"; - match "vendor" "0x0cde"; - match "product" "0x0013"; - action "/usr/sbin/uathload -d /dev/$cdev"; -}; Index: head/etc/devd/ulpt.conf =================================================================== --- head/etc/devd/ulpt.conf +++ head/etc/devd/ulpt.conf @@ -1,18 +0,0 @@ -# -# $FreeBSD$ -# - -# -# Example devd configuration file for USB printers. -# Uncomment the notify rule below to enable. -# -# Generic USB printer devices -#notify 100 { -# match "system" "USB"; -# match "subsystem" "INTERFACE"; -# match "type" "ATTACH"; -# match "intclass" "0x07"; -# match "intsubclass" "0x01"; -# match "intprotocol" "(0x01|0x02|0x03)"; -# action "chown root:wheel /dev/$cdev"; -#}; Index: head/etc/devd/zfs.conf =================================================================== --- head/etc/devd/zfs.conf +++ head/etc/devd/zfs.conf @@ -1,77 +0,0 @@ -# $FreeBSD$ -# -# Sample ZFS problem reports handling. - -notify 10 { - match "system" "ZFS"; - match "type" "fs.zfs.checksum"; - action "logger -p local7.warn -t ZFS 'checksum mismatch, zpool=$pool path=$vdev_path offset=$zio_offset size=$zio_size'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "fs.zfs.io"; - action "logger -p local7.warn -t ZFS 'vdev I/O failure, zpool=$pool path=$vdev_path offset=$zio_offset size=$zio_size error=$zio_err'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "fs.zfs.data"; - action "logger -p local7.warn -t ZFS 'pool I/O failure, zpool=$pool error=$zio_err'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "fs.zfs.zpool"; - action "logger -p local7.err -t ZFS 'failed to load zpool $pool'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "fs.zfs.vdev\..*"; - action "logger -p local7.err -t ZFS 'vdev problem, zpool=$pool path=$vdev_path type=$type'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "fs.zfs.io_failure"; - action "logger -p local7.alert -t ZFS 'catastrophic pool I/O failure, zpool=$pool'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "fs.zfs.probe_failure"; - action "logger -p local7.err -t ZFS 'vdev probe failure, zpool=$pool path=$vdev_path'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "fs.zfs.log_replay"; - action "logger -p local7.err -t ZFS 'pool log replay failure, zpool=$pool'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "fs.zfs.config_cache_write"; - action "logger -p local7.warn -t ZFS 'failed to write zpool.cache, zpool=$pool'"; -}; - - -notify 10 { - match "system" "ZFS"; - match "type" "resource.fs.zfs.removed"; - action "logger -p local7.notice -t ZFS 'vdev is removed, pool_guid=$pool_guid vdev_guid=$vdev_guid'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "resource.fs.zfs.autoreplace"; - action "logger -p local7.info -t ZFS 'autoreplace is configured for vdev, pool_guid=$pool_guid vdev_guid=$vdev_guid'"; -}; - -notify 10 { - match "system" "ZFS"; - match "type" "resource.fs.zfs.statechange"; - action "logger -p local7.notice -t ZFS 'vdev state changed, pool_guid=$pool_guid vdev_guid=$vdev_guid'"; -}; - Index: head/sbin/devd/Makefile =================================================================== --- head/sbin/devd/Makefile +++ head/sbin/devd/Makefile @@ -4,6 +4,30 @@ WARNS?= 3 PACKAGE=runtime +CONFGROUPS= CONFS DEVD +CONFS= devd.conf +DEVD= devmatch.conf +DEVDDIR= /etc/devd +.if ${MK_ACPI} != "no" +DEVD+= asus.conf +.endif + +.if ${MK_HYPERV} != "no" +DEVD+= hyperv.conf +.endif + +.if ${MK_USB} != "no" +DEVD+= uath.conf ulpt.conf +.endif + +.if ${MACHINE_ARCH} == "powerpc" +DEVD+= apple.conf +.endif + +.if ${MK_ZFS} != "no" +DEVD+= zfs.conf +.endif + PROG_CXX=devd SRCS= devd.cc token.l parse.y y.tab.h MAN= devd.8 devd.conf.5 Index: head/sbin/devd/apple.conf =================================================================== --- head/sbin/devd/apple.conf +++ head/sbin/devd/apple.conf @@ -0,0 +1,80 @@ +# $FreeBSD$ +# +# PowerPC Apple specific devd events + +# Keyboard power key +notify 0 { + match "system" "PMU"; + match "subsystem" "Button"; + action "shutdown -p now"; +}; + + +# PowerBook and iBook lid close. +notify 0 { + match "system" "PMU"; + match "subsystem" "lid"; + match "type" "close"; + action "shutdown -p now"; +}; + + +# The next blocks enable brightness hotkeys that can be found on Apple laptops +notify 0 { + match "system" "PMU"; + match "subsystem" "keys"; + match "type" "brightness"; + match "notify" "down"; + action "sysctl dev.backlight.0.level=\ + $(expr `sysctl -n dev.backlight.0.level` - 10)"; +}; + +notify 0 { + match "system" "PMU"; + match "subsystem" "keys"; + match "type" "brightness"; + match "notify" "up"; + action "sysctl dev.backlight.0.level=\ + $(expr `sysctl -n dev.backlight.0.level` + 10)"; +}; + + +# The next blocks enable volume hotkeys that can be found on Apple laptops +notify 0 { + match "system" "PMU"; + match "subsystem" "keys"; + match "type" "mute"; + action "mixer 0"; +}; + +notify 0 { + match "system" "PMU"; + match "subsystem" "keys"; + match "type" "volume"; + match "notify" "down"; + action "mixer vol -10"; +}; + +notify 0 { + match "system" "PMU"; + match "subsystem" "keys"; + match "type" "volume"; + match "notify" "up"; + action "mixer vol +10"; +}; + +# Eject key +notify 0 { + match "system" "PMU"; + match "subsystem" "keys"; + match "type" "eject"; + action "camcontrol eject cd0"; +}; + +# Equivalent to the ACPI/ACAD notify +notify 10 { + match "system" "PMU"; + match "subsystem" "POWER"; + match "type" "ACLINE"; + action "service power_profile $notify"; +}; Index: head/sbin/devd/asus.conf =================================================================== --- head/sbin/devd/asus.conf +++ head/sbin/devd/asus.conf @@ -0,0 +1,74 @@ +# $FreeBSD$ +# +# ASUS specific devd events + +# The next blocks enable volume hotkeys that can be found on the Asus laptops +notify 0 { + match "system" "ACPI"; + match "subsystem" "ASUS"; + match "notify" "0x32"; + action "mixer 0"; +}; + +notify 0 { + match "system" "ACPI"; + match "subsystem" "ASUS"; + match "notify" "0x31"; + action "mixer vol -10"; +}; + +notify 0 { + match "system" "ACPI"; + match "subsystem" "ASUS"; + match "notify" "0x30"; + action "mixer vol +10"; +}; + +# The next blocks enable volume hotkeys that can be found on the Asus EeePC +notify 0 { + match "system" "ACPI"; + match "subsystem" "ASUS-Eee"; + match "notify" "0x13"; + action "mixer 0"; +}; + +notify 0 { + match "system" "ACPI"; + match "subsystem" "ASUS-Eee"; + match "notify" "0x14"; + action "mixer vol -10"; +}; + +notify 0 { + match "system" "ACPI"; + match "subsystem" "ASUS-Eee"; + match "notify" "0x15"; + action "mixer vol +10"; +}; + +# Enable user hotkeys that can be found on the Asus EeePC +# The four keys above the keyboard notify 0x1a through to 0x1d respectively +#notify 0 { +# match "system" "ACPI"; +# match "subsystem" "ASUS-Eee"; +# match "notify" "0x1a"; +# action ""; +#}; +#notify 0 { +# match "system" "ACPI"; +# match "subsystem" "ASUS-Eee"; +# match "notify" "0x1b"; +# action ""; +#}; +#notify 0 { +# match "system" "ACPI"; +# match "subsystem" "ASUS-Eee"; +# match "notify" "0x1c"; +# action ""; +#}; +#notify 0 { +# match "system" "ACPI"; +# match "subsystem" "ASUS-Eee"; +# match "notify" "0x1d"; +# action ""; +#}; Index: head/sbin/devd/devd.conf =================================================================== --- head/sbin/devd/devd.conf +++ head/sbin/devd/devd.conf @@ -0,0 +1,353 @@ +# $FreeBSD$ +# +# Refer to devd.conf(5) and devd(8) man pages for the details on how to +# run and configure devd. +# + +# NB: All regular expressions have an implicit ^$ around them. +# NB: device-name is shorthand for 'match device-name' + +options { + # Each "directory" directive adds a directory to the list of + # directories that we scan for files. Files are loaded in the order + # that they are returned from readdir(3). The rule-sets are combined + # to create a DFA that's used to match events to actions. + directory "/etc/devd"; + directory "/usr/local/etc/devd"; + pid-file "/var/run/devd.pid"; + + # Setup some shorthand for regex that we use later in the file. + #XXX Yes, these are gross -- imp + set scsi-controller-regex + "(aac|adv|adw|aha|ahc|ahd|aic|amr|bt|ciss|dpt|\ + esp|ida|iir|ips|isp|mlx|mly|mpr|mps|mpt|ncr|ncv|nsp|stg|sym|\ + trm)\ + [0-9]+"; + set wifi-driver-regex + "(ath|bwi|bwn|ipw|iwi|iwm|iwn|malo|mwl|ral|rsu|rtwn|rum|run|\ + uath|upgt|ural|urtw|wi|wpi|wtap|zyd)[0-9]+"; +}; + +# Note that the attach/detach with the highest value wins, so that one can +# override these general rules. + +# +# Configure the interface on attach. Due to a historical accident, this +# script is called pccard_ether. +# +# NB: DETACH events are ignored; the kernel should handle all cleanup +# (routes, arp cache). Beware of races against immediate create +# of a device with the same name; e.g. +# ifconfig bridge0 destroy; ifconfig bridge0 create +# +notify 0 { + match "system" "IFNET"; + match "subsystem" "!usbus[0-9]+"; + match "type" "ATTACH"; + action "/etc/pccard_ether $subsystem start"; +}; + +# +# Try to start dhclient on Ethernet-like interfaces when the link comes +# up. Only devices that are configured to support DHCP will actually +# run it. No link down rule exists because dhclient automatically exits +# when the link goes down. +# +notify 0 { + match "system" "IFNET"; + match "type" "LINK_UP"; + media-type "ethernet"; + action "service dhclient quietstart $subsystem"; +}; + +# +# Like Ethernet devices, but separate because 802.11 require spawning +# wlan(4) interface. +# +attach 0 { + device-name "$wifi-driver-regex"; + action "/etc/pccard_ether $device-name startchildren"; +}; +detach 0 { + device-name "$wifi-driver-regex"; + action "/etc/pccard_ether $device-name stopchildren"; +}; +notify 0 { + match "system" "IFNET"; + match "type" "LINK_UP"; + media-type "802.11"; + action "service dhclient quietstart $subsystem"; +}; + +# An entry like this might be in a different file, but is included here +# as an example of how to override things. Normally 'ed50' would match +# the above attach/detach stuff, but the value of 100 makes it +# hard wired to 1.2.3.4. +attach 100 { + device-name "ed50"; + action "ifconfig $device-name inet 1.2.3.4 netmask 0xffff0000"; +}; +detach 100 { + device-name "ed50"; +}; + +# When a USB Bluetooth dongle appears, activate it +attach 100 { + device-name "ubt[0-9]+"; + action "service bluetooth quietstart $device-name"; +}; +detach 100 { + device-name "ubt[0-9]+"; + action "service bluetooth quietstop $device-name"; +}; + +# Firmware downloader for Atheros AR3011 based USB Bluetooth devices +#attach 100 { +# match "vendor" "0x0cf3"; +# match "product" "0x3000"; +# action "sleep 2 && /usr/sbin/ath3kfw -d $device-name -f /usr/local/etc/ath3k-1.fw"; +#}; + +# When a USB keyboard arrives, attach it as the console keyboard. +attach 100 { + device-name "ukbd0"; + action "service syscons setkeyboard /dev/ukbd0"; +}; +detach 100 { + device-name "ukbd0"; + action "service syscons setkeyboard /dev/kbd0"; +}; + +notify 100 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "CREATE"; + match "cdev" "atp[0-9]+"; + + action "service moused quietstart $cdev"; +}; + +notify 100 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "CREATE"; + match "cdev" "ums[0-9]+"; + + action "service moused quietstart $cdev"; +}; + +notify 100 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "CREATE"; + match "cdev" "wsp[0-9]+"; + + action "service moused quietstart $cdev"; +}; + +notify 100 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "DESTROY"; + match "cdev" "ums[0-9]+"; + + action "service moused stop $cdev"; +}; + +# Firmware download into the ActiveWire board. After the firmware download is +# done, the device detaches and reappears as something new and shiny +# automatically. +attach 100 { + match "vendor" "0x0854"; + match "product" "0x0100"; + match "release" "0x0000"; + action "/usr/local/bin/ezdownload -f /usr/local/share/usb/firmware/0854.0100.0_01.hex $device-name"; +}; + +# Firmware download for Entrega Serial DB25 adapter. +attach 100 { + match "vendor" "0x1645"; + match "product" "0x8001"; + match "release" "0x0101"; + action "if ! kldstat -n usio > /dev/null 2>&1 ; then kldload usio; fi; /usr/sbin/ezdownload -v -f /usr/share/usb/firmware/1645.8001.0101 /dev/$device-name"; +}; + +# This entry starts the ColdSync tool in daemon mode. Make sure you have an up +# to date /usr/local/etc/palms. We override the 'listen' settings for port and +# type in /usr/local/etc/coldsync.conf. +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x082d"; + match "product" "0x0100"; + match "release" "0x0100"; + action "/usr/local/bin/coldsync -md -p /dev/$cdev -t usb"; +}; + +# +# Rescan SCSI device-names on attach, but not detach. However, it is +# disabled by default due to reports of problems. +# +attach 0 { + device-name "$scsi-controller-regex"; +// action "camcontrol rescan all"; +}; + +# Don't even try to second guess what to do about drivers that don't +# match here. Instead, pass it off to syslog. Commented out for the +# moment, as the pnpinfo variable isn't set in devd yet. Individual +# variables within the bus supplied pnpinfo are set. +nomatch 0 { +# action "logger Unknown device: $pnpinfo $location $bus"; +}; + +# Various logging of unknown devices. +nomatch 10 { + match "bus" "uhub[0-9]+"; + action "logger Unknown USB device: vendor $vendor product $product \ + bus $bus"; +}; + +# Some PC-CARDs don't offer numerical manufacturer/product IDs, just +# show the CIS info there. +nomatch 20 { + match "bus" "pccard[0-9]+"; + match "manufacturer" "0xffffffff"; + match "product" "0xffffffff"; + action "logger Unknown PCCARD device: CISproduct $cisproduct \ + CIS-vendor $cisvendor bus $bus"; +}; + +nomatch 10 { + match "bus" "pccard[0-9]+"; + action "logger Unknown PCCARD device: manufacturer $manufacturer \ + product $product CISproduct $cisproduct CIS-vendor \ + $cisvendor bus $bus"; +}; + +nomatch 10 { + match "bus" "cardbus[0-9]+"; + action "logger Unknown Cardbus device: device $device class $class \ + vendor $vendor bus $bus"; +}; + +# Switch power profiles when the AC line state changes. +notify 10 { + match "system" "ACPI"; + match "subsystem" "ACAD"; + action "service power_profile $notify"; +}; + +# Notify all users before beginning emergency shutdown when we get +# a _CRT or _HOT thermal event and we're going to power down the system +# very soon. +notify 10 { + match "system" "ACPI"; + match "subsystem" "Thermal"; + match "notify" "0xcc"; + action "logger -p kern.emerg 'WARNING: system temperature too high, shutting down soon!'"; +}; + +# User requested suspend, so perform preparation steps and then execute +# the actual suspend process. +notify 10 { + match "system" "ACPI"; + match "subsystem" "Suspend"; + action "/etc/rc.suspend acpi $notify"; +}; +notify 10 { + match "system" "ACPI"; + match "subsystem" "Resume"; + action "/etc/rc.resume acpi $notify"; +}; + +/* EXAMPLES TO END OF FILE + +# An example of something that a vendor might install if you were to +# add their device. This might reside in /usr/local/etc/devd/deqna.conf. +# A deqna is, in this hypothetical example, a pccard ethernet-like device. +# Students of history may know other devices by this name, and will get +# the in-jokes in this entry. +nomatch 10 { + match "bus" "pccard[0-9]+"; + match "manufacturer" "0x1234"; + match "product" "0x2323"; + action "kldload -n if_deqna"; +}; +attach 10 { + device-name "deqna[0-9]+"; + action "/etc/pccard_ether $device-name start"; +}; +detach 10 { + device-name "deqna[0-9]+"; + action "/etc/pccard_ether $device-name stop"; +}; + +# Examples of notify hooks. A notify is a generic way for a kernel +# subsystem to send event notification to userland. + +# Here are some examples of ACPI notify handlers. ACPI subsystems that +# generate notifies include the AC adapter, power/sleep buttons, +# control method batteries, lid switch, and thermal zones. +# +# Information returned is not always the same as the ACPI notify +# events. See the ACPI specification for more information about +# notifies. Here is the information returned for each subsystem: +# +# ACAD: AC line state (0 is offline, 1 is online) +# Button: Button pressed (0 for power, 1 for sleep) +# CMBAT: ACPI battery events +# Lid: Lid state (0 is closed, 1 is open) +# Suspend, Resume: Suspend and resume notification +# Thermal: ACPI thermal zone events +# +# This example calls a script when the AC state changes, passing the +# notify value as the first argument. If the state is 0x00, it might +# call some sysctls to implement economy mode. If 0x01, it might set +# the mode to performance. +notify 10 { + match "system" "ACPI"; + match "subsystem" "ACAD"; + action "/etc/acpi_ac $notify"; +}; + +# This example works around a memory leak in PostgreSQL, restarting +# it when the "user:postgres:swap:devctl=1G" rctl(8) rule gets triggered. +notify 0 { + match "system" "RCTL"; + match "rule" "user:770:swap:.*"; + action "service postgresql restart"; +}; + +# Discard autofs caches, useful for the -media special map. +notify 100 { + match "system" "GEOM"; + match "subsystem" "DEV"; + action "/usr/sbin/automount -c"; +}; + +# Handle userland coredumps. +# This commented out handler makes it possible to run an +# automated debugging session after the core dump is generated. +# Replace action with a proper coredump handler, but be aware that +# it will run with elevated privileges. +notify 10 { + match "system" "kernel"; + match "subsystem" "signal"; + match "type" "coredump"; + action "logger $comm $core"; +}; + +# Let the init(8) know there's a new USB serial interface it might +# want to run getty(8) for. This includes device-side tty created +# by usb_template(4). +notify 100 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "CREATE"; + match "cdev" "ttyU[0-9]+"; + action "/sbin/init q"; +}; + +*/ Index: head/sbin/devd/devmatch.conf =================================================================== --- head/sbin/devd/devmatch.conf +++ head/sbin/devd/devmatch.conf @@ -0,0 +1,20 @@ +# +# $FreeBSD$ +# + +# +# Example devd configuration file for automatically +# loading what modules we can based on nomatch +# events. +# +# Generic NOMATCH event +nomatch 100 { + action "service devmatch quietstart '?'$_"; +}; + +# Add the following to devd.conf to prevent this from running: +# nomatch 1000 { +# action "true"; +# }; +# it replaces the generic event with one of higher priority that +# does nothing. You can also set 'devmatch_enable=NO' in /etc/rc.conf Index: head/sbin/devd/hyperv.conf =================================================================== --- head/sbin/devd/hyperv.conf +++ head/sbin/devd/hyperv.conf @@ -0,0 +1,108 @@ +# $FreeBSD$ +# +# Hyper-V specific events + +notify 10 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "CREATE"; + match "cdev" "hv_kvp_dev"; + action "/usr/sbin/hv_kvp_daemon"; +}; + +notify 10 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "DESTROY"; + match "cdev" "hv_kvp_dev"; + action "pkill -x hv_kvp_daemon"; +}; + +notify 11 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "CREATE"; + match "cdev" "hv_fsvss_dev"; + action "/usr/sbin/hv_vss_daemon"; +}; + +notify 11 { + match "system" "DEVFS"; + match "subsystem" "CDEV"; + match "type" "DESTROY"; + match "cdev" "hv_fsvss_dev"; + action "pkill -x hv_vss_daemon"; +}; + +# +# Rules for non-transparent network VF. +# +# How network VF works with hn(4) on Hyper-V in non-transparent mode: +# +# - Each network VF has a corresponding hn(4). +# - The network VF and the it's corresponding hn(4) have the same hardware +# address. +# - Once the network VF is up, e.g. ifconfig VF up: +# o All of the transmission should go through the network VF. +# o Most of the reception goes through the network VF. +# o Small amount of reception may go through the corresponding hn(4). +# This reception will happen, even if the corresponding hn(4) is +# down. The corresponding hn(4) will change the reception interface +# to the network VF, so that network layer and application layer will +# be tricked into thinking that these packets were received by the +# network VF. +# o The corresponding hn(4) pretends the physical link is down. +# - Once the network VF is down or detached: +# o All of the transmission should go through the corresponding hn(4). +# o All of the reception goes through the corresponding hn(4). +# o The corresponding hn(4) fallbacks to the original physical link +# detection logic. +# +# All these features are mainly used to help live migration, during which +# the network VF will be detached, while the network communication to the +# VM must not be cut off. In order to reach this level of live migration +# transparency, we use failover mode lagg(4) with the network VF and the +# corresponding hn(4) attached to it. +# +# To ease user configuration for both network VF and non-network VF, the +# lagg(4) will be created by the following rules, and the configuration +# of the corresponding hn(4) will be applied to the lagg(4) automatically. +# +# NOTE: +# If live migration is not needed at all, the following rules could be +# commented out, and the network VF interface could be used exclusively. +# Most often the corresponding hn(4) could be completely ignored. +# +# +# Default workflow for the network VF bringup: +# 1) ETHERNET/IFATTACH -> VF interface up (delayed by rc.conf hyperv_vf_delay +# seconds). This operation will trigger HYPERV_NIC_VF/VF_UP. +# 2) HYPERV_NIC_VF/VF_UP: +# a) Create laggX coresponding to hnX. +# b) Add hnX and VF to laggX. +# c) Whack all previous network configuration on hnX, including stopping +# dhclient. +# d) Apply rc.conf ifconfig_hnX to laggX; i.e. including starting dhclient. +# +# NOTE: +# HYPERV_NIC_VF/VF_UP action script could be customized per-interface by +# adding /usr/libexec/hyperv/hyperv_vfup.hnX script. +# /usr/libexec/hyperv/hyperv_vfup could be used as the template for the +# customized per-interface script. +# +# NOTE: +# For transparent network VF, hyperv_vfattach does nothing and +# HYPERV_NIC_VF/VF_UP will not be triggered at all. +# + +notify 10 { + match "system" "HYPERV_NIC_VF"; + match "type" "VF_UP"; + action "/usr/libexec/hyperv/hyperv_vfup $subsystem"; +}; + +notify 10 { + match "system" "ETHERNET"; + match "type" "IFATTACH"; + action "/usr/libexec/hyperv/hyperv_vfattach $subsystem 0"; +}; Index: head/sbin/devd/uath.conf =================================================================== --- head/sbin/devd/uath.conf +++ head/sbin/devd/uath.conf @@ -0,0 +1,146 @@ +# $FreeBSD$ +# +# Atheros USB wireless network device specific devd events + +# Accton +# SMCWUSBT-G2 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x083a"; + match "product" "0x4507"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# Atheros Communications +# AR5523 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x168c"; + match "product" "0x0002"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# Atheros Communications +# AR5523 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x0cf3"; + match "product" "(0x0002|0x0004|0x0006)"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# Conceptronic +# AR5523 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x0d8e"; + match "product" "(0x7802|0x7812)"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# D-Link +# DWL-AG132, DWL-G132 and DWL-AG122 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x2001"; + match "product" "(0x3a01|0x3a03|0x3a05)"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# D-Link +# DWA-120 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x07d1"; + match "product" "0x3a0c"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# Gigaset +# SMCWUSBT-G +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x1690"; + match "product" "(0x0711|0x0713)"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# Global Sun Technology +# AR5523 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x16ab"; + match "product" "(0x7802|0x7812)"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# BayNETGEAR +# WG111U +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x0846"; + match "product" "0x4301"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# Netgear +# WG111T and WPN111 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x1385"; + match "product" "(0x4251|0x5f01)"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# U-MEDIA Communications +# TEW-444UB and AR5523 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x157e"; + match "product" "(0x3007|0x3206)"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# Wistron NeWeb +# AR5523 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x1435"; + match "product" "(0x0827|0x0829)"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; + +# Z-Com +# AR5523 +notify 100 { + match "system" "USB"; + match "subsystem" "DEVICE"; + match "type" "ATTACH"; + match "vendor" "0x0cde"; + match "product" "0x0013"; + action "/usr/sbin/uathload -d /dev/$cdev"; +}; Index: head/sbin/devd/ulpt.conf =================================================================== --- head/sbin/devd/ulpt.conf +++ head/sbin/devd/ulpt.conf @@ -0,0 +1,18 @@ +# +# $FreeBSD$ +# + +# +# Example devd configuration file for USB printers. +# Uncomment the notify rule below to enable. +# +# Generic USB printer devices +#notify 100 { +# match "system" "USB"; +# match "subsystem" "INTERFACE"; +# match "type" "ATTACH"; +# match "intclass" "0x07"; +# match "intsubclass" "0x01"; +# match "intprotocol" "(0x01|0x02|0x03)"; +# action "chown root:wheel /dev/$cdev"; +#}; Index: head/sbin/devd/zfs.conf =================================================================== --- head/sbin/devd/zfs.conf +++ head/sbin/devd/zfs.conf @@ -0,0 +1,77 @@ +# $FreeBSD$ +# +# Sample ZFS problem reports handling. + +notify 10 { + match "system" "ZFS"; + match "type" "fs.zfs.checksum"; + action "logger -p local7.warn -t ZFS 'checksum mismatch, zpool=$pool path=$vdev_path offset=$zio_offset size=$zio_size'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "fs.zfs.io"; + action "logger -p local7.warn -t ZFS 'vdev I/O failure, zpool=$pool path=$vdev_path offset=$zio_offset size=$zio_size error=$zio_err'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "fs.zfs.data"; + action "logger -p local7.warn -t ZFS 'pool I/O failure, zpool=$pool error=$zio_err'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "fs.zfs.zpool"; + action "logger -p local7.err -t ZFS 'failed to load zpool $pool'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "fs.zfs.vdev\..*"; + action "logger -p local7.err -t ZFS 'vdev problem, zpool=$pool path=$vdev_path type=$type'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "fs.zfs.io_failure"; + action "logger -p local7.alert -t ZFS 'catastrophic pool I/O failure, zpool=$pool'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "fs.zfs.probe_failure"; + action "logger -p local7.err -t ZFS 'vdev probe failure, zpool=$pool path=$vdev_path'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "fs.zfs.log_replay"; + action "logger -p local7.err -t ZFS 'pool log replay failure, zpool=$pool'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "fs.zfs.config_cache_write"; + action "logger -p local7.warn -t ZFS 'failed to write zpool.cache, zpool=$pool'"; +}; + + +notify 10 { + match "system" "ZFS"; + match "type" "resource.fs.zfs.removed"; + action "logger -p local7.notice -t ZFS 'vdev is removed, pool_guid=$pool_guid vdev_guid=$vdev_guid'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "resource.fs.zfs.autoreplace"; + action "logger -p local7.info -t ZFS 'autoreplace is configured for vdev, pool_guid=$pool_guid vdev_guid=$vdev_guid'"; +}; + +notify 10 { + match "system" "ZFS"; + match "type" "resource.fs.zfs.statechange"; + action "logger -p local7.notice -t ZFS 'vdev state changed, pool_guid=$pool_guid vdev_guid=$vdev_guid'"; +}; +