Перейти к содержанию
    

DE10-Nano + bitbake + de10-nano-hardware

Приветствую уважаемые.

Есть плата DE10-Nano + сборка Linux Xfce Desktop. Чтобы собрать дистрибутив Linux запустил вот этот сценарий:

https://github.com/01org/meta-de10-nano

Оставил его на ночь, долгий процесс, думал, что на выходе будет образ SD карты с Linux и RootFS

... пришел утром - это провал, возникла вот такая ошибка

| loading cache ./config.cache
| checking host system type... i686-pc-linux-gnu
| checking target system type... arm-angstrom-linux-gnueabi
| checking build system type... i686-pc-linux-gnu
| checking for gawk... gawk
| checking for perl5... no
| checking for perl... /home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/i686-linux/usr/bin/perl-native/perl
| cross compiling from i686-pc-linux-gnu to arm-angstrom-linux-gnueabi
| checking for host c compiler... checking for gcc... gcc
| gcc
| checking for host c++ compiler... checking for c++... c++
| c++
| checking for ranlib... no
| checking for ar... no
| checking whether the host c compiler (gcc -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/work/armv7ahf-neon-angstrom-linux-gnueabi/mozjs/17.0.0-r0=/usr/src/debug/mozjs/17.0.0-r0 -fdebug-prefix-map=/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/i686-linux= -fdebug-prefix-map=/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/de10-nano= -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fstack-protector-strong -Wl,-z,relro,-z,now) works... configure: error: installation or configuration problem: host compiler gcc cannot create executables.
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_configure (log file is located at /home/vasya/de10-nano-build/build/tmp-angstrom-glibc/work/armv7ahf-neon-angstrom-linux-gnueabi/mozjs/17.0.0-r0/temp/log.do_configure.23767)
ERROR: Task (/home/vasya/de10-nano-build/layers/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb:do_configure) failed with exit code '1'

 

Пытаюсь разобраться, пока безуспешно, SOS

 

Еще есть вот такой сценарий для создание проекта FPGA:

https://github.com/01org/de10-nano-hardware

Он мне нужен, так как я хочу внести непоправимые улучшения в FPGA аппаратуру.

в REDME написано, что этот сценарий нужно использовать совместно с meta-de10-nano. Подскажите пожалуйста, как его правильно использовать, куда тут лошадь запрягать? :)

Изменено пользователем Gleb80

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну а если проверить, почему компилятор на хост машине даёт ошибку?

Попробуйте скомпилировать любой исходник для хоста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну а если проверить, почему компилятор на хост машине даёт ошибку?

Попробуйте скомпилировать любой исходник для хоста.

сейчас остановился на том, что компилятор на хост-машине не понимает атрибут -fstack-protector-strong, который присутствует в команде, порождающей ошибку. у меня там Ubuntu 14.04 и компилятор gcc-4.8.4. Пока гипотеза такая - старый компилятор не поддерживает этот атрибут. Сделаю виртуальную машину с Ubuntu 16.04 и попробую на ней

... да, вот только что проверил на gcc-5, правда на 64 разрядной машине/операционке, и там такая опция компилятора присутствует

Изменено пользователем Gleb80

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...компилятор на хост-машине не понимает атрибут -fstack-protector-strong... cделаю виртуальную машину с Ubuntu 16.04 и попробую на ней

... да, вот только что проверил на gcc-5, правда на 64 разрядной машине/операционке, и там такая опция компилятора присутствует

На виртуальнй машине эта стадия прошла нормально, но скорость исполнения последующих задач экспоненциально падала. Оставил машину включенной на выходные, но по возвращении с фазенды нашел ее практически повисшей но так и не дособравшей требуемый дистрибутив. Поставил Ubuntu 16.04 непосредственно на PC, запустил по-новой. Процесс побежал весьма шустро, поглядим через пару часов...

Изменено пользователем Gleb80

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... поставил Ubuntu 16.04 непосредственно на PC, запустил по-новой. Процесс побежал весьма шустро, поглядим через пару часов...

 

Пришлось оставить на ночь, прийдя утром, увидел такую ошибку:

 

gcc  -isystem/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/x86_64-linux/usr/include -O2 -pipe -L/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/x86_64-linux/usr/lib -L/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/x86_64-linux/lib -Wl,-rpath-link,/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/x86_64-linux/usr/lib -Wl,-rpath-link,/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/x86_64-linux/lib -Wl,-rpath,/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/x86_64-linux/usr/lib -Wl,-rpath,/home/vasya/de10-nano-build/build/tmp-angstrom-glibc/sysroots/x86_64-linux/lib -Wl,-O1  -o tools/fdtgrep tools/lib/libfdt/fdt.o tools/lib/libfdt/fdt_ro.o tools/lib/libfdt/fdt_rw.o tools/lib/libfdt/fdt_strerror.o tools/lib/libfdt/fdt_wip.o tools/lib/libfdt/fdt_region.o tools/lib/libfdt/fdt_sw.o tools/fdtgrep.o
| tools/libfdt_wrap.c:147:21: fatal error: Python.h: No such file or directory
| compilation terminated.
| error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
| /home/vasya/de10-nano-build/build/tmp-angstrom-glibc/work/de10_nano-angstrom-linux-gnueabi/u-boot-socfpga/v2017.03+gitAUTOINC+d03450606b-r0/git/tools/Makefile:123: recipe for target 'tools/_libfdt.so' failed
| make[2]: *** [tools/_libfdt.so] Error 1
| ERROR: oe_runmake failed

 

