打印

关于LINUX内核2.6.28驱动编写

[复制链接]
2409|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fe_arm|  楼主 | 2009-7-15 14:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我写的驱动模块, 用 device_create来建立设备文件,但ls /dev找不到相对应的myalloc设备,请大家帮忙看一下

int __init memory_init(void)

{

    int res;



    int devno = MKDEV(MEM_MAJOR, 0);





    mem_spvm = (char *)vmalloc(MEM_MALLOC_SIZE);

    if (mem_spvm == NULL)

        printk(KERN_INFO"vmalloc failed! ");

    else

        printk(KERN_INFO"vmalloc successfully! addr=0x%x ", (unsigned int)mem_spvm);





    mem_cdev = cdev_alloc();

    if (mem_cdev == NULL)

    {

        printk(KERN_INFO"cdev_alloc failed! ");

        return 0;

    }



    cdev_init(mem_cdev, &mem_fops);

    mem_cdev->owner = THIS_MODULE;

    mem_cdev->ops = &mem_fops;

    res = cdev_add(mem_cdev, devno, 1);



    if (res)

    {

        cdev_del(mem_cdev);

        mem_cdev = NULL;

        printk(KERN_INFO"cdev_add error ");

    }

    else

    {

        printk(KERN_INFO"cdev_add ok ");

    }



/* creating your own class */

    my_class = class_create(THIS_MODULE, "myalloc");

    if(IS_ERR(my_class)) {

        printk("Err: failed in creating class. ");

       return -1;

    }

/* register your own device in sysfs, and this will cause udevd to create corresponding device node */

    device_create(my_class, NULL, MKDEV(MEM_MAJOR,0), NULL, "myalloc", 0);
    return 0;

}

 

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

124

帖子

0

粉丝