微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > linux 块设备驱动,使用的时候出了问题,帮忙看下

linux 块设备驱动,使用的时候出了问题,帮忙看下

时间:10-02 整理:3721RD 点击:
想写一个极其简单的块设备驱动来上手,于是就照着网上的例子写了一个框架,中间的队列任务完全没有处理。
编译成功之后insmod 模块,可以在lsmod里找到对应的模块项,说明register_blkdev成功了,但是,却在/dev下找不到对应的模块,这是因为少注册了什么?

下面是初始化的代码,其中blk_queue_hardsect_size它好像不支持我的内核就注释掉了,直接在PC上测的,内核版本 3.13.0-24-generic

  1. static int __init block_module_init(void)
  2. {
  3. if(!register_blkdev(BLK_MAJOR,BLK_DEV_NAME))
  4. {
  5. major=BLK_MAJOR;
  6. printk(KERN_ALERT"REGISTER succeed\n");
  7. }else
  8. {
  9. return -EBUSY;
  10. }
  11. gd=alloc_disk(1);
  12. spin_lock_init(&lock);
  13. gd->major=major;
  14. gd->first_minor=0;
  15. gd->fops=&blk_ops;


  16. gd->queue=blk_init_queue(blk_request_fnc,&lock);
  17. snprintf(gd->disk_name,32,"blk%c",'a');
  18. //blk_queue_hardsect_size(gd->queue,512);


  19. set_capacity(gd,32);
  20. add_disk(gd);
  21. printk(KERN_ALERT"gendisk init success!\n");
  22. return 0;
  23. }

复制代码


请@吴鉴鹰 吴老师帮忙看看程序呗

注册节点了吗?

呼叫@@吴鉴鹰 吴老师

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top