-
创建驱动文件夹:在/package/kernel目录下创建,如:mkdir hello-kernel
-
在hello-kernel文件夹中创建Makefile 和 src文件夹
Makefile:
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=hello-kernel
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
define KernelPackage/hello-kernel
SUBMENU:=Other modules
TITLE:=Hello kernel drive
FILES:=$(PKG_BUILD_DIR)/hello-kernel.ko
KCONFIG:=
AUTOLOAD:=$(call AutoProbe,81,hello-kernel)
endef
define KernelPackage/hello-kernel/description
Kernel module for hello-kernel.
endef
EXTRA_CFLAGS:= \
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \
MAKE_OPTS:= \
ARCH="$(LINUX_KARCH)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
SUBDIRS="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(EXTRA_KCONFIG)
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)
endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
$(MAKE_OPTS) CONFIG_HELLO-KERNEL=m\
modules
endef
$(eval $(call KernelPackage,hello-kernel))
- 在src文件夹中创建Makefile Kconfig xxx.c
Makefile:
obj-${CONFIG_HELLO-KERNEL} += hello-kernel.o
Kconfig(menu中必须要用到的):
config HELLO-KERNEL
tristate "Test kernel hello"
help
hello-kernel
-
进行make menuconfig
-
Kernel modules–>other modules—>xxx
-
make package/kernel/hello-kernel/compile