Pull to refresh

Comments 12

Если возиться не хочется, то есть и уже готовые сборки под конкретную систему, например для Raspberry: https://gnutoolchains.com/raspberry/


И даже плагин (платный) для VisualStudio.

хз, я даже ядро собирал прямо на малинке. Кстати, без кулера но с фрезерованным корпусом выше 70-71 не грелась
Можно и ядро собирать, но сколько это по времени займет?
Несколько часов. Поставил на ночь, утром — всё собрано.
Угу, а при кросс-компиляции бы было 30-40 минут.
UFO just landed and posted this here
Вот не знал. Интересно.
Подскажите, а чем вам Yocto не подошел? Там давно слой для малинки есть — подключил и собирай. Тем более сейчас это, по сути, стандарт для сборки Linux для embedded.
С yocto к сожалению не знаком. Знаю buildroot. Думаю yocto наверное примерно так же как и buildroot работает?
Buildroot отличный инструмент.
Но иногда, нужен именно кросс-компилятор для одного приложения, не всю систему собирать.
Как человек, который сам последние пару дней потратил на знакомство с crosstool-ng, запоздало подправлю автора в двух моментах:
1) Вы собрали не «кросс-компилятор», а т.н. toolchain, в состав которого в т.ч. входят с/с++ компиляторы под определённые архитектуры
2)«Вообще-то Raspberry Buster OS уже сейчас имеет ядро 5.10, но максимум, что можно поставить это только 4.20»
Применительно конкретно к crosstool-ng собирать эти toolchain-ы (и следовательно компилировать код) вы можете под любые версии linux, чьи исходники вам доступны. Для этого в опции со списком доступных версий ядер, который на данный момент действительно заканчивается на 4.20, имеет возможность прописать руками путь к архиву исходников с той версией, которая нужна именно вам.

Добрый! alelam Следую рекомендациям статьи, отличие у меня в том, что стоит официальная сборка Ubuntu 21 на rpi3, на моём ноутбуке (мне слово ноутбук нравится больше слова хост-машина) стоит Ubuntu 20. Дошёл до пункта "4) Собираем crosstool-ng:", вместо make install пытаюсь использовать sudo checkinstall. Получаю шквал ошибок


gzip: /usr/local/share/man/man1/ct-ng.1: No such file or directory
gmake[3]: *** [Makefile:3268: install-data-hook] Error 1
gmake[3]: Leaving directory '/home/a/Downloads/cross-ng/crosstool-ng-1.24.0'
gmake[2]: *** [Makefile:3173: install-data-am] Error 2
gmake[2]: Leaving directory '/home/a/Downloads/cross-ng/crosstool-ng-1.24.0'
gmake[1]: *** [Makefile:3122: install-am] Error 2
gmake[1]: Leaving directory '/home/a/Downloads/cross-ng/crosstool-ng-1.24.0'
make: *** [Makefile:2817: install-recursive] Error 1

****  Installation failed. Aborting package creation.

Restoring overwritten files from backup.../usr/bin/checkinstall: line 95: /usr/bin/gettext: No such file or directory

/usr/bin/checkinstall: line 102: /usr/bin/gettext: No such file or directory
/usr/bin/checkinstall: line 319: /usr/bin/rm: No such file or directory
/usr/bin/checkinstall: line 320: /usr/bin/rm: No such file or directory
/usr/bin/checkinstall: line 95: /usr/bin/gettext: No such file or directory

Не понимаю почему. Думаю ладно, пробую таки make install:


sudo make install
bash: /usr/bin/sudo: No such file or directory

Видимо crosstool-ng-1.24.0 чего-то не знает об устройстве современной Ubuntu, раз пытается класть в несуществующие папки? Что делать?

У меня опыта на вашем фоне кот наплакал в таких вещах. На вскидку только могу отметить 3 момента:
1)кроме упомянутых автором мне на хост с Ubuntu 16.04 для сборки ct-ng потребовалось доустановить ещё явно makeinfo и libtool-doc.
2)при компиляции crosstool-ng задействуются 3 папки — собственно папка с исходниками, папка со скомплированным бинарником утилиты, которую можно перед make-ом через ./configure --prefix=/path_to_ct-ng и папка /x-tools с конкретным toolchain-ом, которая по умолчанию в /home/user_name создаётся (пути к двум последним можно емнип и в конфигах задавать)
3)хотел спросить зачем всё через sudo делать, но потом вспомнил, что это возможно фишка у малинок
Sign up to leave a comment.

Articles