Using udev-extras for hardware-specific quirks?

Dan Streetman ddstreet at
Wed Jun 3 06:26:48 PDT 2009

Hello...Martin, Kay, and thoughts on my question regarding udev-extras?

On Mon, Jun 1, 2009 at 12:13 PM, Dan Streetman <ddstreet at> wrote:
> 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