wiki:me-ms1000
no way to compare when less than two revisions
Различия
Показаны различия между двумя версиями страницы.
— | wiki:me-ms1000 [2012/11/20 19:14] (текущий) – создано - внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Инструкция по сборке Angstrom Linux для ME-MS1000 на Linux машине ====== | ||
+ | За основу взяты инструкции с [[http:// | ||
+ | |||
+ | Процедура сборки Angstrom Linux проверена на машинах: | ||
+ | |||
+ | * Gentoo от 2008-02 | ||
+ | * Fedora Core 7 | ||
+ | |||
+ | === Утилиты необходимые для сборки === | ||
+ | |||
+ | * Python (версии 2.4.0 или более поздней), | ||
+ | |||
+ | * GNU Patch (версии 2.5.9 или более поздней) | ||
+ | |||
+ | * GNU m4 | ||
+ | |||
+ | * GNU make (Версии 3.80 или более поздней) | ||
+ | |||
+ | * Psyco JIT компилятор рекомендуется для ускорения сборки | ||
+ | |||
+ | * ccache | ||
+ | |||
+ | * perl (нужна версия новее 5.0, скорее всего >=5.6.2 подойдет) | ||
+ | |||
+ | * diffstat | ||
+ | |||
+ | * bitbake ([[http:// | ||
+ | |||
+ | * wget | ||
+ | |||
+ | * curl | ||
+ | |||
+ | * ftp | ||
+ | |||
+ | * cvs | ||
+ | |||
+ | * subversion | ||
+ | |||
+ | * git | ||
+ | |||
+ | * md5sum | ||
+ | |||
+ | * sha256sum | ||
+ | |||
+ | * tar | ||
+ | |||
+ | * bzip2 | ||
+ | |||
+ | * gzip | ||
+ | |||
+ | * unzip | ||
+ | |||
+ | * Docbook DTDs и DSSSL stylesheets | ||
+ | |||
+ | * sgmltools, called " | ||
+ | |||
+ | * docbook-utils | ||
+ | |||
+ | * Texinfo версии выше 4.4 | ||
+ | |||
+ | * texi2html | ||
+ | |||
+ | * GNU sed 4.x | ||
+ | |||
+ | * Bison | ||
+ | |||
+ | * bc | ||
+ | |||
+ | * mktemp | ||
+ | |||
+ | * help2man | ||
+ | |||
+ | Для более подробных сведений, | ||
+ | |||
+ | ===== Установка необходимых утилит в Fedora Core 7 ===== | ||
+ | |||
+ | < | ||
+ | tar bzip2 gzip unzip python-psyco ccache perl texinfo texi2html diffstat \ | ||
+ | openjade docbook-style-dsssl docbook-style-xsl docbook-dtds docbook-utils \ | ||
+ | sed bison bc glibc-devel gcc binutils pcre pcre-devel git quilt groff \ | ||
+ | linuxdoc-tools patch linuxdoc-tools gcc gcc-c++ help2man perl-ExtUtils-MakeMaker"</ | ||
+ | |||
+ | ===== Установка необходимых утилит в Debian и Ubuntu ===== | ||
+ | |||
+ | < | ||
+ | | ||
+ | gawk python-pysqlite2 diffstat help2man</ | ||
+ | |||
+ | |||
+ | ===== Файлы необходимые для сборки ===== | ||
+ | |||
+ | * создайте директорию скажем $HOME/oe и (cd $HOME/oe), путь до этой директории в дальнейшем будем обозначать $OE | ||
+ | |||
+ | * скачайте любой срез базы репозитория OpenEmbedded [[http:// | ||
+ | |||
+ | * создайте директорию $OE/stuff и перейдите в нее | ||
+ | |||
+ | * распакуйте срез базы OE.mtn.bz2 | ||
+ | |||
+ | < | ||
+ | |||
+ | * выполните команду: | ||
+ | |||
+ | < | ||
+ | |||
+ | * далее выполните команду | ||
+ | |||
+ | < | ||
+ | |||
+ | для получния нужной ревизии OpenEmbedded | ||
+ | |||
+ | * Скачайте и примените патч для me-ms1000 [[http:// | ||
+ | |||
+ | < | ||
+ | cd $OE/ | ||
+ | zcat ../ | ||
+ | cd .. | ||
+ | </ | ||
+ | |||
+ | ===== Переменные окружения ===== | ||
+ | |||
+ | **Для Gentoo**: проверьте установленна ли переменная окружения **LINGUAS**, | ||
+ | сборка завершиться с ошибкой не могу скопировать, | ||
+ | " | ||
+ | |||
+ | < | ||
+ | |||
+ | перед этим удалив из stamps маркеры относящиеся к несобравщемуся пакету. | ||
+ | |||
+ | Распакуйте bitbake в директорию $OE/stuff, затем создайте символьную ссылку на директорию с bitbake: | ||
+ | < | ||
+ | |||
+ | Создайте скрипт env-oe.sh со следующим содержанием | ||
+ | < | ||
+ | #!/bin/sh | ||
+ | |||
+ | OE_DIR=/ | ||
+ | |||
+ | export PATH=${OE_DIR}/ | ||
+ | export BBPATH=${OE_DIR}/ | ||
+ | </ | ||
+ | |||
+ | Запустите скрипт, | ||
+ | < | ||
+ | |||
+ | ===== Сборка ===== | ||
+ | |||
+ | Отредактируйте $OE/ | ||
+ | |||
+ | 1) поправьте переменные: | ||
+ | BBFILES - где искать bb файлы, обычно это $OE/ | ||
+ | DL_DIR - куда скачивать архивы с исходниками (не обязательно) | ||
+ | |||
+ | 2) На многопроцессорных системах можно ускорить сборки образов, | ||
+ | < | ||
+ | PARALLEL_MAKE = " | ||
+ | BB_NUMBER_THREADS = " | ||
+ | </ | ||
+ | //Эти параметры нужно настроить под конкретную производительность, | ||
+ | |||
+ | Попробуйте сначала собрать минимальное количество пакетов: | ||
+ | |||
+ | < | ||
+ | |||
+ | Если все собралось удачно запустите сборку образа linux с графическим | ||
+ | интерфейсом: | ||
+ | |||
+ | < | ||
+ | |||
+ | ===== Возможные ошибки при сборке ===== | ||
+ | * binutils не собираются | ||
+ | Ошибка: | ||
+ | |||
+ | Решение: | ||
+ | |||
+ | * coreutils не собираются | ||
+ | Ошибка: | ||
+ | |||
+ | Решение: | ||
+ | < | ||
+ | Index: coreutils-5.3.0/ | ||
+ | =================================================================== | ||
+ | --- coreutils-5.3.0.orig/ | ||
+ | +++ coreutils-5.3.0/ | ||
+ | @@ -55,7 +55,7 @@ struct utimbuf | ||
+ | If TIMESPEC is null, set the time stamps to the current time. */ | ||
+ | |||
+ | int | ||
+ | -futimens (int fd ATTRIBUTE_UNUSED, | ||
+ | +my_futimens (int fd ATTRIBUTE_UNUSED, | ||
+ | | ||
+ | { | ||
+ | /* There' | ||
+ | @@ -117,5 +117,5 @@ futimens (int fd ATTRIBUTE_UNUSED, | ||
+ | int | ||
+ | | ||
+ | { | ||
+ | - return futimens (-1, file, timespec); | ||
+ | + return my_futimens (-1, file, timespec); | ||
+ | } | ||
+ | Index: coreutils-5.3.0/ | ||
+ | =================================================================== | ||
+ | --- coreutils-5.3.0.orig/ | ||
+ | +++ coreutils-5.3.0/ | ||
+ | @@ -1,3 +1,3 @@ | ||
+ | # | ||
+ | -int futimens (int, char const *, struct timespec const [2]); | ||
+ | +int my_futimens (int, char const *, struct timespec const [2]); | ||
+ | int utimens (char const *, struct timespec const [2]); | ||
+ | Index: coreutils-5.3.0/ | ||
+ | =================================================================== | ||
+ | --- coreutils-5.3.0.orig/ | ||
+ | +++ coreutils-5.3.0/ | ||
+ | @@ -191,7 +191,7 @@ touch (const char *file) | ||
+ | t = timespec; | ||
+ | } | ||
+ | |||
+ | - ok = (futimens (fd, file, t) == 0); | ||
+ | + ok = (my_futimens (fd, file, t) == 0); | ||
+ | if (fd != -1) | ||
+ | ok &= (close (fd) == 0); | ||
+ | |||
+ | </ | ||
+ | |||
+ | * ncurses-5.4 не собирается (воспроизводится на **Fedora Core 7**) | ||
+ | Ошибка: | ||
+ | |||
+ | tic: symbol lookup error: tic: undefined symbol: _nc_check_termtype | ||
+ | |||
+ | Решение: | ||
+ | |||
+ | Необходимо правильно установить значение переменной окружения LD_LIBRARY_PATH, | ||
+ | |||
+ | $OE/ | ||
+ | |||
+ | Для этого правим файл run_tic.sh в директории $OE/ | ||
+ | |||
+ | находим строки и добавляем " | ||
+ | < | ||
+ | export PATH | ||
+ | SHLIB=" | ||
+ | else | ||
+ | # Cross-compiling, | ||
+ | SHLIB= | ||
+ | fi | ||
+ | export LD_LIBRARY_PATH=/ | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | * rxvt-unicode-7.9 не собирается (воспроизводится на **Fedora Core 7**) | ||
+ | Ошибка: | ||
+ | tic: symbol lookup error: tic: undefined symbol: _nc_check_termtype | ||
+ | |||
+ | Решение: | ||
+ | Необходимо исправить файл: | ||
+ | |||
+ | $OE/ | ||
+ | |||
+ | Для этого в блоке **install** надо исправить последнюю строку, | ||
+ | |||
+ | $OE/ | ||
+ | |||
+ | В Makefile заменяем строку #107: | ||
+ | < | ||
+ | на: | ||
+ | < |
wiki/me-ms1000.txt · Последнее изменение: 2012/11/20 19:14 — 127.0.0.1