what is the precise udev event that handles miscdevices?

Greg KH greg at kroah.com
Wed Apr 1 07:59:59 EDT 2015


On Wed, Apr 01, 2015 at 07:43:05AM -0400, Robert P. J. Day wrote:
> 
>   i can trivially create misc character devices, and i know special
> device files for them will automatically show up under /dev, but what
> is the precise udev event/rule that comes into play for this?
> 
>   if i start to monitor udevadm with:
> 
> $ udevadm monitor --kernel --udev --property
> 
> and insert my misc char module, i see:
> 
> KERNEL[5342.740294] add      /module/mymisc (module)
> ACTION=add
> DEVPATH=/module/mymisc
> SEQNUM=3007
> SUBSYSTEM=module
> 
> KERNEL[5342.740528] add      /devices/virtual/misc/mymisc (misc)
> ACTION=add
> DEVNAME=/dev/mymisc
> DEVPATH=/devices/virtual/misc/mymisc
> MAJOR=10
> MINOR=55
> SEQNUM=3008
> SUBSYSTEM=misc
> 
> UDEV  [5342.741071] add      /module/mymisc (module)
> ACTION=add
> DEVPATH=/module/mymisc
> SEQNUM=3007
> SUBSYSTEM=module
> USEC_INITIALIZED=740419
> 
> UDEV  [5342.741921] add      /devices/virtual/misc/mymisc (misc)
> ACTION=add
> DEVNAME=/dev/mymisc
> DEVPATH=/devices/virtual/misc/mymisc
> MAJOR=10
> MINOR=55
> SEQNUM=3008
> SUBSYSTEM=misc
> USEC_INITIALIZED=740750
> 
> so, yes, i can see the line "DEVNAME=/dev/mymisc", but is there
> something i can point at in the collection of udev rules that deals
> with that? or is that simply done internally?

Ok, I'll be nice here, udev doesn't create device nodes anymore, and
hasn't for years, the kernel does that directly with devtmpfs.

Yes, if you want to write your own version of udev, you can listen to
the uevent messages, and pick out the right one to trigger off of to
create a device node, but as the kernel does this all for you with
devtmpfs, why would you want to?

In fact, no one does this anymore, and people run systems without udev
and have dynamic device nodes just fine.  And have been doing so for
years, udev isn't needed for device nodes anymore, if that's all you
care about.

Hint, you are correct, it's the DEVNAME event, but watch out here, you
are seeing events twice, once from the kernel, the second from UDEV,
which is exposing how udev works internally, but will quickly get
confusing if you aren't careful.  I'd recommend just filtering on the
KERNEL events to keep things "sane" for now.

good luck,

greg k-h



More information about the Kernelnewbies mailing list