问题描述
- linux2.6.17设备节点创建的问题
- 我的内核版本linux2.6.17,想在内核中添加一个驱动,模块加载初始化代码如下:
#define DEVICE_NAME ""mydev""
static struct class *my_class;
static dev_t mydev = 0;
static struct cdev mycdev;
static int __init FM24CL64_init(void)
{int reterr;ret = alloc_chrdev_region(&mydev01DEVICE_NAME);if(ret){ unregister_chrdev_region(mydev1); return ret;}cdev_init(&mycdev&FM24CL64_fops);err = cdev_add(&mycdevmydev1);if(err){ unregister_chrdev_region(mydev1); return ret;}my_class = class_create(THIS_MODULEDEVICE_NAME);if(IS_ERR(my_class)){ unregister_chrdev_region(mydev1); return ret;}class_device_create(my_classNULLmydevNULLDEVICE_NAME);
printk(""nnFM24CL64 Init Endnn"");
return 0;
}
编译能通过,内核启动结束后,输入:cat /proc/devices命令能查询到设备名称和设备号:253 medev,但是在/dev目录下根本就没有“mydev”这个设备节点,不知该如何解决,网上有说用mknod命令可以手动创建设备节点,但是我使用该命令时显示“sh:can‘t execute ’mknod‘:No such file.........”,是不是我的内核配置得不对?还是我的根文件系统缺少某些东西?还是其他别的原因。求大神指点或指引方向,不胜感激!!!谢谢!!
时间: 2024-11-01 07:01:44