编译前置
- 不管在哪里增加驱动代码
都要注意做这三步
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语句里面应该填的编译器,内核目录,驱动模块目录,对应填写直接执行也可编译
评论