при сборке u-boot /bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена

Вопрос или проблема

В настоящее время я использую Ubuntu 12.0.4 на 64-битной машине. У меня есть отладочная плата AM335X. Вместе с комплектом был предоставлен сжатый ядро (linux 3.2), rootfs, u-boot и ARM-кросс-компилятор (arm-2010q1).

Я распаковал все в подкаталог (/home/brent/work).

Я добавил следующее в мой файл .bashrc:

PATH=/home/brent/work/arm-2010q1/bin:$PATH
CROSS_COMPILE=arm-none-linux-gnueabi-

Также я установил следующее:

sudo apt-get install ia32-libs

Когда я перехожу к сборке u-boot, я выполняю следующее (по инструкции, прилагавшейся к комплекту):

brent@brent~/work/u-boot$ sudo make distclean
awk '(NF && $1 !~ /^#/) { print $1 ": " $1 "_config; $(MAKE)" }' boards.cfg > .boards.depend

brent@brent~/work/u-boot$ sudo make myd_am335x_lcd4.3_config
awk '(NF && $1 !~ /^#/) { print $1 ": " $1 "_config; $(MAKE)" }' boards.cfg > .boards.depend
Конфигурирование для myd_am335x_lcd4.3 - Плата: myd_am335x, Опции: DISPLAY_LCD43

brent@brent~/work/u-boot$ sudo make
/bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена
/bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена
dirname: отсутствует операнд
Попробуйте 'dirname --help' для получения дополнительной информации.
Генерация include/autoconf.mk
/bin/bash: строка 3: arm-none-linux-gnueabi-gcc: команда не найдена
/bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена
dirname: отсутствует операнд
Попробуйте 'dirname --help' для получения дополнительной информации.
Генерация include/autoconf.mk.dep
/bin/bash: строка 3: arm-none-linux-gnueabi-gcc: команда не найдена
/bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена
/bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена
dirname: отсутствует операнд
Попробуйте 'dirname --help' для получения дополнительной информации.
/bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена
/bin/bash: arm-none-linux-gnueabi-ld: команда не найдена
/bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена
dirname: отсутствует операнд
Попробуйте 'dirname --help' для получения дополнительной информации.
/bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена
dirname: отсутствует операнд
Попробуйте 'dirname --help' для получения дополнительной информации.
arm-none-linux-gnueabi-gcc -DDO_DEPS_ONLY \
        -g  -Os   -fno-common -ffixed-r8 -msoft-float   -D__KERNEL__ -I/home/brent/CropVentures/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem  -pipe  -DCONFIG_ARM -D__ARM__         -march=armv5 -Wall -Wstrict-prototypes      \
        -o lib/asm-offsets.s lib/asm-offsets.c -c -S
/bin/bash: arm-none-linux-gnueabi-gcc: команда не найдена
make: *** [lib/asm-offsets.s] Ошибка 127

Я проверил, что исполняемый файл находится в /home/brent/work/arm-2010q1/bin

Я также не уверен, почему мне нужно использовать sudo в команде? Если я этого не делаю, я получаю ошибку прав.

Любая помощь или информация о том, что я делаю неправильно, будет высоко оценена.

Проверьте, является ли ваша ARM инструментальная цепочка 64-битной, вы можете использовать эту команду:

file <arm-tool-chain>/bin/arm-none-linux-gnueabi-gcc 

Если вывод не содержит elf 64 bit, то это не будет работать. Поменяйте ARM инструментальную цепочку с 32-битной на 64-битную.

Ответ или решение

Когда при попытке сборки загрузчика U-Boot в Ubuntu 12.04 на 64-битной машине выводится ошибка /bin/bash: arm-none-linux-gnueabi-gcc: command not found, это может быть связано с несколькими аспектами. Рассмотрим каждый из них подробно:

  1. Предварительные условия:

    • Вы используете 64-битную версию Ubuntu 12.04 на машине, а также ARM-компилятор arm-2010q1 для разработки с платформой AM335X. Все соответствующие файлы были разархивированы в подкаталог /home/brent/work.
  2. Проблемы с путём к компилятору в PATH:

    • Убедитесь, что ваш .bashrc файл правильно обновлён. Вы добавили следующий путь: PATH=/home/brent/work/arm-2010q1/bin:$PATH. Убедитесь, что путь указан правильно и среда оболочки загружена с этими настройками. Это можно сделать, выполнив команду source ~/.bashrc.
  3. Архитектура приложения:

    • Проверьте архитектуру вашего ARM-компилятора, используя команду: file /home/brent/work/arm-2010q1/bin/arm-none-linux-gnueabi-gcc. Если вывод не содержит ELF 64-bit, значит, вы используете 32-битный компилятор. В этом случае, чтобы работать на 64-битной Ubuntu, необходимо установить соответствующие 32-битные библиотеки, что вы уже сделали, установив ia32-libs.
  4. Проблемы с правами доступа:

    • Команды sudo могут приводить к тому, что некоторые переменные окружения, такие как PATH, игнорируются. Это может быть причиной того, что компилятор не обнаруживается. Попробуйте выполнить команды без sudo.
    • Вероятно, текущий каталог или файлы имеют ограниченные права, что вынуждает использовать sudo. Используйте chown или chmod для изменения прав доступа к нужной директории или файлам.
  5. Дополнительные шаги:

    • Перепроверьте, установлен ли arm-none-linux-gnueabi-gcc как исполняемый файл, и он действительно находится в каталоге bin.
    • Убедитесь, что другие зависимости также установлены. Установите пакеты, такие как build-essential, crossbuild-essential-armel, если они понадобятся.

Использование 64-битных компиляторов или установка всех необходимых 32-битных зависимостей может помочь избежать проблем в будущем. Эти шаги должны помочь устранить проблему с отсутствием компилятора и обеспечить успешную сборку вашего U-Boot проекта.

Оцените материал
Добавить комментарий

Капча загружается...