Linux的模块构建的输出重定向(Redirecting output of linux modul

2019-10-17 02:17发布

我想我的重定向模块生成的输出,以隔离从源头上文物。

我生成文件看起来像:

    obj-m += hello-1.o

all:
    make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) modules

clean:
    make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) clean

这正常工作,只是模块的输出正好是在我的源目录。 我尝试添加O = {路径到我的输出dirctory}中的每一行,但随后未能建立与类似...

错误:内核配置无效。 包括/生成/ autoconf.h或包括/配置/ auto.conf丢失。 执行“make oldconfig会&&做准备”内核SRC解决它。

警告:符号版本转储/work/development/linux/driver/blah/Module.symvers丢失; 模块不会有任何依赖性和MODVERSIONS。

我想从一个事实,即有一个来自公司在模块装配使用的内核构建一些输出文件,并改变以“O =”与碰撞的输出目录这个茎。

有没有达到这个目的使用现有的基础设施建设的方法?

Answer 1:

综观对文档的模块系统 ,它看起来并不好。 也许你可以复制.config到您的构建目录,并做了make oldconfig && make modules-prepareO=集。


另外,如果你运行会发生什么make来自其他目录?

/somewhere/else$ make -C /path/to/kernel ARCH=arm CROSS_COMPILE=arm-eabi- M=/your/module/dir modules


Answer 2:

这Makefile文件将解决您的查询

 obj-m += hello-1.o

all:
make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) modules_install INSTALL_MOD_PATH=<output directory for modules>

clean:
make ARCH=arm CROSS_COMPILE=arm-eabi- -C /work/TI-Android-ICS-4.0.3_AM37x_3.0.0/kernel M=$(PWD) clean


文章来源: Redirecting output of linux module build