Re: proc_mknod() replacement

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/10/05 01:06:08AM +0800, KC wrote:
> Hi,
> 
> Thanks for reply.
> 
> On 5/9/05, Erik Mouw <[email protected]> wrote:
> > On Mon, May 09, 2005 at 07:17:44PM +0800, KC wrote:
> > > I found that proc_mknod() had been removed from kernel 2.6.x.
> > > Any replacement ?
> > >
> > > Or how can I create file, device node or dir from device driver ?
> > 
> > You don't do that from a device driver in the first place. Have a look
> > at udev, it will do what you want from userspace.
> 
> For regular file, I do agree with you.  But for device node, I don't see
> anything wrong by create it directly from kernel space.
> In fact, I do not understand why proc_mknod() is removed from
> 2.6.x ... I will be happy if someone can tell me why.

Because naming of devices is a policy that shouldn't be defined in the
kernel.

> 
> Why I want to use proc_mknod() in driver ?  I write a small package, ovi-dev,
> which can be downloaded from
> http://www.sourceforge.net/projects/ovi
> The ovi-dev will scan the PCI bus and if it found, eg, 3 PCI devices, it
> will create 3 device entries (nodes) automatically at module load time.
> So number of device entries (nodes) will match number of devices
> of the system ... well, UNIX/Linux doesn't work that way ... there are a lot
> of device entries ... but no corresponding hardware existed.

You must have not have converted to udev, it's sort of like devfs in that
device nodes are created dynamicly but it's a userspace daemon that
adds/removes device nodes in response to hotplug events generated by the kernel.
> 
> The proc_mknod() can fix the problems ... but it was removed from 2.6.x ...
> too bad ... at least for me.   So I'm looking for an alternative way to create
> device entry under /dev from drivers instead of /proc ... but still don't know
> how.   Anyone know how to do that ?  It should be done at module_init()
> and the entry should be removed at module_exit().

I believe if you use the driver core class stuff (i.e.
class_simple_device_add) it should add device nodes in sysfs and generate
hotplug events for udev.

> 
> 
> Thanks
> KC
> 

Jim.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux