驱动分类----
1--字符设备--按字节来访问,有顺序,不能随机。
2--网络接口设备--一个接口通常是硬件设备如:eth0,但也可以为一个软件如回环lo。
3--块设备---一般一个块512的整数倍,linux中无限制。在linux中字符设备与块设备的区别仅仅是驱动与内核的接口不同。
驱动安装方式---
1---模块方式
2---直接编译进内核
-----修改kconfig
------修改makefile
把驱动程序拷贝进linux源代码相应目录下。根据驱动类型字符,块,网络接口等找到相应目录。----修改相应目录下kconfig,添加驱动程序项,通过make menuconfig找到驱动程序项,并选择。这时配置项会保存到.config中。--------修改makefile,添加驱动程序项。重新编译内核,make uImage ARCH=arm CROSS_COMPILE=arm-linux-
使用驱动程序-----
应用程序-------字符设备文件------------字符设备驱动-----------------字符设备
---------文件系统--块设备文件-块设备驱动 ------------------块设备
---------套接字 ------------协议栈---网络设备驱动-----网络接口设备
黄色表示------位于内核空间。
linux用户程序通过设备文件来使用驱动程序操作字符设备和块设备,设备文件在dev/目录下。