From: Jim Crilly <jim@why.dont.jablowme.net>
To: KC <kcc1967@gmail.com>
Cc: Erik Mouw <erik@harddisk-recovery.com>, linux-kernel@vger.kernel.org
Subject: Re: proc_mknod() replacement
Date: Mon, 9 May 2005 18:04:12 -0400 [thread overview]
Message-ID: <20050509220411.GA15932@mail> (raw)
In-Reply-To: <5eb4b065050509100638bd7970@mail.gmail.com>
On 05/10/05 01:06:08AM +0800, KC wrote:
> Hi,
>
> Thanks for reply.
>
> On 5/9/05, Erik Mouw <erik@harddisk-recovery.com> 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.
next prev parent reply other threads:[~2005-05-09 22:05 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-09 11:17 proc_mknod() replacement KC
2005-05-09 15:41 ` Erik Mouw
2005-05-09 17:06 ` KC
2005-05-09 21:07 ` Valdis.Kletnieks
2005-05-10 2:05 ` KC
2005-05-09 22:04 ` Jim Crilly [this message]
2005-05-10 2:43 ` KC
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050509220411.GA15932@mail \
--to=jim@why.dont.jablowme.net \
--cc=erik@harddisk-recovery.com \
--cc=kcc1967@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox