Linux 如何新增驱动模块


简述

linux系统的代码量大,复杂设计的深度,广度需要长期的积累才能了然于胸。不过通常我们需要了解最多的是各个模块的驱动。


驱动添加流程

下面举例说明如何添加一个系统驱动(wifi为例):

解压厂商驱动源码

                  tar  -xzvf    rtl8723bu.tar.gz   

                  cp   -Rf  rtl8723bu/   kernel/drivers/net/wireless/       # drivers/net/wireless/ 为wifi驱动目录

                  拷贝厂商源码目录rtl8723bu/之后,可以查看源码的Makefile,Kconfig 

                  cat  rtl8723bu/Kconfig 查看模块名称configRTL8723BU  

添加当前模块到内核配置文件中

                   在kernel/drivers/net/wireless/Kconfig 中添加 wifi_vendor/Kconfig

                   source "drivers/net/wireless/rtl8723bu/Kconfig"   包含嵌套新加的模块

添加模块到编译系统中

                   在kernel/drivers/net/wireless/Makefile中,导入新模块

                   obj-$(CONFIG_RTL8723BU)         += rtl8723bu/

menuconfig 配置模块

添加好模块之后,就需要使用make menuconfig来选择新增的模块,决定是编入内核还是生产KO动态加载

                make menuconfig  -->  Device Drivers  --->  Network device support  --->  Wireless LAN  --->  Realtek 8723B USB WiFi 选择M即可编译得到KO库。

                对应的Kconfig分别是:

                drivers/Kconfig

                drivers/net/Kconfig

                drivers/net/wireless/Kconfig

                drivers/net/wireless/rtl8723bu/Kconfig

编译得到最后的ko文件



相关链接: linux Kconfig Makefile

你可能感兴趣的:(linux,makefile,库)