Using udev-extras for hardware-specific quirks?

Dan Streetman ddstreet at ieee.org
Mon Jun 1 09:13:01 PDT 2009


Hello,

I am creating udev rules for some system units I'm responsible for
enabling Linux on; specifically these systems have multiple serial
ports with labels on the ports like "A", "B", "C", etc.  However on
many of the units the hardware doesn't match the labelling so ports
"C" and above usually do not match the right serial node, i.e. while a
port labeled "C" should be /dev/ttyS2 it isn't.

The initial udev rule I set up for one system is below - just as an
example of what I'm planning on creating.  As you can see this
particular system has a PCI serial card, with the middle 2 ports
actually wired up to the rear panel and labeled "C" and "D".  The
other 4 ports aren't actually wired up, so this rule could be changed
to ignore those instead of creating nodes for them.

Anyway, my question is, is udev-extras the appropriate place for this
to live?  I would like to put the rules into a standard location that
all distros can pull from.  It seems like DeviceKit and udev-extras is
the direction that everything is going in, but I'm not sure if
udev-extras is intended to hold system-specific quirk rules like this.
 If it is, then I would like to get this added once we finish up all
the rules for our system units.  Also, any comments/suggestions on how
I'm writing the rules are welcome.

Thanks!
--


SUBSYSTEM!="tty", GOTO="ibmrss-serial-end"
PROGRAM="/bin/cat $sys/class/dmi/id/board_vendor"
RESULT!="IBM*", GOTO="ibmrss-serial-end"

PROGRAM="/bin/cat $sys/class/dmi/id/board_version"
RESULT=="4800783", GOTO="ibmrss-serial-4800783"

LABEL="ibmrss-serial-4800783"
DEVPATH=="/devices/pci0000:00/0000:00:13.1/0000:04:0b.1/tty/ttyS2", NAME="ttyS6"
DEVPATH=="/devices/pci0000:00/0000:00:13.1/0000:04:0b.1/tty/ttyS3", NAME="ttyS7"
DEVPATH=="/devices/pci0000:00/0000:00:13.1/0000:04:0b.1/tty/ttyS4", NAME="ttyS2"
DEVPATH=="/devices/pci0000:00/0000:00:13.1/0000:04:0b.1/tty/ttyS5", NAME="ttyS3"
DEVPATH=="/devices/pci0000:00/0000:00:13.1/0000:04:0b.1/tty/ttyS6", NAME="ttyS4"
DEVPATH=="/devices/pci0000:00/0000:00:13.1/0000:04:0b.1/tty/ttyS7", NAME="ttyS5"
GOTO="ibmrss-serial-end"


LABEL="ibmrss-serial-end"


More information about the devkit-devel mailing list