snifer

[原创]嵌入式开发板中块设备驱动的编写

0
阅读(2313)

今天写了一个块设备的驱动,有点小激动,写出来,大家一起乐呵乐呵。

这个程序主主要在Ubantu10.10系统上编写一个sbull驱动,将一段ram空间模拟为disk使用。并在这个disk上建立文件系统。

步骤:

1、 将文件夹blkdev-2.6.35复制到linux环境中,如:/home/linux/workdir/test

2、 编译

linux@ubuntu:~/workdir/test/blkdev-2.6.35$ make

3、通过insmod命令将模块加入内核

linux@ubuntu:~/workdir/test/blkdev-2.6.35$sudo insmod ./blkdev.ko

4、#sudo fdisk /dev/blkdeva

        出现磁盘分区界面,选择m出现帮助信息



选择n添加新的分区


选择p建立一个新的主分区

选择w,保存分区信息



        5、格式化disk  

#mkfs.ext2 /dev/blkdeva1

        6、挂载文件系统

            #mkdir mnt

#sudo mount –t ext2 /dev/blkdeva1 mnt

        7、思考:如果分区后没有及时挂载文件系统(>30s),设备为何会失效。

        8、修改模式为RM_NOQUEUE测试,同样可以同样的功能(因为是ram,所以可以不

需要quque

            enum {

            RM_SIMPLE  = 0, /* The extra-simple request function */

            RM_FULL    = 1, /* The full-blown version */

            RM_NOQUEUE = 2, /* Use make_request */

};

        9、修改模式为RM_FUL、RM_NOQUEUE 测试,在我的板子上,同样可以正常运行

最近在整理准备做一个视频出来了,时间不够用,加油!