KasperskyOS Community Edition 1.0

Сборка примеров

Сборка примеров осуществляется с помощью системы сборки CMake, входящей в состав KasperskyOS Community Edition.

Код примеров и скрипты для сборки находятся по следующему пути:

/opt/KasperskyOS-Community-Edition-<version>/examples

Сборку примеров нужно выполнять в домашней директории, поэтому директорию с примером, который требуется собрать, нужно скопировать из /opt/KasperskyOS-Community-Edition-<version>/examples в домашнюю директорию.

Сборка примеров для запуска на QEMU

Чтобы выполнить сборку примера, перейдите в директорию с примером и выполните команду:

$ sudo ./cross-build.sh

В результате работы скрипта cross-build.sh создается образ решения на базе KasperskyOS, который включает пример. Файл образа решения kos-qemu-image сохраняется в директории <название примера>/build/einit.

Сборка примеров для запуска на Raspberry Pi 4 B

Чтобы выполнить сборку примера:

  1. Перейдите в директорию с примером.
  2. Откройте файл скрипта cross-build.sh в текстовом редакторе.
  3. В последней строке скрипта замените команду make sim на команду make kos-image.
  4. Сохраните файл скрипта, а затем выполните команду:

    $ sudo ./cross-build.sh

В результате работы скрипта cross-build.sh создается образ решения на базе KasperskyOS, который включает пример. Файл образа решения kos-image сохраняется в директории <название примера>/build/einit.

В начало

Запуск примеров на QEMU

Запуск примеров на QEMU в Linux с графической оболочкой

Запуск примера на QEMU в Linux с графической оболочкой осуществляется скриптом cross-build.sh, который также выполняет сборку примера. Чтобы запустить скрипт, перейдите в директорию с примером и выполните команду:

$ sudo ./cross-build.sh

Запуск некоторых примеров требует использования дополнительных параметров QEMU. Команды для запуска таких примеров приведены в описаниях этих примеров.

Запуск примеров на QEMU в Linux без графической оболочки

Чтобы запустить пример на QEMU в Linux без графической оболочки, перейдите в директорию с примером, соберите пример и выполните следующие команды:

$ cd build/einit

# Перед выполнением следующей команды убедитесь, что путь к

# директории с исполняемым файлом qemu-system-arm сохранен в

# переменной окружения PATH. В случае отсутствия

# добавьте его в переменную PATH.

$ qemu-system-arm -m 2048 -machine vexpress-a15 -nographic -monitor none -serial stdio -kernel kos-qemu-image

В начало

Запуск примеров на Raspberry Pi 4 B

Коммутация компьютера и Raspberry Pi 4 B

Чтобы видеть вывод примеров на компьютере, выполните следующие действия:

  1. Соедините пины преобразователя USB-UART на базе FT232 с соответствующими GPIO-пинами Raspberry Pi 4 B (см. рис. ниже).

    RPI_USB

    Схема соединения преобразователя USB-UART и Raspberry Pi 4 B

  2. Соедините USB-порт компьютера и преобразователь USB-UART.
  3. Установите PuTTY или другую аналогичную программу для чтения данных из COM-порта. Настройте параметры следующим образом: bps = 115200, data bits = 8, stop bits = 1, parity = none, flow control = none.

Чтобы компьютер и Raspberry Pi 4 B могли взаимодействовать через сеть Ethernet, выполните следующие действия:

  1. Соедините сетевые карты компьютера и Raspberry Pi 4 B с коммутатором или друг с другом.
  2. Выполните настройку сетевой карты компьютера, чтобы ее IP-адрес был в одной подсети с IP-адресом сетевой карты Raspberry Pi 4 B (параметры сетевой карты Raspberry Pi 4 B задаются в файле dhcpcd.conf, который находится по пути <название примера>/resources/...).

Подготовка загрузочной SD-карты для Raspberry Pi 4 B

