All of lore.kernel.org
 help / color / mirror / Atom feed
* Node creation For real time devices
@ 2012-04-20 13:29 manty kuma
  2012-04-20 13:54 ` Philipp Ittershagen
  0 siblings, 1 reply; 5+ messages in thread
From: manty kuma @ 2012-04-20 13:29 UTC (permalink / raw)
  To: kernelnewbies

Hi,

I want to know how a node is created when a hardware is connected to the
system.

Information that I know :
*When a hardware is connected to the system, the device name is compared
with the driver name, if it matches, then probe is called.*
*
*
Info i wish to know:
*At which point is the node created and who is creating it(In other words,
i want to know where is mknod happening)?*
*
*
This one thing is bugging my mind from so many months. Please tell me
programatically where is this happening. I will be very thankful.

Best Regards,
Manty.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120420/ab12b731/attachment.html 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Node creation For real time devices
  2012-04-20 13:29 Node creation For real time devices manty kuma
@ 2012-04-20 13:54 ` Philipp Ittershagen
  2012-04-20 14:04   ` manty kuma
  0 siblings, 1 reply; 5+ messages in thread
From: Philipp Ittershagen @ 2012-04-20 13:54 UTC (permalink / raw)
  To: kernelnewbies

Hi Manty!

On Fri, Apr 20, 2012 at 3:29 PM, manty kuma <mantykuma@gmail.com> wrote:
> Hi,
>
> I want to know how a node is created when a hardware is connected to the
> system.
>
> Information that I know :
> When a hardware is connected to the system, the device name is compared with
> the driver name, if it matches, then probe is called.
>
> Info i wish to know:
> At which point is the node created and who is creating it(In other words, i
> want to know where is mknod happening)?
>
> This one thing is bugging my mind from so many months. Please tell me
> programatically where is this happening. I will be very thankful.

Please correct me if I'm wrong, my understanding is this:

The hardware is connected and the corresponding subsystem or bus will
be notified (i.e. by interrupt of the device). The kernel then creates
an uevent and notifies the userspace part of udev (udevd) through a
netlink socket. The uevent is received by udevd and now udev can check
for rules to add the device node to /dev. That's when the creation and
naming of the device node happens.


Greetings,

  Philipp

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Node creation For real time devices
  2012-04-20 13:54 ` Philipp Ittershagen
@ 2012-04-20 14:04   ` manty kuma
  2012-04-20 14:26     ` Li Haifeng
  2012-04-20 14:42     ` Philipp Ittershagen
  0 siblings, 2 replies; 5+ messages in thread
From: manty kuma @ 2012-04-20 14:04 UTC (permalink / raw)
  To: kernelnewbies

Hi Philipp,

The flow you mentioned is something which I was not aware of. I would like
to see it happening in code.

My Queries are as follows:

1) " The kernel then creates an uevent and notifies the userspace part of
udev (udevd) through a netlink socket. " -  What are the corresponding
files that i need to check? If the question is too abstract, kindly explain
me with respect to any sample Bus.

2)  "The uevent is received by udevd and now udev can check for rules to
add the device node to /dev" - Again the same thing. I would like to see it
inside the code. Please help me in looking at the real code.

Thanks again Philipp for your valuable answer.

Regards,
-Manty
On Fri, Apr 20, 2012 at 7:24 PM, Philipp Ittershagen <
p.ittershagen@googlemail.com> wrote:

> Hi Manty!
>
> On Fri, Apr 20, 2012 at 3:29 PM, manty kuma <mantykuma@gmail.com> wrote:
> > Hi,
> >
> > I want to know how a node is created when a hardware is connected to the
> > system.
> >
> > Information that I know :
> > When a hardware is connected to the system, the device name is compared
> with
> > the driver name, if it matches, then probe is called.
> >
> > Info i wish to know:
> > At which point is the node created and who is creating it(In other
> words, i
> > want to know where is mknod happening)?
> >
> > This one thing is bugging my mind from so many months. Please tell me
> > programatically where is this happening. I will be very thankful.
>
> Please correct me if I'm wrong, my understanding is this:
>
> The hardware is connected and the corresponding subsystem or bus will
> be notified (i.e. by interrupt of the device). The kernel then creates
> an uevent and notifies the userspace part of udev (udevd) through a
> netlink socket. The uevent is received by udevd and now udev can check
> for rules to add the device node to /dev. That's when the creation and
> naming of the device node happens.
>
>
> Greetings,
>
>  Philipp
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120420/12107e20/attachment-0001.html 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Node creation For real time devices
  2012-04-20 14:04   ` manty kuma
@ 2012-04-20 14:26     ` Li Haifeng
  2012-04-20 14:42     ` Philipp Ittershagen
  1 sibling, 0 replies; 5+ messages in thread
