Я пишу простой модуль ядра для Openwrt.У меня есть рабочий код, который загружает и делает то, что ему нужно.Чего мне не хватает, так это как получить код в процессе сборки Openwrt.У меня есть Makefile, как показано ниже:
# Copyright (C) 2006-2012 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
# name
PKG_NAME:=HelloWorld
# version of what we are downloading
PKG_VERSION:=1.0
# version of this makefile
PKG_RELEASE:=0
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)
PKG_CHECK_FORMAT_SECURITY:=0
include $(INCLUDE_DIR)/package.mk
define KernelPackage/$(PKG_NAME)
SUBMENU:=Other modules
TITLE:=helloworld lkm
FILES:= $(PKG_BUILD_DIR)/hello.ko
endef
define KernelPackage/$(PKG_NAME)/description
A sample kernel module.
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
MAKE_OPTS:= \
ARCH="$(LINUX_KARCH)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
SUBDIRS="$(PKG_BUILD_DIR)"
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
$(MAKE_OPTS) \
modules
endef
$(eval $(call KernelPackage,$(PKG_NAME)))
Я пытаюсь следовать инструкциям здесь: https://wiki.openwrt.org/doc/devel/packages#creating_packages_for_kernel_modules
Прямо сейчас я вижу модуль в make menuconfig и выбираю его,Однако когда я запускаю сборку в QEMU, я не вижу модуль.Я могу скопировать модуль * .ko и загрузить его, и это работает.Я просто хочу, чтобы модуль загружался автоматически.Как я могу это сделать?