ЗАО «ЗЭО»
Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: oev от 13 Августа, 2014, 10:15:59
-
Доброго всем времени суток. Первый раз в жизни собираю ядро, встретился с такой проблемой и прошу о помощи!
Склонировал я git репозиторий c zao-zeo и провожу такие манипуляции
oev@oev:~/zao_git$ export ARCH=arm
oev@oev:~/zao_git$ export CROSS_COMPILE=arm-none-linux-gnueabi-
oev@oev:~/zao_git$ make tion270_defconfig
#
# configuration written to .config
#
oev@oev:~/zao_git$ make
scripts/kconfig/conf -s arch/arm/Kconfig
include/config/auto.conf:115:warning: symbol value 'elf32-i386' invalid for OUTPUT_FORMAT
include/config/auto.conf:164:warning: symbol value 'arch/x86/configs/i386_defconfig' invalid for ARCH_DEFCONFIG
include/config/auto.conf:385:warning: symbol value '-fcall-saved-ecx -fcall-saved-edx' invalid for ARCH_HWEIGHT_CFLAGS
*** Error during update of the kernel configuration.
make[2]: *** [silentoldconfig] Ошибка 1
make[1]: *** [silentoldconfig] Ошибка 2
make: *** Нет правила для сборки цели `include/config/auto.conf', требуемой для `include/config/kernel.release'. Останов.
При этом конфигурационный файл собирается конкретно под tion270. Что я делаю не так? Если не выбирать arm архитектуру, то сборка собирается под x86
-
1. Вы make делаете в той же сессии командной оболочки, т.е. у вас значения
переменных окружения ARCH и CROSS_COMPILE установлены перед вызовом make?
2. arm-none-linux-gnueabi- у вас как установлен?
-
1)переменные окружения устанавливаются в той же командной оболочке
2)arm-none-linux-gnueabi- установлен нормально. Путь к папке с инструментарием прописан в переменную окружения. Так что в терминале я всегда могу после arm-none-linux-gnueabi-gcc -v получить версию компилятора.
-
У вас нет в системе компилятора для x86?
-
Дайте подумать... есть! на машине стоит Eclipse, который прекрасно собирал проекты на сишечке под x86
-
Распакуйте
http://www.zao-zeo.ru/media/files/tools/gcc/buildroot/gcc-4.3.4_armv5te_xscale_eabi.tar.gz
в /usr/local/arm
и задавайте
CROSS_COMPILE=/usr/local/arm/4.3.4-armv5te-xscale-eabi/usr/bin/arm-linux-
-
После того как распакуете и зададите CROSS_COMPILE сделайте
make distclean
make tion270_defconfig
make
-
Архив распаковывается с ошибками
tar: usr/local/arm/4.3.4-armv5te-xscale-eabi/usr/lib/libdl.so: Невозможно создать символическую ссылку на `../../lib/libdl.so.0': Файловая система доступна только для чтения
tar: usr/local/arm/4.3.4-armv5te-xscale-eabi/usr/lib/libm.so: Невозможно создать символическую ссылку на `../../lib/libm.so.0': Файловая система доступна только для чтения
tar: usr/local/arm/4.3.4-armv5te-xscale-eabi/usr/lib/terminfo: Невозможно создать символическую ссылку на `/usr/local/arm/4.3.4-armv5te-xscale-eabi/usr/share/terminfo': Файловая система доступна только для чтения
tar: usr/local/arm/4.3.4-armv5te-xscale-eabi/usr/arm-linux-uclibcgnueabi/sys-include: Невозможно создать символическую ссылку на `../include/': Файловая система доступна только для
-
> Дайте подумать...
У вас нет прав на запись в /usr/local/arm ?
-
для начала я распаковываю под рутом в директорию, куда скопировал архив. У меня вообще нет папки /usr/local/arm. Я могу создать папку с правами 777 и распаковывать туда.
-
Я писал распакуйте в /usr/local/arm
-
А какая разница куда разархивировать?
Но вообще я создал папку /usr/local/arm и разархивировал туда без ошибок
-
Результат сборки ядра?
-
Стало гораздо лучше, сборка вовсю запыхтела, но остановилась в этом месте
AS arch/arm/mm/abort-ev5t.o
AS arch/arm/mm/pabort-legacy.o
CC arch/arm/mm/copypage-xscale.o
AS arch/arm/mm/tlb-v4wbi.o
AS arch/arm/mm/proc-xscale.o
/tmp/ccHnKQTr.s: Assembler messages:
/tmp/ccHnKQTr.s: Error: .size expression for xscsale_dma_a0_map_area does not evaluate to a constant
make[1]: *** [arch/arm/mm/proc-xscale.o] Ошибка 1
make: *** [arch/arm/mm] Ошибка 2
-
Какой дистрибутив Linux?
-
Ubuntu 10.04
Я аккуратно все переделал, прописал все пути с вашим набором инструментов, и оно стало компилировать пока без ошибок. Что получится - напишу.
-
Если несколько ядер, то сборку можно остановить (ctrl+c) и запустить с make -j
-
Ядро собралось! почему у меня были проблемы: мне кажется, что причины две
1) набор инструментов от Mentor
2) мои кривые руки
Но насчет первого я не уверен, хотя с этими инструментами сборка глохла в самом начале. Благодаря
http://www.zao-zeo.ru/media/files/tools/gcc/buildroot/gcc-4.3.4_armv5te_xscale_eabi.tar.gz
все сраслось.
Спасибо за оперативную помощь!