From: Li Haifeng @ 2012-04-20 14:26 UTC (permalink / raw)
  To: kernelnewbies

A good question.

When a driver is probed, corresponding device file will be created in
sysfs or devfs.

Maybe you can take a look at this link: http://lwn.net/Articles/330985/

Regards,
Haifeng Li

? 2012?4?20? ??10:04?manty kuma <mantykuma@gmail.com> ???
> Hi Philipp,
>
> The flow you mentioned is something which I was not aware of. I would like
> to see it happening in code.
>
> My Queries are as follows:
>
> 1) " The kernel then creates an uevent and notifies the userspace part of
> udev (udevd) through a netlink socket. " -  What are the corresponding files
> that i need to check? If the question is too abstract, kindly explain me
> with respect to any sample Bus.
>
> 2)  "The uevent is received by udevd and now udev can check for rules to add
> the device node to /dev" - Again the same thing. I would like to see it
> inside the code. Please help me in looking at the real code.
>
> Thanks again Philipp for your valuable answer.
>
> Regards,
> -Manty
>
> On Fri, Apr 20, 2012 at 7:24 PM, Philipp Ittershagen
> <p.ittershagen@googlemail.com> wrote:
>>
>> Hi Manty!
>>
>> On Fri, Apr 20, 2012 at 3:29 PM, manty kuma <mantykuma@gmail.com> wrote:
>> > Hi,
>> >
>> > I want to know how a node is created when a hardware is connected to the
>> > system.
>> >
>> > Information that I know :
>> > When a hardware is connected to the system, the device name is compared
>> > with
>> > the driver name, if it matches, then probe is called.
>> >
>> > Info i wish to know:
>> > At which point is the node created and who is creating it(In other
>> > words, i
>> > want to know where is mknod happening)?
>> >
>> > This one thing is bugging my mind from so many months. Please tell me
>> > programatically where is this happening. I will be very thankful.
>>
>> Please correct me if I'm wrong, my understanding is this:
>>
>> The hardware is connected and the corresponding subsystem or bus will
>> be notified (i.e. by interrupt of the device). The kernel then creates
>> an uevent and notifies the userspace part of udev (udevd) through a
>> netlink socket. The uevent is received by udevd and now udev can check
>> for rules to add the device node to /dev. That's when the creation and
>> naming of the device node happens.
>>
>>
>> Greetings,
>>
>>  Philipp
>
>
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Node creation For real time devices
  2012-04-20 14:04   ` manty kuma
  2012-04-20 14:26     ` Li Haifeng
@ 2012-04-20 14:42     ` Philipp Ittershagen
  1 sibling, 0 replies; 5+ messages in thread
From: Philipp Ittershagen @ 2012-04-20 14:42 UTC (permalink / raw)
  To: kernelnewbies

On Fri, Apr 20, 2012 at 4:04 PM, manty kuma <mantykuma@gmail.com> wrote:
> Hi Philipp,
>
> The flow you mentioned is something which I was not aware of. I would like
> to see it happening in code.
>
> My Queries are as follows:
>
> 1) " The kernel then creates?an uevent and notifies the userspace part of
> udev (udevd) through a?netlink socket.?" - ?What are the corresponding files
> that i need to check? If the question is too abstract, kindly explain me
> with respect to any sample Bus.

The article at http://www.linuxjournal.com/article/8093 explains the
initialization mechanism for USB. I don't have any code experience on
USB hubs but by following the functions mentioned in the article
(expecially the khubd kthread) you can see that the interrupt I
mentioned is handled by the USB subsystem.

Next, the uevent is created. The generic(?) implementation of this can
be found at http://lxr.free-electrons.com/source/drivers/usb/core/driver.c#L722,
where you can see that the uevent contains the necessary data for
creating a udev entry.

By sending the uevent we're crossing the kernel/userspace boundary and
you have to take a look at the udev and udevd implementation for more
information.

> 2)??"The uevent is received by udevd and now udev can check?for rules to add
> the device node to /dev" - Again the same thing. I would like to see it
> inside the code. Please help me in looking at the real code.

If a `man udev` does not answer your questions, you should take a look
at the source code at
http://git.kernel.org/?p=linux/hotplug/udev.git;a=summary.


Again, please correct me if I'm wrong :)



Hope this helps,

  Philipp

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-04-20 14:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-20 13:29 Node creation For real time devices manty kuma
2012-04-20 13:54 ` Philipp Ittershagen
2012-04-20 14:04   ` manty kuma
2012-04-20 14:26     ` Li Haifeng
2012-04-20 14:42     ` Philipp Ittershagen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.