Не найден файл Python.h, вероятно, отсутствует какая-то библиотека, буду разбираться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте выполнить на хосте:

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
     build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
     xz-utils debianutils iputils-ping

 

Required Packages for the Host Development System

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте выполнить на хосте:

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
     build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
     xz-utils debianutils iputils-ping

 

Required Packages for the Host Development System

 

Вот спасибо. Как раз подобный перечень я сейчас и искал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И снова провал, теперь вот такой:

ERROR: cross compiler tools are not visible in the environment.

Опять на хватает чего-то важного и нужого. Похоже, прийдется погружаться в документацию Yocto...

Изменено пользователем Gleb80

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...oпять на хватает чего-то важного и нужого. Похоже, прийдется погружаться в документацию Yocto...

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

сначала

git clone git://git.yoctoproject.org/poky
cd poky
./oe-init-build-env

а потом уже, в папке poky, выполнять действия по инструкции -> https://github.com/01org/meta-de10-nano

mkdir de10-nano-build
cd de10-nano-build
repo init -u git://github.com/Angstrom-distribution/angstrom-manifest -b angstrom-v2016.12-yocto2.2
   ...
MACHINE=de10-nano . ./setup-environment
bitbake de10-nano-image

кто бы мог подумать :)

снова запускаю этот затяжной процесс, посмотрим, чем закончится на этот раз...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

нет, ошибочка, репозиторий meta-de10-nano уже все в себе содержит (что не удивительно при размере 50ГБ)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно отбросить Yocto и попробовать Buildroot.

Я делал сборку по этому гайду.

Плата тоже DE10-Nano.

 

Проблем особых не было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно отбросить Yocto и попробовать Buildroot.

Везде пишут, что Yocto это модно :) А если серьезно, то во-первых жалко уже потраченых усилий, а во-вторых, дистрибутив, собираемый с помощью слоя meta-de10-nano содержит все что мне в настоящий момент от этой платы нужно. Было бы здорово все-таки это заклинание освоить. Однако, если в течении 2 недель не смогу достигнуть поставленной цели, то попробую пойти вашим путем.

Изменено пользователем Gleb80

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ERROR: cross compiler tools are not visible in the environment.

 

Эту напасть поборол - оказалось, что в некоторых скриптах имеется вот такой кусок кода:

CC_TEST="${CC:?}"
type -t ${CC%${CC#*gcc}} > /dev/null 2>&1 || {
  echo ""
  echo "ERROR: cross compiler tools are not visible in the environment."
  echo ""
  exit 1
}

насколько я понял, это проверка правильности содержащегося в переменной СС названия кросс-компилятора. В некоторых скриптах она проходила успешно, а когда из них вызывался другой скрипт, в котором тоже был такой код, проверка не проходила и все завершалось ошибкой. Помог чит-код, я закоментил строку exit 1 и этот рецепт был выпечен успешно.

Но дальше меня снова ждало разочарование. Покомпилировав еще какое-то время вдруг потух экран, появилась консоль как при обычной загрузке и ОС (Ubuntu 16.04 64 бит) загрузилась как ни в чем не бывало, как будто после включения питания. Эта ситуация повторялась при повторных попытках запуска. Покопавшись какое-то время я решил переустановить ОС и начать весь процесс сборки с самого начала. Но и это мне не удалось. При попытке скачать репозиторий возникла ошибка:

$ repo init -u git://github.com/Angstrom-distribution/angstrom-manifest -b angstrom-v2016.12-yocto2.2
....
$ repo sync
....
fatal: Couldn't find remote ref refs/heads/master

хотя раньше все качалось нормально. Тут я застрял...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

$ repo init -u git://github.com/Angstrom-distribution/angstrom-manifest -b angstrom-v2016.12-yocto2.2
....
$ repo sync
....
fatal: Couldn't find remote ref refs/heads/master

 

Нашел путь обхода. Не хотел скачиваться репозиторий linux4sam/meta-atmel. Зашел в папку layers и выполнил git clone https://github.com/linux4sam/meta-atmel.git

 

...вдруг потух экран, появилась консоль как при обычной загрузке и ОС (Ubuntu 16.04 64 бит) загрузилась как ни в чем не бывало, как будто после включения питания. Эта ситуация повторялась при повторных попытках запуска.

 

Кажется, нашел причину - это происходит при попытке ОС заблокировать экран после длительного бездействия пользователя. Пришлось установить максимальное время ожидания перехода в сон и регулярно "помешивать" :) т.е. шевелить мышкой. Вроде помогло. По крайней мере, сейчас выполнено 99% процентов общего числа задач, осталась только одна, оооочень большая, компиляция какого-то webkitgtk...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наконец-то все собралось. Но теперь, при записи образа на SD карту с нее не грузится плата, хотя делал все по инструкции. Снова нужно разбираться...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...