|
用busybox自带的一个mdev自动创建设备节点出现一个问题,不知道错在哪儿,请大家帮我看看,谢谢!!
1.mdev需要的sysfs和tmpfs虚拟文件系统已经挂载;
2.也执行了echo /sbin/mdev > /proc/sys/kernel/hotplug和/sbin/mdev -s命令;
3.在驱动程序中也实现了对类设备接口的支持,代码如下:- //定义一个设备类
- static struct class *pwm_class;
- static int __init pwm_init(void)
- {
- int ret;
- //注册为字符设备,主设备号为0让系统自动分配,设备名为my2440_pwm
- ret = register_chrdev(PWM_MAJOR, PWM_NAME, &pwm_fops);
- if(ret < 0)
- {
- printk(PWM_NAME " register falid!\n");
- return ret;
- }
- //注册一个设备类,使mdev可以在/dev/目录下自动建立设备节点
- pwm_class = class_create(THIS_MODULE, PWM_NAME);
- if(IS_ERR(pwm_class))
- {
- printk(PWM_NAME " register class falid!\n");
- return -1;
- }
- //创建一个设备节点,设备名为PWM_NAME,即:my2440_pwm
- device_create(pwm_class, NULL, MKDEV(PWM_MAJOR, 0), NULL, PWM_NAME "%d", 0);
- return 0;
- }
复制代码 4. 启动开发板,查看/dev目录,系统原有的一些设备在这里都自动创建了节点,但是就我写的这个pwm驱动没出现。但查看/proc/devices目录,my2440_pwm已经加载成功,系统分配的主设备号是253,再查看/sys/class目录,也出现了/my2440_pwm/my2440_pwm0/目录,只是目录下没有dev这个文件,我看了下其他的成功自动创建设备节点对应的这个目录下都有这个dev文件。我想问题应该就在这儿了,为什么会出现这种情况呢??? |
|