免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1272 | 回复: 1
打印 上一主题 下一主题

请教添加一个新的设备号 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-19 09:28 |只看该作者 |倒序浏览
我在Linux下添加了一个新的设备,在我印象中还需要在某个文件里面添加对应的设备号才可以访问。
请教是在那个目录下的那个文件里面添加呀?
我记得那个文件里面可以看到所有设备的设备号。

谢谢

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
2 [报告]
发表于 2009-08-19 09:40 |只看该作者

  1. [root@localhost liuqi]# cat -n /home/liuqi/drivercode/charioctl/chrdev.c
  2.      1        #include <linux/module.h>
  3.      2        #include <linux/kernel.h>
  4.      3        #include <linux/init.h>
  5.      4        #include <linux/fs.h>
  6.      5        #include <linux/device.h>
  7.      6        #include <linux/cdev.h>
  8.      7        #include <linux/major.h>
  9.      8        static ssize_t flash_env_dev_open(struct inode *inode,struct file *file)
  10.      9        {
  11.     10                return 0;
  12.     11        }
  13.     12       
  14.     13       
  15.     14       
  16.     15        static ssize_t flash_env_dev_read(struct file *file, char __user buf, size_t count, loff_t *ppos)
  17.     16        {
  18.     17                return 0;
  19.     18        }
  20.     19       
  21.     20        static ssize_t flash_env_dev_ioctl(struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg)
  22.     21        {
  23.     22                printk("<1> %d\n",cmd);
  24.     23                switch(cmd){
  25.     24                case 0:
  26.     25                        printk("<1> in flash 0\n");
  27.     26                        break;
  28.     27                case 1:
  29.     28                        printk("<1> in flash 1\n");
  30.     29                        break;
  31.     30                default:
  32.     31                        printk("<1> others\n");
  33.     32       
  34.     33                }
  35.     34                return 0;
  36.     35        }
  37.     36       
  38.     37        static const struct file_operations flash_fops = {
  39.     38                .owner        =THIS_MODULE,
  40.     39                .open        = flash_env_dev_open,
  41.     40                .read        = flash_env_dev_read,
  42.     41                .ioctl        = flash_env_dev_ioctl,
  43.     42        };
  44.     43       
  45.     44        #define  MAX_FLASH_ENV_MINORS 262
  46.     45       
  47.     46        static struct cdev flash_cdev;
  48.     47        dev_t dev;
  49.     48        static __init int flash_env_dev_init(void)
  50.     49        {
  51.     50                int res;
  52.     51                dev=MKDEV(263,262);
  53.     52        cdev_init(&flash_cdev,&flash_fops);
  54.     53       
  55.     54                res=register_chrdev_region(dev, MAX_FLASH_ENV_MINORS, "/dev/env_dev");
  56.     55                if(res)
  57.     56                        printk("<1> fuck\n");
  58.     57       
  59.     58                       
  60.     59                res=cdev_add(&flash_cdev,dev,MAX_FLASH_ENV_MINORS);
  61.     60                if(res)
  62.     61                        printk("<1> fuck2 \n");
  63.     62        /*        devfs_mk_dir("flash_env_dev");*/
  64.     63                printk("<1> Hello World\n");
  65.     64                return 0;
  66.     65        }
  67.     66       
  68.     67        static void __exit flash_env_dev_exit(void)
  69.     68        {
  70.     69                unregister_chrdev_region(dev,MAX_FLASH_ENV_MINORS);
  71.     70                printk("<1> exit Hello World\n");
  72.     71        }
  73.     72       
  74.     73        module_init(flash_env_dev_init);
  75.     74        module_exit(flash_env_dev_exit);
  76. [root@localhost liuqi]#
复制代码


给你个最简单的字符设备的例子


mknod -m 666 /dev/env_dev c 263 262
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP