LINUX.ORG.RU

Компиляция под ARM

 , встроенные системы


0

1

Всем доброго времени суток

Собрался я тут компилировать систему вот по этому мануалу вот для этой железки. Процессор там Kirkwood Feroceon 88F6281. Скомпилировал crosstools-ng и toolchain, настала очередь ядра. Скачал отсюда ядро, сконфигурировал его, запускаю на компиляцией командой

make -j5 CROSS_COMPILE=$CROSS_COMPILE ARCH=arm uImage
на что он мне задаёт много вопросов относительно ARM, пытается чего-то сделать и потом выдаёт

CHK include/linux/version.h
CHK include/generated/utsrelease.h
CC scripts/mod/empty.o

cc1: ошибка: unrecognized command line option «-mlittle-endian»
cc1: ошибка: unrecognized command line option «-mapcs»
cc1: ошибка: unrecognized command line option «-mno-sched-prolog»
scripts/mod/empty.c:1:0: ошибка: unknown ABI (apcs-gnu) for -mabi= switch
scripts/mod/empty.c:1:0: ошибка: bad value (armv4t) for -march= switch
scripts/mod/empty.c:1:0: ошибка: bad value (xscale) for -mtune= switch
make[2]: *** [scripts/mod/empty.o] Ошибка 1
make[1]: *** [scripts/mod] Ошибка 2
make: *** [scripts] Ошибка 2

Не подскажете что я делаю не так?

Ну что я думаю по этому поводу. Хотя еще мне только предстоит ARM юзать чуть позже. CROSS_COMPILE=$CROSS_COMPILE Это строка, как мне кажется, «Масло масляное». Еще есть мысль заменить компилятор сс на gcc. Потому как странно, что он не видит «-mlittle-endian» -эта опция используется для систем AIX5 и Linux по умолчанию. Попробуйте после этого так
1)В терминале make ARCH=arm menuconfig
2)Долго выбираем в окошке нужные параметры
3)make ARCH=arm zImage -j4

А вось запашет.

imirrori
()
Ответ на: комментарий от imirrori

CROSS_COMPILE=$CROSS_COMPILE Это строка, как мне кажется, «Масло масляное»

Не знаю почему вам так кажется, но

CROSS_COMPILE=$HOME/cross/toolchain/arm-unknown-linux-uclibcgnueabi

это я на всякий случай прописал, ибо не знаю подхватится оно автоматом или нет

Еще есть мысль заменить компилятор сс на gcс

зачем и как? Ибо я собирал по мануалу указанному выше и компилятор там из crosstool-ng специально под arm собран

seijuurou
() автор топика
Ответ на: комментарий от imirrori

заменить компилятор сс на gcc

Я думаю мне бы было полезно было использовать вот этот компилятор $HOME/cross/toolchain/arm-unknown-linux-uclibcgnueabi/bin/gcc. Но я не могу понять пока как это сделать

seijuurou
() автор топика
Ответ на: комментарий от imirrori

ввожу make CC=$HOME/cross/toolchain/arm-unknown-linux-uclibcgnueabi/bin/gcc ARCH=arm uImage -j4
он мне выплёвывает:

CHK include/linux/version.h
CHK include/generated/utsrelease.h
CC scripts/mod/empty.o
gcc: error trying to exec 'cc1': execvp: No such file or directory
make[2]: *** [scripts/mod/empty.o] Ошибка 1
make[1]: *** [scripts/mod] Ошибка 2
make[1]: *** Ожидание завершения заданий...
make: *** [scripts] Ошибка 2


делаю симлинк cc1 на $HOME/cross/toolchain/arm-unknown-linux-uclibcgnueabi/bin/gcc в той же папке, выдаёт кучу такого:

cc1: /tmp/ccLcJ4l0.d: No such file or directory
cc1: empty: No such file or directory
cc1: unrecognized option '-quiet'
cc1: unrecognized option '-quiet'
cc1: error trying to exec 'cc1': execvp: Argument list too long
make[2]: *** [scripts/mod/empty.o] Ошибка 1
make[1]: *** [scripts/mod] Ошибка 2
make: *** [scripts] Ошибка 2


но этот файл scripts/mod/empty.o я нашёл только в исходниках ядра системы которая сейчас функционирует (т.е. /usr/src/linux-...)

seijuurou
() автор топика

Я собирал ядро под этот SoC с помощью CodeSourcery, не помню версию, но не суть важно. Попробуй им. mentor.com/embedded-software/codesourcery CROSS_COMPILE=arm-none-linux-gnueabi-

elijah_sd
()

Buildroot умеет для этой железки (и не только) и загрузчик и ядро и корневую файловую систему собирать.

Dennis7
()
Ответ на: комментарий от seijuurou

Ну я не пробовал. Но помоему тут надо makefile посмотреть.

imirrori
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.