多次编译相同的内核驱动程序
我需要通过传递标志将其用作源代码中的配置参数来编译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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如何简单地创建xyz0.c和xyz1.c,每个都简单地包含:
然后将每个模块构建为普通模块?
How about simply creating xyz0.c and xyz1.c, each simply containing:
And then just build each as a normal module?