##编译前置

  • 不管在哪里增加驱动代码
    都要注意做这三步
    1.创建驱动文件夹再写驱动代码,如mkdir misc_test
    2.写完驱动代码要在驱动代码同级目录增加Makefile和Kconfig
    3.在驱动文件夹上一级的Makefile和Kconfig增加驱动文件夹的编译配置
    做好这三步,才可以进行编译
1
2
3
4
5
6
7
8
9
10
11
12
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"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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

1
2
3
4
5
6
7
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语句里面应该填的编译器,内核目录,驱动模块目录,对应填写直接执行也可编译