Обзор Baikal MIPS SDK
⤓ Скачать документВведение
SDK (Software Development Kit) MIPS предназначен для сборок образов (таких как образ файловой системы, образ загрузчика U-Boot, образ ядра Linux и образ загрузочной SPI-flash микропроцессора BE-T1000), модулей ядра Linux, а так же корневых файловых систем с дополнительными пакетами утилит для микропроцессоров BE-T1000.
Baikal MIPS SDK содержит кросс-компилятор языков C и C++, редактор связей, отладчик, утилиты и системные библиотеки, необходимые для разработки системного и прикладного ПО, исполняемого на микропроцессоре BE-Т1000.
В состав SDK входит дистрибутив BEL (Baikal Embedded Linux), включающий в себя оболочку Busybox и минимальный комплект системных утилит командной строки.
Baikal MIPS SDK устанавливается на компьютер с архитектурой x86-64 под управлением операционной системы GNU/Linux. Собранное при помощи средств SDK системное и прикладное программное обеспечение может быть запущено на микропроцессоре BE-T1000.
Установка Baikal MIPS SDK
Установка производится на компьютер с операционной системой GNU/Linux. Для установки SDK необходимо выполнить следующие действия:
Загрузить Baikal MIPS SDK
УведомлениеК предоставляемым ресурсам применяются положения, описанные в пользовательском соглашении. Загружая любые материалы с сайта, вы соглашаетесь с данными условиями.
предупреждениеBaikal MIPS SDK использующий ядро Linux 5.4 больше не поддерживается. Используйте версию основанную на ядре Linux 6.1.
Выберите версию для загрузки- Актуальная версия
- Ядро Linux 6.1
- Ядро Linux 5.4
- Все версии
Скачать Baikal MIPS SDK 5.9
Скачать Baikal MIPS SDK 5.8.2
Скачать Baikal MIPS SDK 5.8.1
Скачать Baikal MIPS SDK 5.8
Скачать Baikal MIPS SDK 5.7
Скачать Baikal MIPS SDK 5.6
Скачать Baikal MIPS SDK 5.5
Скачать Baikal MIPS SDK 5.4
Скачать Baikal MIPS SDK 5.3Скачать Baikal MIPS SDK 6.2
Скачать Baikal MIPS SDK 6.1
Скачать Baikal MIPS SDK 5.9
Скачать Baikal MIPS SDK 5.8.2
Скачать Baikal MIPS SDK 5.8.1
Скачать Baikal MIPS SDK 5.8
Скачать Baikal MIPS SDK 5.7
Скачать Baikal MIPS SDK 5.6
Скачать Baikal MIPS SDK 5.5
Скачать Baikal MIPS SDK 5.4
Скачать Baikal MIPS SDK 5.3Распаковать архив
SDK-MIPS-N.n.zip
в рабочую директорию, например/SDK
:unzip /<путь к архиву>/SDK-MIPS-N.n.zip -d /SDK
Найти файл с именем
baikal-mips-N.n-YYYYMMDD.run
в директорииSDK-MIPS-N.n
ПримечаниеВ имени файлов:
•N.n
– номер версии SDK
•YYYYMMDD
– дата выпуска SDKПерейти в рабочую директорию:
cd /SDK
Для разрешения исполнения установочного файла как программы выполнить следующую команду:
chmod +x ./baikal-mips-N.n-YYYYMMDD.run
Для запуска установки в терминале необходимо выполнить следующую команду:
./baikal-mips-N.n-YYYYMMDD.run
ПримечаниеПроцесс установки может занять несколько минут. Не закрывайте терминал до окончания процесса установки. Распакованный Baikal MIPS SDK будет находиться в директории под названием
baikal-mips-N.n-YYYYMMDD
(далее${SDK_ROOT}
) рядом с установщиком.
Здесь и далее по тексту ${SDK_ROOT}
будет использоваться для обозначения полного пути к корневой директории Baikal MIPS SDK.
Результатом распаковки и установки Baikal MIPS SDK будет следующая структура директорий:
bin
– Бинарные исполняемые файлы (утилиты для сборки и прошивки)doc
– Документацияimg
– Образы прошивки загрузочной SPI-flash, загрузчика U-Boot, ядра Linux и корневых файловых системprebuilts
– Загрузочные образы, собранные при формировании релиза SDKsrc
– Исходные файлы для компонентов SDK:bootrom
– Файлы исходных кодов для формирования образа загрузочной SPI-flash микропроцессораdfu-util
– Исходные коды утилиты DFU для прошивки платыexamples
– Файлы исходных кодов примеров программ, запускаемых на микроконтроллереgenext2fs
– Утилита для создания файловой системы ext2 без прав суперпользователяinitrd
– Файлы исходных кодов программ, устанавливаемых в минималистичный дистрибутив ОС GNU/Linux, а так же набор конфигурационных файлов и загрузочных скриптов данного дистрибутиваkernel
– Файлы исходных кодов ядра Linuxopenocd
– Файлы исходных кодов программы внутрисхемной отладки OpenOCDu-boot
– Файлы исходных кодов загрузчика U-Bootramfs
– Исходные файлы корневой файловой системы начальной загрузки
usr
– Основные скрипты SDK, дополнительные утилиты и исходные тексты:spdgen
– Исходный код утилиты для генерации прошивки SPD (Serial Presence Detect)mips_tips
– Скрипты для сборки оптимизированных для MIPS мультимедиа библиотек (ffmpeg, libpng)oprofile
– Профилировщик программ, запускаемых на микропроцессоре BE-T1000scripts
– Скрипты автоматической сборки и прошивки образов системыx-tools
– Средства кросс-компиляцииoe_layer_baikal
– Файлы исходных кодов системы сборки OpenEmbedded/Yocto
Работа с Baikal MIPS SDK
Инструментарий Baikal MIPS SDK состоит из средств кросс-компиляции для архитектуры MIPS, средств отладки и скриптов, предназначенных для автоматической сборки системного и прикладного ПО. Программное обеспечение включает в себя встроенный загрузчик U-Boot, ядро Linux, минималистичное системное окружение busybox, набор файлов для формирования корневых файловых систем, а также несколько полезных утилит, устанавливаемых в образ минималистичной ОС GNU/Linux.
Инструментарий для работы с Baikal MIPS SDK состоит из средств кросс-компиляции, исходных кодов и скриптов, назначение которых описано ниже.
Средства кросс-компиляции (компилятор, компоновщик и т.д.) находятся в директории ${SDK_ROOT}/usr/x-tools
и используются для компиляции программ для архитектуры MIPS.
Исходные коды включают загрузчик U-Boot, ядро Linux, исходный код корневой файловой системы и другие исходные коды для различных утилит и программ поддержки платы.
Cкрипты Baikal MIPS SDK и их назначение
После установки Baikal MIPS SDK директория ${SDK_ROOT}/usr/scripts
содержит следующие скрипты:
build-boot-img.sh | Основой скрипт сборки. Скрипт сборки загрузочного образа микропроцессора, включающего загрузчик, ядро Linux и корневую файловую систему. |
build-initrd-img.sh | Скрипт сборки образа корневой файловой системы ОС BEL с возможностью выбора дополнительных устанавливаемых пакетов. |
build-ramfs-img.sh | Скрипт для сборки корневой файловой системы начальной загрузки основной ОС. |
flash-tool.sh | Скрипт для прошивки загрузочной SPI-flash памяти микропроцессора платы BFK 3.1 с помощью утилиты dfu-util (запускается с правами суперпользователя). |
openocd-server.sh | Вспомогательный скрипт для запуска сервера OpenOCD (запускается с правами суперпользователя). |
gen_initramfs_list.sh | Скрипт создания CPIO образа файловой системы (не предназначен для прямого использования пользователем). |
baikal-oe-init | Вспомогательный скрипт загрузки файлов исходных кодов системы OpenEmbedded (не предназначен для прямого использования пользователем). |
environment.sh | Вспомогательный скрипт, содержащий набор общих функций сборочных скриптов (не предназначен для прямого использования пользователем). |
Использование основного скрипта сборки
Данный скрипт используется для создания загрузочной SPI-flash памяти, включающего загрузчик, ядро Linux и корневую файловую систему.
Для получения краткой справки для основного скрипта необходимо запустить терминал и выполнить следующую команду:
${SDK_ROOT}/usr/scripts/build-boot-img.sh -h
На экран выводится основная информация скрипта: шаблон команды для сборки, список поддерживаемых плат, а так же список параметров запуска сборки скрипта. Шаблон команды для сборки выглядит следующим образом:
build-boot-img.sh <target> <options>
где используются следующие обозначения:
<target>
– тип платы, для которой будет происходить сборка<options>
– параметры, с которыми мы запускаем процесс сборки
Для параметра <target>
может использоваться одно единственное значение:
bfk3
– плата BFK 3.1
В качестве <options>
можно использовать комбинацию следующих параметров:
-c или --clean | Очистить предыдущие сборки (выполняется перед сборкой ядра) |
-k или --kernel | Собрать ядро Linux с текущей конфигурацией (.config) |
-d или --defconfig | Собрать файл конфигурации ядра (.config) из defconfig-файла |
-m или --modules | Собрать модули ядра с текущей конфигурацией (.config) |
-u или --uboot | Собрать загрузчик U-Boot |
-b или --bootrom | Собрать загрузочный SPI-flash образ (формат компрессии – GZIP) |
-l или --bootrom-lzma | Собрать загрузочный SPI-flash образ (формат компрессии – LZMA) |
-i или --initrd | Собрать образ корневой файловой системы минималистичной ОС GNU/Linux |
-r или --initramfs | Собрать образ корневой файловой системы начальной загрузки ОС |
-K или --kernel-oe | Собрать ядро Linux, используя систему сборки OpenEmbedded |
-U или --uboot-oe | Собрать загрузчик U-Boot, используя систему сборки OpenEmbedded |
-L или --bootrom-lzma-oe | Собрать загрузочный SPI-flash образ, используя систему сборки OpenEmbedded (формат компрессии – LZMA) |
-h или --help | Отобразить справку |
Для создания полного набора образов в качестве <options>
можно использовать следующие комбинированные параметры:
-a
или--all
– применить все параметры, эквивалентно следующему списку параметров:--clean --defconfig --kernel --modules --initrd --initramfs --uboot --bootrom
-A
или--all-oe
– применить все параметры системы сборки OpenEmbedded, эквивалентно следующему списку параметров:--kernel-oe --uboot-oe --bootrom-lzma-oe
Скрипт сохраняет созданные образы в директории ${SDK_ROOT}/img, как описано в разделе Список образов Baikal MIPS SDK.
Сборка образа корневой файловой системы ОС BEL
Данный скрипт позволяет создать образ корневой файловой системы, а также предоставляет возможность выбора устанавливаемых пакетов. С полным списком устанавливаемых пакетов можно ознакомиться ниже. Для получения краткой справки по данному скрипту необходимо выполнить следующую команду:
${SDK_ROOT}/usr/scripts/build-initrd-img.sh -h
На экран выводится краткая справка с шаблоном команды и параметрами запуска. Шаблон команды для сборки выглядит следующим образом:
build-initrd-img.sh <platform> <options> <-p | --packages list>
где используются следующие обозначения:
<platform>
– платформа для сборки (необязательное поле)<options>
– параметры запуска сборки файловой системы<-p | --packages list>
– параметр запуска для установки дополнительных пакетов
Для параметра <platform>
может использоваться одно единственное значение:
baikal
В качестве <options>
можно использовать комбинацию следующих параметров:
-c или --clean | Очистить временную директорию хранения сборок |
-s или --skipbuild | Пропустить сборку, создать образ из существующего каталога сборок |
-m или --modules | Собрать и установить модули ядра |
-d или --default | Собрать и установить пакеты по умолчанию (см. ниже) |
-p или --packages | Установить дополнительные пакеты (перечисляются в виде списка после параметров в командной строке) |
-l или --list | Вывести список доступных пакетов |
-h или --help | Вывести справку |
Параметр <-p | --packages list>
принимает список имен утилит, разделенных пробелом, предполагаемых к установке в загрузочный образ ОС GNU/Linux, например:
${SDK_ROOT}/usr/scripts/build-initrd-img.sh –p benchmarks i2ctools
Скрипт поддерживает установку следующих пакетов:
benchmarks | Набор тестов производительности |
busybox | Набор Unix-утилит командной строки, предназначенных для использования во встраиваемых системах |
dropbear | Небольшой SSH-сервер и клиент |
e2fsprogs | Набор служебных утилит для проверки целостности, поиска и исправления ошибок, изменения настроек, форматирования файловых систем |
ethtool | Утилита для проверки и настройки сетевых интерфейсов |
fbtest | Утилита для тестирования frame buffer |
fio | Утилита для тестирования производительности жестких дисков |
i2ctools | Набор утилит для работы с I2C-шиной |
iperf3 , iperf | Утилиты измерения пропускной способности сетевых интерфейсов |
kexec-tools | Утилита, позволяющая загрузить новое ядро «поверх» запущенного |
lmsensors | Утилита для мониторинга состояния аппаратного обеспечения |
pciutils | Набор программ для определения доступных в системе PCI-устройств. Позволяют проверить их состояния и выполнить чтение/изменение конфигурационных регистров |
spitools | Набор утилит для работы с SPI-шиной |
strace | Утилита для отслеживания системных вызовов и полученных сигналов запущенной программы |
В случае если <-p | --packages list>
не указан, но указан параметр –d
, будет установлены следующие пакеты: busybox
, i2ctools
, lmsensors
, ethtool
, dropbear
, kexec-tools
и pciutils
.
Сборка образа корневой файловой системы начальной загрузки
Скрипт предназначен для сборки образа корневой файловой системы, используемой для запуска основой ОС. Образ начальной загрузки выполняется первым сразу после завершения процесса старта ядра и обычно предполагает установку драйверов, необходимых для работы с устройствами, содержащими файловую систему основной ОС. Для получения краткой справки по данному скрипту необходимо выполнить следующую команду:
${SDK_ROOT}/usr/scripts/build-ramfs-img.sh -h
На экран выводится краткая справка с шаблоном команды и параметрами запуска. Шаблон команды. Шаблон команды для сборки выглядит следующим образом:
build-ramfs-img.sh <options>
где используются следующие обозначения:
<options>
– параметры запуска сборки файловой системы В качестве<options>
можно использовать комбинацию следующих параметров:
-b или --build | Создать образ |
-c или --clean | Очистить временную директорию хранения сборок |
-l или --list | Сгенерировать список файлов корневой файлов системы (.spec ) |
-k или --kmodules | Установить модули ядра, используя существующие из директории ${SDK_ROOT}/_build/kernel/modules |
-m или --modules | Собрать и установить модули |
-h или --help | Вывести справку |
Прошивка платы BFK 3.1
Скрипт flash-tool.sh
предназначен для прошивки загрузочной SPI-flash платы BFK 3.1 при помощи утилиты dfu-util. Для получения краткой справки необходимо выполнить следующую команду:
${SDK_ROOT}/usr/scripts/flash-tool.sh -h
На экран выводится краткая справка с шаблоном команды. Шаблон команды прошивки выглядит следующим образом:
flash-tool.sh <image>
В качестве <image>
используется имя файла образа, при необходимости включающее путь до него.
Процесс прошивки необходимо запускать с правами пользовательских групп plugdev и dialout либо с правами суперпользователя.
Запуск сервера OpenOCD
Вспомогательный скрипт openocd-server.sh
позволяет запустить сервер OpenOCD.
Для получения краткой справки по данному скрипту выполнить следующую команду:
${SDK_ROOT}/usr/scripts/openocd-server.sh -h
На экран выводится краткая справка с шаблоном команды. Шаблон выглядит следующим образом:
openocd-server.sh <option>
В качестве <options>
можно использовать следующие параметры:
start
– запустить сервер OpenOCDstop
– остановить сервер OpenOCD
Сервер OpenOCD необходимо запускать с правами пользовательских групп plugdev
и dialout
либо с правами суперпользователя.
После запуска сервер OpenOCD доступен по следующим адресам:
localhost:3333
– из отладчика gdb
localhost:4444
– из консоли telnet
Запуск скриптов без прав суперпользователя
В состав Baikal MIPS SDK входят скрипты, работа с которыми требует дополнительных прав доступа. Чтобы избежать запуска скриптов от имени суперпользователя, можно однократно выполнить следующие действия:
- Добавить пользователя в группы
plugdev
иdialout
:
sudo useradd -G plugdev $(whoami)
sudo useradd -G dialout $(whoami)
- Создать файл
/etc/udev/rules.d/99-baikal.rules
и занести туда следующий текст:
# Olimex ARM-USB-OCD-H
ACTION=="add|change", ATTRS{idVendor}=="15ba",
ATTRS{idProduct}=="002b", MODE="664", GROUP="plugdev"
# BFK 3.1 board
ACTION=="add|change", ATTRS{idVendor}=="0483",
ATTRS{idProduct}=="df11", MODE="664", GROUP="plugdev"
- Перезапустить службу
udev
:
sudo systemctl restart udev
Список образов Baikal MIPS SDK
В следующей таблице указан перечень всех файлов, которые можно получить после успешного выполнения скриптов Baikal MIPS SDK, и их краткое описание.
bfk3.dtb | Бинарный образ дерева устройств микропроцессора и платы BFK 3.1 |
bfk3.rom | Образ прошивки загрузочной SPI-flash платы BFK 3.1 |
bfk3.System.map | Файл System.map ядра Linux |
bfk3.u-boot.bin | Бинарный образ загрузчика U-Boot |
bfk3.u-boot.bin.gz | Сжатый бинарный образ загрузчика U-Boot |
bfk3.u-boot.srec | Образ загрузчика U-Boot в S-record формате |
bfk3.vmlinux.bin | Бинарный образ ядра Linux |
bfk3.vmlinux.bin.gz | Бинарный образ ядра Linux, сжатый при помощи алгоритма Deflate |
bfk3.vmlinux.bin.lzma | Бинарный образ ядра Linux, сжатый при помощи алгоритма LZMA |
bfk3.vmlinuz.bin | Сжатый образ ядра Linux со встроенным распаковщиком |
initramfs.gz | Сжатый образ корневой файловой системы начальной загрузки |
initramfs.lzma | Образ корневой файловой системы начальной загрузки, сжатый при помощи алгоритма LZMA |
initrd.gz | Сжатый образ корневой файловой системы минималистичного дистрибутива ОС GNU/Linux |
initrd.lzma | Сжатый образ корневой файловой системы минималистичного дистрибутива ОС GNU/Linux, сжатый при помощи алгоритма LZMA |
uImage | Загрузочный образ ядра Linux |
uInitramfs | Загрузочный образ корневой файловой системы начальной загрузки |
uInitrd | Загрузочный образ корневой файловой системы дистрибутива ОС BEL |
uMulti | Консолидированный образ загрузчика системы в U-Boot, включающий в себя ядро Linux, дерево устройств платы BFK 3.1, образы корневых файловых систем и две конфигурации загрузки: в дистрибутив ОС BEL, либо в любой другой при помощи системы начальной загрузки |
История изменений
Версия | Дата | Описание |
---|---|---|
1.0 | 28.10.2022 | Начальная версия |