Как передать переменные окружения в компиляцию драйвера ядра - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь установить модуль ядра Mali для Amlogic Meson SoC в основное ядро. Но я не могу передать соответствующие переменные env.

Я могу скомпилировать модуль отдельно, используя командную строку (упрощенно):

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

Теперь я пытаюсь интегрировать его в дерево исходных кодов ядра, но мне нужно передать переменную env 'MALI_PLATFORM = meson'. Я попытался отредактировать make-файл драйвера следующим образом (снова упрощенно):

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 не установлен.

Как правильно задать эту переменную и передать ее для создания?

...