build_kos_qemu_image()

12 января 2026

ID cmake_build_qemu

Команда объявлена в файле /opt/KasperskyOS-Community-Edition-<platform>-<version>/toolchain/share/cmake/Modules/platform/kos_image/image.cmake.

build_kos_qemu_image(NAME ...)

Команда создает CMake-цель сборки образа решения для QEMU.

Параметры:

  • NAME – имя CMake-цели для сборки образа решения. Обязательный параметр.
  • GDBSTUB_KERNEL – использовать ядро с GDB-сервером.
  • EINIT_ENTITY – имя исполняемого файла, из которого будет запускаться программа Einit.
  • EXTRA_XDL_DIR – дополнительные директории для включения при сборке программы Einit.
  • CONNECTIONS_CFG – путь до файла init.yaml или шаблона init.yaml.in.
  • SECURITY_PSL – путь до файла security.psl или шаблона security.psl.in.
  • KLOG_ENTITY – цель сборки системной программы Klog, отвечающей за аудит безопасности. Если цель не указана – аудит не выполняется.
  • IMAGE_BINARY_DIR_BIN – директория для финального образа и других артефактов, по умолчанию совпадает с CMAKE_CURRENT_BINARY_DIR.
  • NO_AUTO_BLOB_CONTAINER – не включать в образ решения программу BlobContainer, необходимую для работы с динамическими библиотеками в разделяемой памяти. Подробнее см. "Включение системной программы BlobContainer в решение на базе KasperskyOS".
  • PACK_DEPS_COPY_ONLY, PACK_DEPS_LIBS_PATH, PACK_DEPS_COPY_TARGET – параметры, задающие способ добавления динамических библиотек в образ решения.
  • PACK_DEPS_EXTRA_LIBRARIES – пути к файлам, которые необходимо скопировать в директорию /lib при сборке решения.
  • GINGER_ENABLE – включить (GINGER_ENABLE TRUE) или выключить (GINGER_ENABLE FALSE) шаблонизатор Ginger.
  • GINGER_DEFINITIONS – набор переменных, используемых при раскрытии PSL-шаблонов Ginger. Например, GINGER_DEFINITIONS "foo=bar baz=quux USE_DYNLD" задает переменную foo со значением bar, переменную baz со значением quux и переменную USE_DYNLD со значением TRUE. Переменная USE_DYNLD имеет значением TRUE, поскольку переменные, используемые при раскрытии PSL-шаблонов Ginger, по умолчанию имеют значение TRUE.
  • GINGER_DUMP_DIR – путь к директории, где будут сохранены PSL-файлы, полученные из PSL-шаблонов Ginger. Эти PSL-файлы нужны только для того, чтобы проверить, что получилось в результате раскрытия PSL-шаблонов Ginger, и не используются для генерации исходного кода модуля безопасности Kaspersky Security Module. (При генерации исходного кода модуля безопасности PSL-шаблоны Ginger раскрываются в памяти независимо от того, используется параметр GINGER_DUMP_DIR или нет.) Имена PSL-файлов формируются на основе абсолютных путей к PSL-шаблонам Ginger. Например, PSL-файл foo!bar!baz.psl соответствует PSL-шаблону Ginger, расположенному по пути /foo/bar/baz.psl.
  • EDL_TARGETS – имена CMake-целей, от которых зависит сборка модуля безопасности. Переданные в этом параметре цели будут собраны до начала сборки модуля безопасности.
  • QEMU_DEPENDENCIES – имена CMake-целей, которые должны быть собраны до запуска образа решения в эмуляторе QEMU.
  • QEMU_USER_NETWORK_FLAGS – флаги для установки сетевых параметров при запуске QEMU.
  • QEMU_FLAGS – дополнительные флаги для запуска QEMU.
  • BOOTARGS – параметры для передачи загрузчику при запуске образа решения в эмуляторе QEMU.
  • IMAGE_FILES – исполняемые файлы прикладных и системных программ (кроме программы Einit) и любые другие файлы для добавления в образ ROMFS.

    Для добавления нескольких программ или файлов можно использовать несколько параметров IMAGE_FILES.

  • <пути до файлов> – свободные параметры, тоже что IMAGE_FILES.

Пример вызова:

build_kos_qemu_image ( kos-qemu-image

EINIT_ENTITY EinitQemu

CONNECTIONS_CFG "src/init.yaml.in"

SECURITY_PSL "src/security.psl.in"

IMAGE_FILES ${ENTITIES})

Пример использования команды см. в статье "Файлы CMakeLists.txt для сборки программы Einit".

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!