2. w4linux: конфигурирование →
Содержание 1.1 Описание 1.2 Конфигурирование 1.3 Опции сборки 1.4 Сборка
1.1 Описание [наверх]
w4linux выглядит как обычное WrmOS приложение. Оно может быть разделено на 2 части:
- WrmOS часть
- Linux часть
w4linux имеет основанную на make систему сборки для WrmOS части проекта и основанную на buildroot систему сборки для Linux части проекта.
Приложение w4linux состоит из следующих директорий и файлов:
Makefile | Скрипт сборки приложения. |
cxx_support.patch | Патч ядра Linux, добавляющий поддержку сборки C++ исходников. |
br/ | Директория с конфигурационными файлами для Buildroot. |
w4sparc/ | Директория с паравиртуализированной частью ядра Linux. |
Во время сборки осуществляются следующие шаги:
- Начинается сборка WrmOS проекта (генерируются заголовочные файлы с параметрами конфигурации, собираются библиотеки, ядро, приложения, бутлоадер);
- Во время сборки приложения linux:
- загружаются исходники проект Buildroot и его git-репозитория;
- исходный Buildroot конфигурируются;
- исходный Buildroot собирается (libc, busybox, linux, ...);
- паравиртуализированная часть ядра Linux копируется в директорию к ядру Linux;
- Buildroot пересобирается для паравиртуализированной псевдоархитектуры w4sparc;
- Собранный бутлоадер содержит образ файловой системы RAMFS, содержащей приложение app/linux/linux.elf.
1.2 Конфигурирование [наверх]
WrmOS часть конфигурации
w4linux выглядит как обычное WrmOS приложение. Поэтому его конфигурирование является обычным конфигурированием WrmOS проекта.
Параметры проекта включают в себя:
- параметры целевой системы (CPU, память, основные системные устройства, частоту шины, ...);
- параметры сборки библиотек (debug flags);
- параметры сборки ядра (debug flags, UART, timer, MMU);
- параметры сборки приложений (debug flags);
- список приложений;
- файл конфигурации времени выполнения для Alpha.
Смотрите раздел о конфигурировании WrmOS и о конфигурировании w4linux для получения более подробной информации.
Linux часть конфигурации
Конфигурирование Buildroot и его компонентов/подпроектов (busybox, ядро Linux и др.) осуществляется точно так же как и конфигурирование оригинальных компонентов/подпроектов.
Смотрите документацию на Buildroot для получения более подробной информации.
1.3 Опции сборки [наверх]
Опции сборки — это параметры командной строки и переменные окружения среды выполнения. Обычно сборка начинается посредством такой команды:
make build P=cfg/prj/linux-qemu-leon3.prj W=../wrmos B=../build/linux-qemu-leon3 -j V=1
Система сборки поддерживает следующие опции:
target | mandatory | может быть build, clean или rebuild (clean & build) |
P=project-file-name.prj | mandatory | определяет конфигурационный файл проекта |
B=build-dir-name | mandatory | определяет сборочную директорию, все собранные файлы будут находиться в ней |
W=wrmos-dir-name | mandatory | определяет директорию с исходниками WrmOS |
V=0|1 | optional | флаг verbose, может иметь значение 0 или 1, позволяет скрыть детали сборки (V=0, по умолчанию) или печатать их (V=1) |
-j | optional | параметр make, позволяет запустить параллельную сборку, это делает сборку быстрее |
1.4 Сборка [наверх]
w4linux является внешним (external) WrmOS проектом. Он может быть собран либо 1) из директории с исходниками WrmOS, либо 2) из директории проекта w4linux.
Из директории с исходниками WrmOS сборка начинается посредством команды:
cd wrmos make build P=../w4linux/cfg/prj/linux-qemu-leon3.prj B=../build/linux-qemu-leon3 E=../w4linux -j
Из директории проекта w4linux сборка начинается посредством команды:
cd w4linux make build P=cfg/prj/linux-qemu-leon3.prj W=../wrmos B=../build/linux-qemu-leon3 -j
Здесь предполагается, что директории wrmos и w4linux находятся рядом.
Промежуточные фалы сборки (сгенерированные заголовочные файлы, объектники, библиотеки, исполняемые файлы) будут находиться в сборочной директории, определённой параметром B. Главным результатом сборки является исполняемый файл загрузчика:
../build/linux-qemu-leon3/ldr/bootloader.elf
или образ диска с загрузчиком:
../build/linux-qemu-leon3/ldr/bootloader.img
Этот файл может быть загружен на целевую плату или запущен на виртуальной машине QEMU:
qemu-system-sparc -M leon3_generic -display none -serial stdio \ -kernel ../build/linux-qemu-leon3/ldr/bootloader.elf
Дополнительную информацию можно найти в статье Запуск w4linux.