DengPihui 2015-03-17 00:27 采纳率: 0%
浏览 919

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 ret,err;
ret = alloc_chrdev_region(&mydev,0,1,DEVICE_NAME);
if(ret)
{
    unregister_chrdev_region(mydev,1);
    return ret;
}
cdev_init(&mycdev,&FM24CL64_fops);
err = cdev_add(&mycdev,mydev,1);
if(err)
{
    unregister_chrdev_region(mydev,1);
    return ret;
}
my_class = class_create(THIS_MODULE,DEVICE_NAME);
if(IS_ERR(my_class))
{
    unregister_chrdev_region(mydev,1);
    return ret;
}
class_device_create(my_class,NULL,mydev,NULL,DEVICE_NAME);

printk("\n\nFM24CL64 Init End\n\n");
return 0;
}
编译能通过,内核启动结束后,输入:cat /proc/devices命令能查询到设备名称和设备号:253 medev,但是在/dev目录下根本就没有“mydev”这个设备节点,不知该如何解决,网上有说用mknod命令可以手动创建设备节点,但是我使用该命令时显示“sh:can‘t execute ’mknod‘:No such file.........”,是不是我的内核配置得不对?还是我的根文件系统缺少某些东西?还是其他别的原因。求大神指点或指引方向,不胜感激!!!谢谢!!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 程序不包含适用于入口点的静态Main方法
    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记