Сборка ядра для Орикса — различия между версиями
Korogodin (обсуждение | вклад) (→Заставляем работать кросскомпилятор) |
Korogodin (обсуждение | вклад) (→Заставляем работать кросскомпилятор) |
||
Строка 74: | Строка 74: | ||
SERVER_BUILD_FIRMWARE=0 | SERVER_BUILD_FIRMWARE=0 | ||
− | TOOLS=LC_ALL=POSIX | + | TOOLS=LC_ALL=POSIX arm-xilinx-linux-gnueabi |
GCC=$(TOOLS)-gcc $(CFLAGS) | GCC=$(TOOLS)-gcc $(CFLAGS) | ||
GPP=$(TOOLS)-g++ $(CFLAGS) | GPP=$(TOOLS)-g++ $(CFLAGS) |
Версия 15:14, 26 февраля 2015
Приведенный мануал справедлив для Kubuntu 14.04 64bit.
Втянуться в тему можно на странице Xilinx Wiki Getting Starting.
Наша цель - собрать новый uImage с применением патча PREEMPT_RT.
Если смотреть на схему, то складывается ощущение, что ядро входит в BOOT.BIN. Но на практике флешка содержит boot.bin, device tree, uImage и образ rootfs. Например, на ZC702:
drwxr-xr-x 3 root root 4096 Jan 1 00:00 .
drwxrwxr-x 19 1000 1000 0 Aug 15 2014 ..
drwxr-xr-x 5 root root 4096 Aug 15 2014 .Trash-1000
-rwxr-xr-x 1 root root 442480 Jun 19 2014 boot.bin
-rwxr-xr-x 1 root root 9219 Jun 3 2014 devicetree.dtb
-rwxr-xr-x 1 root root 3488208 May 30 2001 uImage
-rwxr-xr-x 1 root root 6054766 Aug 15 2014 uramdisk.image.gz
Поэтому простая подмена uImage тоже работает.
Содержание |
Шаг 1. Устанавливаем кросскомпилятор
Теоретически этот шаг можно пропустить, воспользовавшись билд-сервером. Но на практике я использовал кросс-компилятор от Xilinx'а.
Скачиваем инсталлер
Страница на Xilinx Wiki: Install Xilinx Tools ведет в раздел Downloads.
На текущий момент самая свежая версия имеет номер 2014.4, поэтому скачиваем Vivado 2014.4 WebInstall for Linux 64.
Потребуется зарегистрироваться на сайте (требует пароль с циферкой ;)).
В результате получаем файл типа Xilinx_Vivado_SDK_2014.4_1119_1_Lin64.bin
Устанавливаем SDK
Устанавливаем SDK и, при желании, Vivado WebKit. Оба инструмента бесплатные:
В начале установки поступит предложение Select Edition to Install, выбираем:
- Vivado Web Pack, если хотим установить Vivado+SDK
- Software Development Kit, если хотим ограничиться SDK
Драйвер для кабеля для компиляции ядра не потребуется, но иметь в системе его полезно.
Директорию установки оставляем по-умолчанию в /opt
После скачивания файлов программа установки предложит получить лицензию на сайте Xilinx, что и следует сделать (Get Free License, далее Xilinx MicroBlaze/All Programmable SoC Software Development Kit - Standalone для SDK или Vivado WebPACK License для Vivado).
Прописываем пути в PATH
По-умолчанию интерпретатор не знает пути до компиляторов. В переменную PATH их умеет добавлять специальный скрипт. Чтобы не вызывать его каждый раз руками, следует добавить строки в ~/.bashrc
:
source /opt/Xilinx/SDK/2014.4/settings64.sh # use settings32.sh on 32-bit operating systems
Переменная CROSS_COMPILE используется в некоторых Makefile'ах ниже. Сейчас с её помощью выбран кросс-компилятор для целевой Linux.
Появились новые возможности:
- можно открыть среду разработки командой xsdk
- можно компилировать прошивку для приемника не на билд-сервере, а на своей машине.
Заставляем работать кросскомпилятор
Самый простой способ убедиться, что кросскомпилятор начал работать - скомпилировать с его помощью прошивку для приемника.
Для этого в personal.conf
изменяем SERVER_BUILD_FIRMWARE
на 0 и добавляем TOOLS, GCC, GPP
:
TOOLS=LC_ALL=POSIX arm-xilinx-linux-gnueabi
GCC=$(TOOLS)-gcc $(CFLAGS)
GPP=$(TOOLS)-g++ $(CFLAGS)
Дале выполняем make
в /src/firmware
: