LINUX.ORG.RU

gentoo arm-none-eabi. КАК?

 


0

1

Что-то вот решил я скомпилять свою прошивочку на домашнем компьютере. И охренел: у меня нет компилятора.

КАК? Я не могу нагуглить, как его (arm-none-eabi) поставить в генте! Почему-то в школоарчике он ставился элементарно. А во вроде бы серьезном дистре — хрен вам!

Как это?

Я в шоке!

И еще вопрос: как культешные приложения поставить без фонона? Они уже задолбали "блымцкать"! Какой чудак на букву "м" добавил звуки в оконные приложения?

☆☆☆☆☆

Последнее исправление: cetjs2 (всего исправлений: 2)

В дженту есть какой-то там crossdev или crosstool. Компиль тулч без линукс-хедеров через него.

А вообще ещё в сторону crosstool-NG тебе стоит посмотреть. Там удобно компилировать тулчи с различными конфигурациями и библиотеками.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Ого. Это можно по-человечески поставить, или опять с идиотскими самопальными ебилдами мучиться?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Я с официального сайта в /opt ставил. В рот я шатал разбираться с пакетными особенностями каждого дистрибутива. Мне дан каталог /opt и я использую его по-назначению.

Кстати, с зависимостями разберись при установке. Необходимы:

m4 flex bison ncurses-dev texinfo gcc gperf patch libtool autoconf automake1.11 autotools-dev g++

EXL ★★★★★
()
Ответ на: комментарий от EXL

Я с официального сайта в /opt ставил.

Хочется по-человечески. Вон, даже сраная бубунта имеет такой пакет! А в генте нет. Это как? Гентушники — не люди что ли?

Необходимы

да, все это есть. Правда, бóльшая часть из перечисленного — ненужный шлак, засоряющий систему.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

А в чём проблема? Берёшь crosstool-ng, вручную делаешь конфиг и запихиваешь конфиг в ебилд (заменяя там sed'ом DESTDIR).

intelfx ★★★★★
()
Ответ на: комментарий от vanner
eix crossdev
[I] sys-devel/crossdev

Установлено. Но arm-none-eabi-gcc отсутствует в системе:

arm-none-eabi-gcc
-su: arm-none-eabi-gcc: команда не найдена

Как компилять-то? alias arm-none-eabi-gcc="crossdev -t arm-none-eabi" не работает: make

Using /usr/local/arm-none-eabi path to library
  CC      user_proto.c
arm-none-eabi-gcc -Os -g -Wall -Wextra -Wshadow -Wimplicit-function-declaration -Wredundant-decls -fno-common -ffunction-sections -fdata-sections -MD -Wall -Werror -I/usr/local/arm-none-eabi/include -DSTM32F1 -DEBUG -mthumb -mcpu=cortex-m3 -msoft-float -mfix-cortex-m3-ldrd -o mk/user_proto.o -c user_proto.c
make: arm-none-eabi-gcc: Команда не найдена
Makefile:94: ошибка выполнения рецепта для цели <<mk/user_proto.o>>
make: *** [mk/user_proto.o] Ошибка 127

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Не, ну а как иначе? Если готового пакета/ебилда нет, то выход очевидно один — запилить его самостоятельно.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Блин! Эта элементарная штука есть везде!!! А в генте нет. Как так? Гентушники не компилят под STM32?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от intelfx

Я не собираюсь менять Makefile, который работает в любом дистрибутиве, кроме генты!

Буду, значит, ставить пакет из дебиана или арча. При помощи alien.

Eddy_Em ☆☆☆☆☆
() автор топика
Последнее исправление: Eddy_Em (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

тебе предлагают РАЗОВО выполнить

crossdev -t arm-none-eabi

после чего у тебя появится (скомпилится) вожделенный тулчейн

qbe
()
Ответ на: комментарий от qbe

А я при первом запуске что-то не обратил внимания на

 * please convert /etc/portage/package.use to a directory
 * If you file a bug, please attach the following logfiles:
 * /var/log/portage/cross-arm-none-eabi-info.log

Сконвертировал (непонятно зачем). Запустил еще раз. Опять что-то ей не нравится:

 * binutils failed :(
 * If you file a bug, please attach the following logfiles:
 * /var/log/portage/cross-arm-none-eabi-info.log
 * /var/log/portage/cross-arm-none-eabi-binutils.log.xz
 * /var/tmp/portage/cross-arm-none-eabi/binutils*/temp/binutils-config.logs.tar.xz
Забавно, что в первых двух файлах ничего полезного нет, а директории /var/tmp/portage/cross-arm-none-eabi просто не существует!

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

предложеная команда собирает arm-none-eabi-gcc и остальной тулчейн, саму её не нужно писать в makefile

anonymous
()

Самый простой кросдистрибутивный способ поиметь тулчейн - сделать checkout openwrt и поставить галочку «собирать тулчейн».

Со скриптами для сборки кросскомпиляторов я помню намучался.

sergej ★★★★★
()
Ответ на: комментарий от anonymous

Я же сказал: в первом просто описание всяких флагов. Пользы 0. Во втором тоже 0 информации:

Calculating dependencies  ... done!
[ebuild  N    #] cross-arm-none-eabi/binutils-2.24-r3  USE="cxx nls zlib -multislot -multitarget -static-libs {-test} -vanilla"

The following mask changes are necessary to proceed:
 (see "package.unmask" in the portage(5) man page for more details)
# required by cross-arm-none-eabi/binutils (argument)
# /etc/portage/package.mask/restrict_overlays:
# rainyday try to override some packages by versions 9999
=cross-arm-none-eabi/binutils-2.24-r3

NOTE: The --autounmask-keep-masks option will prevent emerge
      from creating package.unmask or ** keyword changes.

Use --autounmask-write to write changes to config files (honoring
CONFIG_PROTECT). Carefully examine the list of proposed changes,
paying special attention to mask or keyword changes that may expose
experimental or unstable packages.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от sergej

Что интересно: во всяких юзвереориентированных дистрибутивов это все из коробки работает! А в генте, которая ориентирована на обычного человека, нихрена подобного нет! Как так?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Кросдеву оверлей нужен локальный (ну или любой подключенный, он в него нагадит), он в нем создает ебилды для выбранного тобой триплета. Посмотри в эту сторону.

vanner
()
Ответ на: комментарий от vanner

Блин, что за извращение?

Неужто в основном portage генты нет этого?

Мдеееее... То-то нас вантузятники дебилами кличут. Не зря.

Ну, попробую, что уж там...

Eddy_Em ☆☆☆☆☆
() автор топика

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

everest2014
()
Ответ на: комментарий от everest2014

Cyanogenmod конпелировать собираемся?

Нет.

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Тебе система предложила для дальнейшей сборки размаскировать =cross-arm-none-eabi/binutils-2.24-r3 . Ты это попробовал сделать?

qbe
()
Ответ на: комментарий от qbe

p.s. сам виноват, что без особой нужды ставил ~arch

qbe
()

man crosstool-ng

anonymous
()
Ответ на: комментарий от Eddy_Em

Ещё не пробовал?

Я вот только что собрал в очередной раз на почти девственной генте arm-none-eabi. Никаких плясок с бубном.

qbe
()
Последнее исправление: qbe (всего исправлений: 1)
Ответ на: комментарий от qbe

Да, скомпилял. Неудобно, конечно, но сгодится на худой конец. Аналогично hardfloat сделал для компиляции ведра на «малинку».

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.