Инструменты пользователя

Инструменты сайта


arm_build

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
arm_build [2018/10/18 16:33]
reug создано
arm_build [2018/10/19 10:13] (текущий)
reug
Строка 1: Строка 1:
 ====== Средства разработки и сборка библиотек для ARM ====== ====== Средства разработки и сборка библиотек для ARM ======
 +
 +===== Установка ARM Toolchain и настройка окружения =====
 +
 +Скачиваем linaro toolchain с этого адреса:​
 +
 +[[https://​releases.linaro.org/​components/​toolchain/​binaries/​latest-7/​arm-linux-gnueabihf/​gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz|arm-linux-gnueabihf 32-bit Armv7 Cortex-A, hard-float, little-endian]] и распаковываем,​ например,​ в каталог ''/​opt/''​.
 +
 +Далее можно поставить символьную ссылку,​ чтобы корневой путь toolchain был удобным:​
 +<code bash>
 +ln -s gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf /​opt/​gcc-linaro
 +</​code>​
 +
 +Примечание:​ данная сборка имеет множество повторяющихся файлов. Данный скрипт освободит 137 Мбайт.
 +Запускать из каталога gcc-linaro.
 +<​code>​
 +cd bin
 +
 +rm arm-linux-gnueabihf-c++
 +ln -s arm-linux-gnueabihf-g++ arm-linux-gnueabihf-c++
 +rm arm-linux-gnueabihf-gcc
 +ln -s arm-linux-gnueabihf-gcc-7.3.1 arm-linux-gnueabihf-gcc
 +rm arm-linux-gnueabihf-ld
 +ln -s arm-linux-gnueabihf-ld.bfd arm-linux-gnueabihf-ld
 +cd ..
 +
 +cd arm-linux-gnueabihf
 +
 +rm -r lib
 +ln -s libc/lib lib
 +
 +rm bin/*
 +for t in ar as ld ld.bfd ld.gold nm objcopy objdump ranlib readelf strip
 +do
 +ln -s ../​../​bin/​arm-linux-gnueabihf-$t bin/$t
 +done
 +
 +rm libc/​usr/​libexec/​getconf/​*
 +for t in POSIX_V6_ILP32_OFF32 POSIX_V6_ILP32_OFFBIG POSIX_V7_ILP32_OFF32 POSIX_V7_ILP32_OFFBIG ​ XBS5_ILP32_OFF32 XBS5_ILP32_OFFBIG
 +do
 +ln -s ../​../​bin/​getconf libc/​usr/​libexec/​getconf/​$t
 +done
 +
 +cd ..
 +
 +cd share/​man/​man1
 +rm arm-linux-gnueabihf-g++.1
 +ln -s arm-linux-gnueabihf-gcc.1 arm-linux-gnueabihf-g++.1
 +</​code>​
 +
 +===== Настройка окружения для сборки загрузчика U-Boot и ядра Linux =====
 +
 +<code bash>
 +export ARCH=arm
 +export CROSS_COMPILE=arm-linux-gnueabihf-
 +export PATH=/​opt/​gcc-linaro/​bin:​$PATH
 +</​code>​
 +
 +После этого в командах ''​make''​ уже не нужно указывать архитектуру и тип кросс-компиляции.
 +
  
 ===== Кросс-сборка распространенных библиотек ===== ===== Кросс-сборка распространенных библиотек =====
Строка 9: Строка 68:
 cd libserialport-0.1.1 cd libserialport-0.1.1
 ./configure --host=arm-linux-gnueabihf --prefix=<​PREFIX>​ ./configure --host=arm-linux-gnueabihf --prefix=<​PREFIX>​
 +</​code>​
 +<​code>​
 make make
 make install make install
 +</​code>​
 +Если не нужна отладочная информация,​ то вместо ''​make install''​ дать команду ​
 +<​code>​
 +make install-strip
 </​code>​ </​code>​
 +
  
 ==== zlib ==== ==== zlib ====
  
 <​code>​ <​code>​
 +export CC="​arm-linux-gnueabihf-gcc"​
 +export CPP="​arm-linux-gnueabihf-gcc -E"
 +export AR="​arm-linux-gnueabihf-ar"​
 export PATH=/​opt/​gcc-linaro/​bin:​$PATH export PATH=/​opt/​gcc-linaro/​bin:​$PATH
-cd libserialport-0.1.1 +cd zlib-1.2.11 
-./​configure ​--host=arm-linux-gnueabihf ​--prefix=<​PREFIX>​+./configure --prefix=<​PREFIX>​
 make make
 make install make install
 </​code>​ </​code>​
  
arm_build.1539869614.txt.gz · Последние изменения: 2018/10/18 16:33 — reug