Загрузочную SD-карту для Raspberry Pi 4 B можно подготовить автоматически и вручную.

Чтобы подготовить загрузочную SD-карту автоматически, подключите SD-карту к компьютеру и выполните следующие команды:

# Следующая команда создает файл образа загрузочного

# носителя (*.img).

$ sudo /opt/KasperskyOS-Community-Edition-<version>/examples/rpi4_prepare_fs_image.sh

# В следующей команде path_to_img – путь к файлу образа

# загрузочного носителя (этот путь выводится по окончании

# выполнения предыдущей команды), [X] – последний символ

# в имени блочного устройства для SD-карты.

$ sudo dd bs=4M if=path_to_img of=/dev/sd[X] conv=fsync

Чтобы подготовить загрузочную SD-карту вручную, выполните следующие действия:

  1. Выполните сборку загрузчика U-Boot для платформы ARMv7, который будет автоматически запускать пример. Для этого выполните следующие команды:

    $ sudo apt install gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf git bison flex

    $ git clone https://github.com/u-boot/u-boot.git u-boot-armv7

    $ cd u-boot-armv7 && git checkout tags/v2020.10

    $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- rpi_4_32b_defconfig

    # В меню, которое появится при выполнении следующей команды, включите

    # флаг Enable a default value for bootcmd. В поле bootcmd value введите

    # значение fatload mmc 0 ${loadaddr} kos-image; bootelf ${loadaddr}.

    # Затем выйдите из меню, сохранив параметры.

    $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

    $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- u-boot.bin

  2. Отформатируйте SD-карту. Для этого подключите SD-карту к компьютеру и выполните следующие команды:

    $ wget https://downloads.raspberrypi.org/raspbian_lite_latest

    $ unzip raspbian_lite_latest

    # В следующей команде [X] – последний символ в имени блочного устройства

    # для SD-карты.

    $ sudo dd bs=4M if=$(ls *raspbian*lite.img) of=/dev/sd[X] conv=fsync

  3. Скопируйте загрузчик U-Boot на SD-карту, выполнив следующие команды:

    # В следующих командах путь ~/mnt/fat32 используется для примера. Вы

    # можете использовать другой путь.

    $ mkdir -p ~/mnt/fat32

    # В следующей команде [X] – последний буквенный символ в имени блочного

    # устройства для раздела на отформатированной SD-карте.

    $ sudo mount /dev/sd[X]1 ~/mnt/fat32/

    $ sudo cp u-boot.bin ~/mnt/fat32/u-boot.bin

  4. Скопируйте конфигурационный файл для загрузчика U-Boot на SD-карту. Для этого перейдите в директорию /opt/KasperskyOS-Community-Edition-<version>/examples и выполните следующие команды:

    $ sudo cp config.txt ~/mnt/fat32/config.txt

    $ sync

    $ sudo umount ~/mnt/fat32

Запуск примера на Raspberry Pi 4 B

Чтобы запустить пример на Raspberry Pi 4 B, выполните следующие действия:

  1. Перейдите в директорию с примером и соберите пример.
  2. Скопируйте на загрузочную SD-карту образ решения на базе KasperskyOS. Для этого подключите загрузочную SD-карту к компьютеру и выполните следующие команды:

    # В следующей команде [X] – последний буквенный символ в имени блочного

    # устройства для раздела на загрузочной SD-карте.

    # В следующих командах путь ~/mnt/fat32 используется для примера. Вы

    # можете использовать другой путь.

    $ sudo mount /dev/sd[X]1 ~/mnt/fat32/

    $ sudo cp build/einit/kos-image ~/mnt/fat32/kos-image

    $ sync

    $ sudo umount ~/mnt/fat32

  3. Подключите загрузочную SD-карту к Raspberry Pi 4 B.
  4. Подайте питание на Raspberry Pi 4 B и дождитесь, пока запустится пример.

    О том, что пример запустился, свидетельствует вывод, отображаемый на компьютере.

В начало