【问题标题】:How do I write the makefile for a kernel module in OpenWrt to load the module automatically如何在 OpenWrt 中为内核模块编写 makefile 以自动加载模块
【发布时间】:2018-06-04 14:27:00
【问题描述】:

我正在为 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 模块并加载它,这很有效。我只想让模块自动加载。我该怎么做?

【问题讨论】:

  • 您使用稍微错误的术语来描述您想要实现的目标。如果我理解这个问题,问题在于创建一个包含内核模块的图像。最简单的方法就是合二为一。
  • 您似乎缺少安装模块的功能。签入 build 或 tmp 目录。我猜它正在构建中,但未包含在最终图像中。
  • @LucasRamage 我认为这是问题所在。现在我用什么功能来安装模块?我在文档中没有看到。

标签: linux-kernel kernel-module openwrt


【解决方案1】:

Build/Compile 中,您需要一行来包含您的模块。

define Build/Compile $(MAKE) -C "$(LINUX_DIR)" \ $(MAKE_OPTS) \ CONFIG_<your mod>=m \ # THIS LINE IS MISSING modules endef

这是树中的一些很好的例子。查看exfat-nofuse

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2012-09-27
    • 2021-10-29
    • 2022-01-06
    相关资源
    最近更新 更多