编译内核驱动程序时如何传递环境变量

时间:2019-01-20 22:49:30

标签: makefile linux-kernel mali

我正在尝试将用于Amlogic Meson SoC的Mali内核模块修补到主线内核中。但是我无法传递适当的env变量来制作。

我可以使用命令行(简体)单独编译模块:

KDIR=/path/to/linux ARCH=arm64 MALI_PLATFORM=meson make -C /path/to/module

现在,我正在尝试将其集成到内核源代码树中,但是我需要传递环境变量'MALI_PLATFORM = meson'。我尝试像这样(再次简化)编辑驱动程序的makefile:

MALI_PLATFORM=meson
export MALI_PLATFORM=meson

all: $(UMP_SYMVERS_FILE)
    MALI_PLATFORM=$(MALI_PLATFORM) $(MAKE) ARCH=$(ARCH) -C $(KDIR) M=$(CURDIR) modules
    @rm $(FILES_PREFIX)__malidrv_build_info.c $(FILES_PREFIX)__malidrv_build_info.o

clean:
    $(MAKE) ARCH=$(ARCH) -C $(KDIR) M=$(CURDIR) clean

kernelrelease:
    MALI_PLATFORM=$(MALI_PLATFORM) $(MAKE) ARCH=$(ARCH) -C $(KDIR) kernelrelease

但是仍然,在编译过程中生成的信息文件告诉我env变量是这样的:

const char *__malidrv_build_info(void) { return "malidrv:  API_VERSION=900 REPO_URL=remotes/origin/linux-4.19.y REVISION=-9c5931b65 CHANGED_REVISION=9c5931b65 CHANGE_DATE=20
19-01-16 22:04:38 +0100 BUILD_DATE=Sun Jan 20 23:34:34 CET 2019 BUILD=release TARGET_PLATFORM= MALI_PLATFORM= KDIR= OS_MEMORY_KERNEL_BUFFER_SIZE_IN_MB=16 USING_UMP= USING_PR
OFILING= USING_INTERNAL_PROFILING= USING_GPU_UTILIZATION=0 USING_DVFS= USING_DMA_BUF_FENCE =  MALI_UPPER_HALF_SCHEDULING=1";}

如您所见,MALI_PLATFORM未设置。

设置该变量并将其传递给make的正确方法是什么?

0 个答案:

没有答案