<br />我写的驱动模块, 用 device_create来建立设备文件,但ls /dev找不到相对应的myalloc设备,请大家帮忙看一下<br /><br />int __init memory_init(void)<br /><br />{<br /><br /> int res;<br /><br /><br /><br /> int devno = MKDEV(MEM_MAJOR, 0);<br /><br /><br /><br /><br /><br /> mem_spvm = (char *)vmalloc(MEM_MALLOC_SIZE);<br /><br /> if (mem_spvm == NULL)<br /><br /> printk(KERN_INFO"vmalloc failed!
");<br /><br /> else<br /><br /> printk(KERN_INFO"vmalloc successfully! addr=0x%x
", (unsigned int)mem_spvm);<br /><br /><br /><br /><br /><br /> mem_cdev = cdev_alloc();<br /><br /> if (mem_cdev == NULL)<br /><br /> {<br /><br /> printk(KERN_INFO"cdev_alloc failed!
");<br /><br /> return 0;<br /><br /> }<br /><br /><br /><br /> cdev_init(mem_cdev, &mem_fops);<br /><br /> mem_cdev->owner = THIS_MODULE;<br /><br /> mem_cdev->ops = &mem_fops;<br /><br /> res = cdev_add(mem_cdev, devno, 1);<br /><br /><br /><br /> if (res)<br /><br /> {<br /><br /> cdev_del(mem_cdev);<br /><br /> mem_cdev = NULL;<br /><br /> printk(KERN_INFO"cdev_add error
");<br /><br /> }<br /><br /> else<br /><br /> {<br /><br /> printk(KERN_INFO"cdev_add ok
");<br /><br /> }<br /><br /><br /><br />/* creating your own class */<br /><br /> my_class = class_create(THIS_MODULE, "myalloc");<br /><br /> if(IS_ERR(my_class)) {<br /><br /> printk("Err: failed in creating class.
");<br /><br /> return -1;<br /><br /> }<br /><br />/* register your own device in sysfs, and this will cause udevd to create corresponding device node */<br /><br /> device_create(my_class, NULL, MKDEV(MEM_MAJOR,0), NULL, "myalloc", 0);<br /> return 0;<br /><br />}<br /><br /> <br /> |
|