Kaspersky IoT Secure Gateway 1000 SDK

Сборка и запуск программы с помощью скриптов

23 января 2025

ID 269103

В этом разделе описана сборка и запуск одного из примеров с помощью специализированных скриптов.

После загрузки системы и запуска программы Hello World, в терминале отображается текст HELLO WORLD, выполненный псевдографикой:

_ _ ______ _ _ ____ __ ______ _____ _ _____

| | | | ____| | | | / __ \ \ \ / / __ \| __ \| | | __ \

| |__| | |__ | | | | | | | | \ \ /\ / / | | | |__) | | | | | |

| __ | __| | | | | | | | | \ \/ \/ /| | | | _ /| | | | | |

| | | | |____| |____| |___| |__| | \ /\ / | |__| | | \ \| |____| |__| |

|_| |_|______|______|______\____/ \/ \/ \____/|_| \_\______|_____/

Для быстрого ознакомления с основами использования Kaspersky IoT Secure Gateway 1000 SDK на примере программы Hello World, рекомендуется выполнить приведенные ниже инструкции.

Подготовка к сборке

Чтобы подготовиться к сборке образа:

  1. Скопируйте директорию /opt/KasperskyOS-SDK-KISG-Platform-<version>/examples/secure_gateway/sdkl3 в директорию, к которой есть доступ на запись у учетной записи под которой вы работаете. Например, выполните копирование в домашнюю директорию:

    cp -r /opt/KasperskyOS-SDK-KISG-Platform-<version>/examples/secure_gateway/sdkl3 ~/sdkl3

    Директория sdkl3 содержит примеры, иллюстрирующие различные сценарии использования SDK. Изучая их и экспериментируя, вы будете вносить изменения в код и конфигурационные файлы. Кроме того, при сборке примера осуществляется запись в директории sdkl3/platform-build и sdkl3/applications/<директория_примера>/.build. Создание копии директории sdkl3 позволяет:

    • Не модифицировать файлы и директории, созданные при установке SDK из deb-пакета. Такая модификация может привести к нарушению корректной работы SDK и невозможности полного удаления SDK командой apt remove.
    • Сохранить оригинальное состояние директории sdkl3, к которому можно будет вернуться без переустановки SDK.
    • Не выполнять все дальнейшие действия с root-правами.
  2. Перейдите в созданную директорию:

    cd ~/sdkl3

    Исходный код программы Hello World расположен в директории sdkl3/applications/hello_world_package. В соседних директориях располагается код других демонстрационных программ. При разработке собственных программ, вы можете придерживаться этой же структуры и размещать код ваших программ в новых поддиректориях директории applications. Скрипты, расположенные в директории sdkl3, используются для сборки и запуска программ.

  3. Скопируйте директорию c файлом LauncherConfig:

    cp -r ~/sdkl3/applications/hello_world_package/resources/configs ~/sdkl3

    В этом конфигурационном файле указываются параметры запуска программы Hello World.

  4. Откройте скопированный файл ~/sdkl3/configs/LauncherConfig в любом текстовом редакторе. Убедитесь, что в файле содержатся указанные ниже параметры:

    ~/sdkl3/configs/LauncherConfig

    {

    "startupSettings": {

    "kaspersky.kisg.helloworld": {

    "launchRule": "auto",

    "logLevel": 4,

    "restartPolicy": "DO_NOT_RESTART"

    }

    }

    }

Сборка и запуск образа в эмуляторе QEMU с помощью специализированных скриптов

Чтобы собрать программу Hello World, добавить ее в образ для запуска в эмуляторе QEMU и запустить образ с помощью специализированных скриптов:

  1. Перейдите в директорию с примерами:

    cd ~/sdkl3

  2. Запустите расположенный в директории sdkl3 скрипт create-kisg-package.sh с параметрами:

    ./create-kisg-package.sh hello_world_package -c configs

    Параметр hello_world_package указывает имя поддиректории внутри директории applications, содержащей исходный код собираемой программы Hello World. Параметр -c указывает имя директории configs с конфигурационными файлами, которые будут скопированы в образ. В текущем сценарии, директория configs содержит единственный файл LauncherConfig. При выполнении сборки для изменения файла образа диска platform-build/assets.qcow2 этот файл монтируется в систему. Для монтирования файла требуются root-права. Вам может потребоваться ввести пароль учетной записи с этими правами в ответ на приглашение sudo.

    Чтобы ознакомиться с другими возможностями скрипта create-kisg-package.sh, вы можете запустить этот скрипт с параметром --help. При этом скрипт выведет справочную информацию о своем использовании.

  3. Убедитесь что директория sdkl3/platform-build содержит файлы kos-romfsloader-qemu-image, kos-romfsloader-qemu-image.qemu.txt и assets.qcow2. Если этих файлов нет, проверьте что вы правильно выполнили шаг 2.
  4. Запустите скрипт run-qemu.sh, расположенный в директории sdkl3:

    ./run-qemu.sh

    Этот скрипт запускает QEMU с root-правами, используя программу sudo. Вам может потребоваться ввести пароль учетной записи с этими правами в ответ на приглашение sudo.

    Скрипт run-qemu.sh вызывает QEMU c параметрами -kernel (чтобы передать файл начального образа kos-romfsloader-qemu-image) и -drive (чтобы передать образ диска assets.qcow2).

  5. В случае успешного запуска QEMU и программы, в выводе терминала вы увидите текст HELLO WORLD, выполненный псевдографикой. Этот текст также записывается в файл журнала qemu.log, расположенный в директории sdkl3.
  6. Чтобы остановить эмулятор QEMU, нажмите комбинацию клавиш Ctrl+A, X.

Сборка образа для установки на устройство

Чтобы собрать программу Hello World и добавить ее в образ install.tar.gz, предназначенный для установки на устройство Kaspersky IoT Secure Gateway 1000:

  1. Перейдите в директорию со скриптом create-kisg-package.sh:

    cd ~/sdkl3/

  2. Запустите сборку с параметром -t hw. Также вы можете указать директорию с конфигурационными файлами для добавления в образ с помощью параметра -c:

    ./create-kisg-package.sh -t hw -c configs/

При успешном завершении сборки, в директории ~/sdkl3/applications/hello_world_package/platform-build создается файл установочного образа install.tar.gz. Инструкция по установке полученного файла образа приведена в разделе "Установка Kaspersky IoT Secure Gateway 1000" Руководства пользователя Kaspersky IoT Secure Gateway 1000.

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