what is the precise udev event that handles miscdevices?

Robert P. J. Day rpjday at crashcourse.ca
Wed Apr 1 08:34:35 EDT 2015


On Wed, 1 Apr 2015, Sudip Mukherjee wrote:

> >   don't get smug. :-) i had sort of concluded there was no actual
> > udev rule i could point at, so it's just the case that udev
> > processes those events internally? is this written down anywhere?
> > everyone happily explains how misc devices get their /dev file
> > automatically, but no one i've seen goes that extra step to
> > explain how that happens.
>
> misc_register() is ultimately calling device_add() which is again
> calling device_create_file() , and this one is actually creating the
> node in /dev . (if i am not wrong).

  close, and now i can come across as an expert since i checked the
source file. :-) from drivers/base/core.c, in device_add():

        if (MAJOR(dev->devt)) {
                error = device_create_file(dev, &dev_attr_dev);
                if (error)
                        goto DevAttrError;

                error = device_create_sys_dev_entry(dev);
                if (error)
                        goto SysEntryError;

                devtmpfs_create_node(dev);
        }

so device_add() creates device_create_file(), then calls
devtmpfs_create_node() which, based on whether you selected that
devtmpfs CONFIG option, either creates the /dev file or does nothing.
it's all clear to me now ...

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================



More information about the Kernelnewbies mailing list