Linux驱动编译-以misc为例

Linux  ·  2025-08-22

编译前置

  • 不管在哪里增加驱动代码
    都要注意做这三步
    1.创建驱动文件夹再写驱动代码,如mkdir misc_test
    2.写完驱动代码要在驱动代码同级目录增加Makefile和Kconfig
    3.在驱动文件夹上一级的Makefile和Kconfig增加驱动文件夹的编译配置
    做好这三步,才可以进行编译
root:~/LinuxSDK/rk3576_linux6.1_release/kernel-6.1/drivers/misc $ mkdir misc_test && cd misc_test

root:~/LinuxSDK/rk3576_linux6.1_release/kernel-6.1/drivers/misc/misc_test$ touch misc_test.c Makefile Kconfig

编辑完成后

在misc_test文件夹的上级目录,比如/LinuxSDK/rk3576_linux6.1_release/kernel-6.1/drivers/misc,对misc下的Makefile与Kconfig文件增加如下内容

/LinuxSDK/rk3576_linux6.1_release/kernel-6.1/drivers/misc/Makefile
+ obj-y += misc_test/
/LinuxSDK/rk3576_linux6.1_release/kernel-6.1/drivers/misc/Kconfig
+ source "drivers/misc/misc_test/Kconfig"
Makefile文件

KERNEL_DIR=../../../
#KERNEL_DIR=/home/l/share/tspi_linux_sdk_repo_20240131/kernel
ARCH=arm64
CROSS_COMPILE=aarch64-linux-gnu-
export  ARCH  CROSS_COMPILE

PWD=$(shell pwd)

obj-m += misc_test.o

all:
    $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules

.PHONE:clean

clean:
    $(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean
Kconfig文件

config MISC_TEST
    tristate "MISC TEST"
    help
      misc_test

1.编译进内核

  • ./build.sh kernel-config 进入配置页面,找到MISC_TEST配置,将其选中为Y,保存配置后./build.sh编译即可

2.编译为模块

  • ./build.sh kernel-config 进入配置页面,找到MISC_TEST配置,将其选中为M,保存配置后./build.sh编译即可

2.手动编译

  • 在驱动文件夹下直接使用make命令执行Makefile,也可以得到驱动模块KO文件,
  • 或者找到$(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules语句里面应该填的编译器,内核目录,驱动模块目录,对应填写直接执行也可编译
 驱动
评论
LJ` Blog . All Rights Reserved. Theme Jasmine by Kent Liao.
冀ICP备2025127925号 冀公网安备13082402000074号