www.pengutronix.de
Есть хороший сайт с дистрибутивом для сборки кросс компилятора под основные платформы. Особенно различные ARM, которые популярны на большинстве современных устройств с Android и Linux.
В текущий момент сертификаты на нём не обновлены. Будем решать эту проблему.
Готовый тулчейн
Если у вас Debian GNU/Linux то можно добавить ссылку на репозиторий Debian в источники пакетов и поставить любой готовый тулчейн который подходит для компиляции под вашу платформу:
По выше приведенной ссылке есть все инструкции.
Сборка тулчейнка из архивных файлов
Вначале скачиваем дистрибутив.
https://www.pengutronix.de/en/software/ptxdist.html
Распаковываем в домашней директории в поддиректории local. Заходим в распакованную диеркторию,
./configure
make
sudo make install
После чего папку с дистрибутивом можно удалить, так как она уже скопирована в /usr/local.
Затем выбираем тулчейн с той же датой что и дистрибутив:
https://pengutronix.de/en/software/toolchain.html
Распаковываем в папку local в домашней директории пользователя. Заходим в директорию и вводим выбранную конфигурацию из имеющегося подкоталога ptxconfigs:
ptxdist select <ptxconfigs>
ptxdist go
Дистрибутив сам начинает скачивать необходимые исходники и выстраивает цепочку перекомпиляции компиляторов. Возможно ваша система уведомит об устаревших сертификатов этого сайта.
Поэтому соберем все из гитхаба
Для этого вначале настроим git чтобы он не проверял сертификаты:
- git config –global http.sslverify false
- git clone https://git.pengutronix.de/cgit/ptxdist
- git clone https://git.pengutronix.de/cgit/OSELAS.Toolchain
Далее заходим в поддиректории, устанавливаем дистрибутив и собираем тулчейн.
cd ptxdist./autogen.sh && ./configure && makesudo make installcd ../OSELAS.Toolchainptxdist select ptxconfigs/arm-v7a-linux-gnueabi_gcc-11.1.1_clang-12.0.0_glibc-2.33_binutils-2.36.1_kernel-5.12.4-sanitized.ptxconfigptxdist go
Чтобы нас не беспокоили сертификаты при загрузке исходников через wget или curl добавим 2 строчки в файл /usr/local/lib/ptxdist-2022-*/scripts/lib/ptxd_make_get.sh
Добавляем примерно в 22 строчку, сразу после инициализации переменных в функции ptxd_make_get_http()
opts[${#opts[@]}]=”–no-check-certificate”
curl_opts[${#curl_opts[@]}]=”–insecure”
Установка библиотек разработчика
Новая версия ptxdist требует для компиляции ядра Linux ряд библиотек:
apt install -y libgmp-dev libisl-dev libmpc-dev libssl-dev liblzma-dev
Возможно какие то ещё компоненты потребуются, если они не установлены на вашей системе. Следите за сообщениями скриптов компиляции ptxdist.