1、安装编译内核环境包
编译需要用到kernel 源码,centos 下需先安装 kernel-devel 包,要下与自己kernel 对应版本
yum install kernel-devel
2、首先从内核或自己写的模块,发到编译环境中
注:就像我自己拷贝一个 bcache 驱动的目录,我就想单独编译它,要不然整体编译内核太费事、费时
3、制作编译Makefile
# SPDX-License-Identifier: GPL-2.0
CROSS_COMPILE=gcc
KDIR=/lib/modules/5.10.106-4/build
obj-m := bcache.o
bcache-objs += alloc.o bset.o btree.o closure.o debug.o extents.o\
io.o journal.o movinggc.o request.o stats.o super.o sysfs.o trace.o\
util.o writeback.o features.o
INCLUDE_DIRS := $(addprefix -I,$(shell find ../ -type d ))
ccflags-y:= -I$(_KDIR)/include/linux/ -I$(PWD)/
#ccflags-y += -Wno-declaration-after-statement
all:
make ARCH=${ARCH} -C $(KDIR) M=$(PWD) modules
clean:
make ARCH=${ARCH} -C $(KDIR) M=$(PWD) clean