Вопрос или проблема
Я установил проект Yocto на рабочей станции Ubuntu 12.04. Я следовал шагам, указанным на сайте yocto
Поддерживаемые Linux дистрибутивы.
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib
build-essential chrpath
$ sudo apt-get install libsdl1.2-dev xterm
$ sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
$ sudo apt-get install autoconf automake libtool libglib2.0-dev
После установки я выполнил следующие шаги
$ cd ~
$ git clone git://git.yoctoproject.org/poky
$ cd poky
$ git checkout -b dora origin/dora
$ source oe-init-build-env
$ bitbake adt-installer
Я получил следующие ошибки
Loading cache: 100% |###########################################| ETA: 00:00:00
Loaded 1188 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "1.20.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "Ubuntu-12.04"
TARGET_SYS = "i586-poky-linux"
MACHINE = "qemux86"
DISTRO = "poky"
DISTRO_VERSION = "1.5.1"
TUNE_FEATURES = "m32 i586"
TARGET_FPU = ""
meta
meta-yocto
meta-yocto-bsp = "dora:84c2763fa0bf08a83caa2c5ee532b5bef2ff918b"
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: Failed to fetch URL ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz;name=archive, attempting MIRRORS if available
WARNING: Failed to fetch URL ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001;name=patch1;apply=yes;striplevel=0, attempting MIRRORS if available
ERROR: Fetcher failure: Fetch command failed with exit code 4, no output
ERROR: Function failed: Fetcher failure for URL: 'ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001;name=patch1;apply=yes;striplevel=0'. Unable to fetch URL from any source.
ERROR: Logfile of failure stored in: /home/openstack/poky/build/tmp/work/x86_64-linux/readline-native/6.2-r4/temp/log.do_fetch.32384
ERROR: Task 347 (virtual:native:/home/openstack/poky/meta/recipes-core/readline/readline_6.2.bb, do_fetch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 190 tasks of which 155 didn't need to be rerun and 1 failed.
No currently running tasks (190 of 373)
Summary: 1 task failed:
virtual:native:/home/openstack/poky/meta/recipes-core/readline/readline_6.2.bb, do_fetch
Summary: There were 2 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
Как установить проект Yocto? Кто-нибудь, помогите мне.
В Yocto процесс do_fetch означает получение пакетов или библиотек через Ethernet или локальное хранилище.
ERROR: Function failed: Fetcher failure for URL: 'ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001;name=patch1;apply=yes;striplevel=0'. Unable to fetch URL from any source.
Это сообщение означает, что ваш URI пакета неверен или поврежден. Я думаю, вам следует сначала проверить, что URI является правильным.
Как упоминалось в предыдущем ответе, проблема здесь в том, что Yocto не может получить архив readline, который необходим для сборки его инструментальной цепочки.
Вы можете ознакомиться с полным журналом (/home/openstack/poky/build/tmp/work/x86_64-linux/readline-native/6.2-r4/temp/log.do_fetch.32384), как упоминалось в ошибке Yocto, чтобы лучше понять причину сбоя.
Вы также можете попробовать получить URL вручную (wget или curl по ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz), чтобы убедиться, что это не проблема с подключением.
Тот же архив также доступен по HTTP, так что если ваша проблема связана с доступом к FTP, вы можете создать .bbappend
, который заменит SRCURI, чтобы нацелиться на него с использованием протокола HTTP.
Ответ или решение
Установка проекта Yocto может быть сложной задачей, особенно когда речь идет об управлении зависимостями и конфигурациями сборки. Ваша проблема связана с невозможностью получить пакет readline
, что препятствует успешной сборке инструментария. Ниже я постараюсь объяснить, как можно решить эту проблему.
Шаг 1: Проверка сетевых подключений
Первое, что нужно сделать, это проверить свою сетевую связь. Убедитесь, что у вас есть доступ к интернету и вы можете получать файлы из внешних источников.
Шаг 2: Проверка URL
Ваша ошибка указывает на то, что Yocto не может получить доступ к пакету по следующему URL:
ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
Попробуйте вручную загрузить этот файл с помощью команды wget
или curl
:
wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
Если файл не загружается, это подтверждает, что проблема с доступом к FTP-серверу. В данном случае, вы можете использовать HTTP, который более универсален и часто доступен, например:
http://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
Шаг 3: Изменение источника загрузки
Если вы обнаружили, что доступ по FTP ограничен, вы можете изменить конфигурацию сборки в Yocto, чтобы использовать HTTP. Для этого создайте или отредактируйте файл .bbappend
в вашей директории сборки. В этом файле вы можете переопределить переменную SRC_URI
, указывая новый адрес:
SRC_URI = "http://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz"
Шаг 4: Проверка логов
Также рекомендуется просмотреть файл логов, который упоминается в сообщении об ошибке:
/home/openstack/poky/build/tmp/work/x86_64-linux/readline-native/6.2-r4/temp/log.do_fetch.32384
В этом логе могут содержаться дополнительные сведения о том, что именно пошло не так. Это может помочь в более глубоком анализе проблемы.
Шаг 5: Переустановка и обновление системы
Если все вышеперечисленные шаги не помогли, возможно, стоит рассмотреть возможность обновления вашей операционной системы до более новой версии. Ubuntu 12.04 является устаревшей и может не поддерживать некоторые зависимости, необходимые для компиляции проектных образов в Yocto.
Заключение
Проблема с загрузкой пакета readline
в проекте Yocto может быть решена несколькими способами: от проверки подключения к интернету до изменения источников загрузки. Инструкции, предоставленные выше, помогут вам диагностировать и устранить возникшие проблемы. Не забудьте также обратить внимание на вашу версию Ubuntu и, при необходимости, рассмотреть возможность обновления до более новой версии, чтобы избежать дальнейших проблем с совместимостью и поддержкой.