在Linux系统中,最常用的驱动主要包括以下几类:
-
字符设备驱动:这是占用篇幅最大的一类驱动,因为字符设备最多,从最简单的点灯到I2C、SPI、音频等都属于字符设备驱动的类型。例如,鼠标、键盘、显示器等都属于字符设备驱动。
-
块设备驱动:块设备驱动是以固定大小长度来传送和转移资料,比如硬盘、U盘等存储设备。这些设备的驱动程序通常由半导体厂商提供,大多数情况下可以直接使用。
-
网络设备驱动:网络设备驱动负责接受和发送帧数据,可能是有线的也可能是无线的,比如蓝牙、WIFI、网卡等。网络设备驱动程序也通常由半导体厂商提供,并且可以直接使用。
-
WIFI驱动:WIFI驱动是Linux系统中非常常用的一类驱动,涉及到WIFI模块的管理和配置。常用的WIFI驱动包括hostapd、wpa_supplicant等。
-
USB驱动:USB驱动程序架构包括USB主机控制器驱动、USB核心和USB设备驱动。USB设备驱动开发主要包含分配/设置usb_driver结构体,实现并填充结构体内容,以及注册usb_driver。
-
显示驱动:V4L2(Video for Linux 2)驱动框架是Linux中用于视频设备的驱动框架,涉及video_device、v4l2_device和v4l2_subdev等对象。
-
输入子系统驱动:输入子系统由Input driver、Input core和Event handler三部分组成,处理来自硬件设备的事件,如鼠标移动、键盘按下等。
这些驱动程序是Linux系统正常运行的基础,它们使得Linux能够管理和控制各种硬件设备。