Example of udev rules

# These rules tell udev what device nodes to create for aoe support.
# They may be installed along the following lines.  Check the section
# 8 udev manpage to see whether your udev supports SUBSYSTEM, and
# whether it uses one or two equal signs for SUBSYSTEM and KERNEL.
#   ecashin@makki ~$ su
#   Password:
#   bash# find /etc -type f -name udev.conf
#   /etc/udev/udev.conf
#   bash# grep udev_rules= /etc/udev/udev.conf
#   udev_rules="/etc/udev/rules.d/"
#   bash# ls /etc/udev/rules.d/
#   10-wacom.rules  50-udev.rules
#   bash# cp /path/to/linux/Documentation/admin-guide/aoe/udev.txt \
#           /etc/udev/rules.d/60-aoe.rules

# aoe char devices
SUBSYSTEM=="aoe", KERNEL=="discover",   NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="err",        NAME="etherd/%k", GROUP="disk", MODE="0440"
SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="flush",      NAME="etherd/%k", GROUP="disk", MODE="0220"

# aoe block devices     
KERNEL=="etherd*",       GROUP="disk"

Example of udev install rules script

# install the aoe-specific udev rules from udev.txt into 
# the system's udev configuration

me="`basename $0`"

# find udev.conf, often /etc/udev/udev.conf
# (or environment can specify where to find udev.conf)
if test -z "$conf"; then
	if test -r /etc/udev/udev.conf; then
		conf="`find /etc -type f -name udev.conf 2> /dev/null`"
		if test -z "$conf" || test ! -r "$conf"; then
			echo "$me Error: no udev.conf found" 1>&2
			exit 1

# find the directory where udev rules are stored, often
# /etc/udev/rules.d
rules_d="`sed -n '/^udev_rules=/{ s!udev_rules=!!; s!\"!!g; p; }' $conf`"
if test -z "$rules_d" ; then
if test ! -d "$rules_d"; then
	echo "$me Error: cannot find udev rules directory" 1>&2
	exit 1
sh -xc "cp `dirname $0`/udev.txt $rules_d/60-aoe.rules"

Example script to get status

#! /bin/sh
# collate and present sysfs information about AoE storage
# A more complete version of this script is aoe-stat, in the
# aoetools.

set -e
me=`basename $0`

# printf "$format" device mac netif state

# Suse 9.1 Pro doesn't put /sys in /etc/mtab
#test -z "`mount | grep sysfs`" && {
test ! -d "$sysd/block" && {
	echo "$me Error: sysfs is not mounted" 1>&2
	exit 1

for d in `ls -d $sysd/block/etherd* 2>/dev/null | grep -v p` end; do
	# maybe ls comes up empty, so we use "end"
	test $d = end && continue

	dev=`echo "$d" | sed 's/.*!//'`
	printf "$format" \
		"$dev" \
		"`cat \"$d/netif\"`" \
		"`cat \"$d/state\"`"
done | sort

Example of AoE autoload script

# set aoe to autoload by installing the
# aliases in /etc/modprobe.d/


if test ! -r $f || test ! -w $f; then
	echo "cannot configure $f for module autoloading" 1>&2
	exit 1

grep major-152 $f >/dev/null
if [ $? = 1 ]; then
	echo alias block-major-152 aoe >> $f
	echo alias char-major-152 aoe >> $f