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

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


wiki:cross-compiling-mtd-utils
no way to compare when less than two revisions

Различия

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


Предыдущая версия
Последняя версия
wiki:cross-compiling-mtd-utils [2016/06/28 16:43] – [MTD Utils] maxx
Строка 1: Строка 1:
 +** Кросс компиляция MTD-UTILS для архитектуры ARM **
 +====== Компилятор ======
 +Используем компилятор gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux, но можно использовать и любой другой с аппаратной поддержкой плавающей точки. Компилятор по умолчанию установлен в директорию '/opt'
  
 +Утилиты MTD зависят от библиотек zlib и LZO, а также uuid от утилиты e2fsprogs.
 +
 +====== Компиляция ======
 +Создадим директорию специально для компиляции библиотек и mtd-utils, например, '/media/storage/Projects/niia/cruis-v/imx/libs' и будем указывать её как PREFIX. Пропишем путь к компилятору в переменную окружения PATH, чтобы не использовать абсолютные пути:
 +<code>
 +$ export PATH=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin:$PATH
 +</code>
 +===== Zlib =====
 +<code>
 +wget http://zlib.net/zlib-1.2.8.tar.gz
 +tar -xzf zlib-1.2.8.tar.gz
 +cd zlib-1.2.8/
 +./configure --prefix=/media/storage/Projects/niia/cruis-v/imx/libs
 +</code>
 +Теперь надо отредактировать Makefile, исправить следующие переменные:
 +<code>
 +CROSS=arm-linux-gnueabihf
 +CC=arm-linux-gnueabihf-gcc
 +LDSHARED=${CROSS}-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
 +CPP=${CROSS}-gcc -E
 +AR=${CROSS}-ar
 +RANLIB=${CROSS}-ranlib
 +</code>
 +Иеперь компилируем и устанавливаем:
 +<code>
 +make -j4
 +make install
 +</code>
 +===== LZO =====
 +<code>
 +wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
 +tar -xzf lzo-2.06.tar.gz 
 +cd lzo-2.06/
 +./configure --prefix=/media/storage/Projects/niia/cruis-v/imx/libs --host=arm-linux-gnueabihf
 +make
 +make install
 +</code>
 +===== e2fsprogs =====
 +<code>
 +wget https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.9/e2fsprogs-1.42.9.tar.gz
 +tar -xzf e2fsprogs-1.42.9.tar.gz
 +cd e2fsprogs-1.42.9
 +./configure --prefix=/media/storage/Projects/niia/cruis-v/imx/libs --host=arm-linux-gnueabihf LDFLAGS=-static
 +make -j4 && make install
 +cd lib/uuid/
 +make install
 +</code>
 +
 +===== MTD Utils =====
 +<code>
 +git clone git://git.infradead.org/mtd-utils.git
 +cd mtd-utils/
 +git checkout v1.5.0
 +</code>
 +Отредактируйте Makefile и добавьте следующие строки в начало файла сразу же за переменной VERSION:
 +<code>
 +PREFIX=/media/storage/Projects/niia/cruis-v/imx/libs
 +CROSS=arm-linux-gnueabihf-
 +
 +ZLIBCPPFLAGS = -I$(PREFIX)/include
 +ZLIBLDFLAGS = -L$(PREFIX)/lib
 +
 +LZOCPPFLAGS = -I$(PREFIX)/include
 +LZOLDFLAGS = -L$(PREFIX)/lib
 +
 +LDFLAGS += $(ZLIBLDFLAGS) $(LZOLDFLAGS) -static
 +CFLAGS ?= -O2 -g $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)
 +</code>
 +Компилируем и устанавливаем
 +<code>
 +WITHOUT_XATTR=1 make -j4
 +make install
 +</code>
wiki/cross-compiling-mtd-utils.txt · Последнее изменение: 2016/06/28 16:49 — maxx