关于 ramdisk 不能挂载, 请教一下
在Linux 2.4.xx上, 我想划出一小块内存(先定义了一个大数组进行模拟)当成磁盘块设备使用。 我的做法是
1 先完成 struct block_device_operations 中的函数;
2 写 rd_make_request(), 处理有关读写请求队列;
3 在初始化程序 rd_init() 中,
1)调用 blk_queue_make_request(BLK_DEFAULT_QUEUE(rd_major), rd_make_request) ;
2) /* 创建目录 */
devfs_myDriver_dir = devfs_mk_dir(NULL, "rd", NULL);
3)创建设备文件
devfs_register(devfs_myDriver_dir, "ramdisk", DEVFS_FL_DEFAULT, rd_major, rd_minor,
S_IFBLK | S_IRUSR | S_IWUSR,
&rd_fops, NULL);
系统初始化 rd_init(), 则在 dev/rd/目录下会有ramdisk这样一个块设备,但是, 我用 mount 时, 挂载不上去文件系统 vfat, 请问一下, 我这个过程还缺少哪些步骤?
提示 mount 返回 -19, 我查了一下, 是#define ENODEV 19 /* Operation not supported by device */
哈, 这个是因为 所mount的文件系统不支持;
又 mount 一次, 返回 -16, #define EBUSY 16 /* Device busy */
这, 个又傻了