Сборка ядра для Орикса — различия между версиями
Korogodin (обсуждение | вклад) (→Устанавливаем SDK) |
Korogodin (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
[[file:xilinx-design-flow-linux.jpg|center]] | [[file:xilinx-design-flow-linux.jpg|center]] | ||
− | Втянуться в тему можно на странице [http://www.wiki.xilinx.com/Getting+Started Xilinx Wiki Getting Starting]. Наша '''цель''' - собрать новый uImage с применением патча PREEMPT_RT. | + | Втянуться в тему можно на странице [http://www.wiki.xilinx.com/Getting+Started Xilinx Wiki Getting Starting]. |
+ | |||
+ | Наша '''цель''' - собрать новый uImage с применением патча PREEMPT_RT. | ||
+ | |||
+ | Если смотреть на схему, то складывается ощущение, что ядро входит в BOOT.BIN. Но на практике флешка содержит boot.bin, device tree, uImage и образ rootfs. Например, на ZC702: | ||
+ | <source lang="bash"> | ||
+ | root@zynq:/mnt# ls -la | ||
+ | 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 | ||
+ | </source> | ||
+ | |||
+ | Поэтому простая подмена uImage тоже работает. | ||
== Шаг 1. Устанавливаем кросскомпилятор == | == Шаг 1. Устанавливаем кросскомпилятор == |
Версия 14:53, 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
- можно компилировать прошивку для приемника не на билд-сервере, а на своей машине.