多次编译相同的内核驱动程序

发布于 2025-01-29 09:04:10 字数 875 浏览 3 评论 0原文

我需要通过传递标志将其用作源代码中的配置参数来编译XYZ内核驱动程序2次。我需要以xyz0.ko和xyz1.ko生成.ko文件。以下是XYZ内核Makefile所需的内容。

OBJ-M += XYZ.O
xyz-objs = $(对象)

模块:

    for number in 0 1 ; do \
         CROSS_COMPILE=$(_CROSS_COMPILE) make ARCH=arm64 -C $(_KDIR) M=$(PWD) EXTRA_CFLAGS="- Dinst=$$number" modules ; \
          mv xyx.ko $(_INSTALL_MOD_PATH)/lib/modules/5.2.0/extra/xyz$$number.ko ; \
          rm -f $(OBJECTS) xyz$$number.* ; \
    done

但是根据上述命令,每次需要生成xyz.ko,将xyz.ko重命名为xyz.ko为xyz $$ number.ko.ko,然后复制到目标目录。有什么方法可以直接能够生成“ xyz $$ number.ko”并直接安装在目标目录中。

如果我使用以下命令将.ko文件安装到target,则其安装xyz.ko而不是xyz0.ko或xyz1.ko,

CROSS_COMPILE=$(_CROSS_COMPILE) make ARCH=arm64 INSTALL_MOD_PATH=$(_INSTALL_MOD_PATH) -C $(_KDIR) M=$(CURDIR) V=$(V) modules_install

我从buildroot package.mk pack.mk files

inly in tary“模块”。

I need to compile xyz kernel driver 2 times by passing a flag to use it as a configuration parameter in the source code. I need to generate the .ko files as xyz0.ko and xyz1.ko. Below is the required content from xyz kernel Makefile.

obj-m += xyz.o
xyz-objs = $(OBJECTS)

modules:

    for number in 0 1 ; do \
         CROSS_COMPILE=$(_CROSS_COMPILE) make ARCH=arm64 -C $(_KDIR) M=$(PWD) EXTRA_CFLAGS="- Dinst=$number" modules ; \
          mv xyx.ko $(_INSTALL_MOD_PATH)/lib/modules/5.2.0/extra/xyz$number.ko ; \
          rm -f $(OBJECTS) xyz$number.* ; \
    done

But as per the above command every times i need to generate xyz.ko, rename xyz.ko to xyz$$number.ko and copy to target directory. Is there any way that directly i can able to generate "xyz$$number.ko" and install directly in the target directory.

If i use below command for installing .ko file to target, its installing xyz.ko not xyz0.ko or xyz1.ko

CROSS_COMPILE=$(_CROSS_COMPILE) make ARCH=arm64 INSTALL_MOD_PATH=$(_INSTALL_MOD_PATH) -C $(_KDIR) M=$(CURDIR) V=$(V) modules_install

I am calling "modules" from buildroot package.mk file

Kindly help me with your inputs

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝梦月影 2025-02-05 09:04:11

如何简单地创建xyz0.c和xyz1.c,每个都简单地包含:

#define inst 0/1
#include "xyz.c"

然后将每个模块构建为普通模块?

How about simply creating xyz0.c and xyz1.c, each simply containing:

#define inst 0/1
#include "xyz.c"

And then just build each as a normal module?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文