Hi,
I'm having trouble getting udev to create a device node in /dev/, the
init_module() code is below, the kernel loads the module fine, any
help/ideas would be much appreciated..
TIA.
Cheers.
mars char # insmod char.ko ; dmesg
char: char_init_module()
char: registered char 253,0
mars char # udevinfo -a -p /sys/module/char
looking at device '/module/char':
KERNEL=="char"
SUBSYSTEM=="module"
DRIVER==""
ATTR{initstate}=="live"
ATTR{refcnt}=="0"
mars char # udevtest /module/char
parse_file: reading '/etc/udev/rules.d/05-udev-early.rules' as rules file
...
parse_file: reading '/etc/udev/rules.d/95-udev-late.rules' as rules file
main: looking at device '/module/char' from subsystem 'module'
main: run: 'socket:/org/freedesktop/hal/udev_event'
main: run: 'socket:/org/kernel/udev/monitor'
mars char #
udev rules I've tried
KERNEL=="char", SUBSYSTEM=="module", NAME="%k", MODE="0666"
KERNEL=="char", NAME="%k", MODE="0666"
SUBSYSTEM=="module", NAME="%k", MODE="0666"
static int __init char_init_module (void)
{
#ifdef DEBUG
printk(KERN_INFO "char: char_init_module()\n");
#endif
_char_device=cdev_alloc();
if(_char_device)
{
// create major/minor
_char_devt=MKDEV(_char_major,0);
alloc_chrdev_region(&_char_devt,0,1,_char_name);
_char_major=MAJOR(_char_devt);
_char_minor=MINOR(_char_devt);
// init and & register
cdev_init(_char_device,&_char_fops);
_char_device->owner=THIS_MODULE;
if(cdev_add(_char_device,_char_major,1)==0)
{
// must be ready to handle requests at this point!
printk(KERN_INFO "char: registered char %d,%d",
_char_major,
_char_minor);
}
}
else
{
printk(KERN_ERR "char: error creating char");
}
return(0);
}
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