Сборка и запуск программы с помощью скриптов
23 января 2025
ID 269103
В этом разделе описана сборка и запуск одного из примеров с помощью специализированных скриптов.
После загрузки системы и запуска программы Hello World, в терминале отображается текст HELLO WORLD, выполненный псевдографикой:
_ _ ______ _ _ ____ __ ______ _____ _ _____
| | | | ____| | | | / __ \ \ \ / / __ \| __ \| | | __ \
| |__| | |__ | | | | | | | | \ \ /\ / / | | | |__) | | | | | |
| __ | __| | | | | | | | | \ \/ \/ /| | | | _ /| | | | | |
| | | | |____| |____| |___| |__| | \ /\ / | |__| | | \ \| |____| |__| |
|_| |_|______|______|______\____/ \/ \/ \____/|_| \_\______|_____/
Для быстрого ознакомления с основами использования Kaspersky IoT Secure Gateway 1000 SDK на примере программы Hello World, рекомендуется выполнить приведенные ниже инструкции.
Подготовка к сборке
Чтобы подготовиться к сборке образа:
- Скопируйте директорию
/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-правами.
- Не модифицировать файлы и директории, созданные при установке SDK из deb-пакета. Такая модификация может привести к нарушению корректной работы SDK и невозможности полного удаления SDK командой
- Перейдите в созданную директорию:
cd ~/sdkl3
Исходный код программы
Hello Worldрасположен в директорииsdkl3/applications/hello_world_package. В соседних директориях располагается код других демонстрационных программ. При разработке собственных программ, вы можете придерживаться этой же структуры и размещать код ваших программ в новых поддиректориях директорииapplications. Скрипты, расположенные в директорииsdkl3, используются для сборки и запуска программ. - Скопируйте директорию c файлом LauncherConfig:
cp -r ~/sdkl3/applications/hello_world_package/resources/configs ~/sdkl3
В этом конфигурационном файле указываются параметры запуска программы
Hello World. - Откройте скопированный файл
~/sdkl3/configs/LauncherConfigв любом текстовом редакторе. Убедитесь, что в файле содержатся указанные ниже параметры:~/sdkl3/configs/LauncherConfig
{
"startupSettings": {
"kaspersky.kisg.helloworld": {
"launchRule": "auto",
"logLevel": 4,
"restartPolicy": "DO_NOT_RESTART"
}
}
}
Сборка и запуск образа в эмуляторе QEMU с помощью специализированных скриптов
Чтобы собрать программу Hello World, добавить ее в образ для запуска в эмуляторе QEMU и запустить образ с помощью специализированных скриптов:
- Перейдите в директорию с примерами:
cd ~/sdkl3
- Запустите расположенный в директории
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. При этом скрипт выведет справочную информацию о своем использовании. - Убедитесь что директория
sdkl3/platform-buildсодержит файлыkos-romfsloader-qemu-image,kos-romfsloader-qemu-image.qemu.txtиassets.qcow2. Если этих файлов нет, проверьте что вы правильно выполнили шаг 2. - Запустите скрипт
run-qemu.sh, расположенный в директорииsdkl3:./run-qemu.sh
Этот скрипт запускает QEMU с root-правами, используя программу
sudo. Вам может потребоваться ввести пароль учетной записи с этими правами в ответ на приглашениеsudo.Скрипт
run-qemu.shвызывает QEMU c параметрами-kernel(чтобы передать файл начального образаkos-romfsloader-qemu-image) и-drive(чтобы передать образ дискаassets.qcow2). - В случае успешного запуска QEMU и программы, в выводе терминала вы увидите текст HELLO WORLD, выполненный псевдографикой. Этот текст также записывается в файл журнала
qemu.log, расположенный в директорииsdkl3. - Чтобы остановить эмулятор QEMU, нажмите комбинацию клавиш Ctrl+A, X.
Сборка образа для установки на устройство
Чтобы собрать программу Hello World и добавить ее в образ install.tar.gz, предназначенный для установки на устройство Kaspersky IoT Secure Gateway 1000:
- Перейдите в директорию со скриптом
create-kisg-package.sh:cd ~/sdkl3/
- Запустите сборку с параметром
-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.