Как передать переменные окружения в компиляцию драйвера ядра

Я пытаюсь вставить модуль ядра 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 не установлен.

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

0 ответов

Другие вопросы по тегам