Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97212
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 194
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-26 22:04
个人简介

大家好,我叫王大锤!

文章分类

全部博文(21)

分类: LINUX

2015-05-03 10:04:23



一、添加模块


方式:
        1.直接编译到内核
        2.做成模块
                insmod
                rmmod
        3.menuconfig


二、注册驱动


设备分类:
        1.字符设备
                1. 输入设备 
                2. fb设备
                3. sound设备
                4. tty设备                        
                5. misc
                6. ...
        2.块设备  
        3.网络设备
        4.自己创建类
                步骤:
                        1. 创建类: 创建函数 class_create device_create 在/sys/class/myclass生成对应的类
                        2. 生成节点: 执行 mdev/udev        生成 /dev/*


注册方式:
        1./proc


        2.字符设备
                1.cdev
                        1.初始化并注册 cdev: 注册函数 cdev_init
                        2.查看已在系统中注册的字符设备: cat /proc/devices 
                        3.创建设备节点: mknod /dev/mdev c 250 0
                        4.操作节点:  echo "hello world" > /dev/mdev cat /dev/mdev


                2.输入设备input_dev: 基于cdev并封装了class等
                        1. 初始化并注册input_dev: 注册函数:input_register_device 
                        2. 查看已在系统中注册的输入设备: cat /proc/bus/input/devices
                        3. 查看已在系统中生成的类:   cat /sys/class/input/eventX
                        4. 查看已在系统中生成的节点: cat /dev/input/eventX




        3.块设备


        4.网络
                1.注册网络设备驱动
                        1.net_device 的生成和成员的赋值并同时申请私有空间: alloc_netdev
                        2.取得私有信息,并初始化它: netdev_priv
                        3.注册网络设备驱动: register_netdev
                2.查看已注册的网卡: ifconfig all 
                3.启动网卡: ifconfig ethX up


        5.未归类:虚拟设备 globalmem 和 globalfifo


驱动模型: 
        注意:所谓的platform_device并不是与字符设备、块设备和网络设备并列的概念,而是Linux系统提供的一种附加手段。参考:linux设备驱动开发详解p257
        1.bus模型:
                1.bus_register
                2.driver_register
                3.device_register


        2.platform:基于bus模型已创建好的bus
                1.bus: platform
                2.driver: platform_driver_register
                3.device: platform_device_register




原创:疯狂十六进制(更新中)
---------------------------------------------------------------------
一、字符


二、块 


三、网络
        
                2.查看已在系统中注册的字符设备 
                2.input_dev: 基于cdev并封装了class等
阅读(1283) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~