+ -
当前位置:首页 → 问答吧 → mtd设备疑问

mtd设备疑问

时间:2010-12-31

来源:互联网

2.6.18内核drivers/mtd/mtdchar.c里面定义了一个file_operations, 还定义了模块入口函数:

static int __init init_mtdchar(void)
{
        if (register_chrdev(MTD_CHAR_MAJOR, "mtd", &mtd_fops)) {
                printk(KERN_NOTICE "Can't allocate major number %d for Memory Technology Devices.\n",
                       MTD_CHAR_MAJOR);
                return -EAGAIN;
        }
...
}

这很明显是一个字符设备驱动,会生产/dev/mtd设备节点,但是为什么系统启动后ls /dev看不到mtd这个设备节点,但能看到mtd0,mtd1...和mtdblock0,mtdblock1... ?

我知道mtdx和mtdblockx对应flash的各个分区,就不知道为何找不到/dev/mtd?

作者: garyv   发布时间: 2010-12-31

mtd比较特别, erase时需要char设备,但mount时就需要block, 因此在配置kernel时,需要选择mtd中的char和mtd的block,若配置了,但/dev下没有,可考虑手动添加

作者: kamingli   发布时间: 2010-12-31