在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能夠管理和控制各種硬件設備。