Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Собираем собственный arm-linux toolchain...
and73y
Добавлено 25.03.2010 10:33 Сообщение: 131
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
Цитата
А зачем ? Есть готовые, есть buildroot, есть crosstool-ng и наверняка еще вагон и малеькая тележка где все это автоматизировано.


все настроено + подробное руководство + проверена версионная совместимость
не надо ломать голову какие настройки выставлять
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 25.03.2010 11:07 Сообщение: 132
sasamy
4.70

Пункты: 77219
Регистрация: 14.08.2009
Цитата
все настроено + подробное руководство + проверена версионная совместимость
не надо ломать голову какие настройки выставлять


Ну если все настроено...то почему не собирается ? :) И кто проеверял как работает ? У того же crosstool-ng которым сам давно пользуюсь есть сводная таблица успешных сборок.
Спуститься к концу Подняться к началу
Персональная информация
and73y
Добавлено 25.03.2010 12:12 Сообщение: 133
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
sasamy,
можете выложить .config от crosstool-NG?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 25.03.2010 13:20 Сообщение: 134
sasamy
4.70

Пункты: 77219
Регистрация: 14.08.2009
Я сейчас пользуюсь eglibc поэтому есть только для нее
http://sasamy.narod.ru/config_eglibc

C uclibc тоже есть тулчайн но конфиги искать нужно, сейчас времени нет, я вроде на форуме выкладывал.
Спуститься к концу Подняться к началу
Персональная информация
and73y
Добавлено 30.03.2010 08:28 Сообщение: 135
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
sasamy
Послушался совета, cобираю с помощью crosstool-NG.
Используя uclibc.
Получил ошибку:

Код
[ALL ] #
[ALL ] # configuration written to .config
[ALL ] #
[ALL ] make[1]: Leaving directory `/root/Distrib/crosstool-ng-1.6.1/targets/arm-unknown-linux-uclibcgnueabi/build/build-libc'
[EXTRA] Building C library
[DEBUG] ==> Executing: 'make -j1 CROSS=arm-unknown-linux-uclibcgnueabi- PREFIX=/usr/arm-unknown-linux-gnueabi/arm-unknown-linux-uclibcgnueabi//sys-root/ STRIPTOOL=true all'
[ALL ] make[1]: Entering directory `/root/Distrib/crosstool-ng-1.6.1/targets/arm-unknown-linux-uclibcgnueabi/build/build-libc'
[ALL ] GEN include/bits/sysnum.h
[ERROR] <stdin>:1:24: error: asm/unistd.h: No such file or directory
[ERROR] <stdin>:1:24: error: asm/unistd.h: No such file or directory
[ALL ] ERROR: Could not generate syscalls.
[ALL ] Make sure that you have proper kernel headers.
[ALL ] Your .config in KERNEL_HEADERS="" was set to:
[ALL ] /usr/arm-unknown-linux-gnueabi/arm-unknown-linux-uclibcgnueabi/sys-root/usr/include/
[ERROR] make[1]: *** [include/bits/sysnum.h] Error 1
[ALL ] make[1]: Leaving directory `/root/Distrib/crosstool-ng-1.6.1/targets/arm-unknown-linux-uclibcgnueabi/build/build-libc'
[ERROR] Build failed in step 'Installing C library'
[ERROR] Error happened in '/root/Distrib/crosstool-ng-1.6.1/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)
[ERROR] called from '/root/Distrib/crosstool-ng-1.6.1/scripts/build/libc/uClibc.sh' at line # 127 in function 'do_libc'
[ERROR] called from '/root/Distrib/crosstool-ng-1.6.1/scripts/crosstool-NG.sh' at line # 562 in function 'main'
[ERROR] Look at '/usr/arm-unknown-linux-gnueabi/build.log' for more info on this error


Весь лог тут.

1. Где я ошибся?
2. Linux headers - там надо указывать исходники ядра, которое будет стоять на target устройстве?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 30.03.2010 13:48 Сообщение: 136
sasamy
4.70

Пункты: 77219
Регистрация: 14.08.2009
1 не знаю
2 нужно чтобы версия ядра была не меньше той с которой собирался тулчайн.

Собрал на скорую руку с самыми последними версиями uclibc и gcc. Насколько стабилен - не проверял.
конфиг crosstool-ng http://sasamy.narod.ru/config_ctng
конфиг uclibc http://sasamy.narod.ru/config_uclibc
Думаю разберетесь что нужно поправить путь к конфигу uclibc в ct-ng menuconfig.
Спуститься к концу Подняться к началу
Персональная информация
and73y
Добавлено 31.03.2010 14:22 Редактировалось 31.03.2010 14:33 Сообщение: 137
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
Использовал указанные конфиги и все равно ошибка :

Код
[ERROR] Build failed in step 'Installing C library'
[ERROR] Error happened in '/root/Distrib/crosstool-ng-1.6.1/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)
[ERROR] called from '/root/Distrib/crosstool-ng-1.6.1/scripts/build/libc/uClibc.sh' at line # 127 in function 'do_libc'
[ERROR] called from '/root/Distrib/crosstool-ng-1.6.1/scripts/crosstool-NG.sh' at line # 562 in function 'main'
[ERROR] Look at '/root/x-tools/arm-unknown-linux-uclibcgnueabi/build.log' for more info on this error


Весь лог.

Не покидает стойкое ощущение того, что неверно понимаю kernel headers.
Operating System -> kernel headers
указываю пропатченное под плату ядро версии 2.6.28 (было в комплекте к плате).
Собираюсь же в Slackware 13.0
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 31.03.2010 15:27 Редактировалось 31.03.2010 15:30 Сообщение: 138
sasamy
4.70

Пункты: 77219
Регистрация: 14.08.2009
Конкретно эта ошибка решается отключением поддержки гнутых хэшей в конфиге uclibc
# LDSO_GNU_HASH_SUPPORT is not set

я попробовал собрать так же - исходники ядра из внешней директории и получил такие же ругательства на unistd.h. Хз в чем дело - у меня есть собранный на старом ct-ng тулчейн binutils-2.19, uclibc-2.30, gcc-4.2.4 ядро хз какое, но с 2.6.28 тоже собирал - без каких либо проблем собирал его, к сожалению конфиги не могу найти. Думаю если просто указать версию ядра а не внешнее дерево - все ок будет, патчи не затрагивают хидеры, просто у ct-ng похоже крыша уезжает на этом...
Спуститься к концу Подняться к началу
Персональная информация
and73y
Добавлено 07.04.2010 08:19 Сообщение: 139
and73y
5

Пункты: 1154
Регистрация: 25.11.2009
пасибо!!!
наконец-то собрал)
Рецепт следующий:

crosstool-NG 1.5.3
binutils-2.19
gcc-4.2.4
linux-2.6.28.10
uClibc-0.9.30

Но вот трабла - собираю ядро и оно весит 3 гига! а после сжатия 4 мб...
Может кто знает с чем это связано?
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 07.04.2010 11:00 Сообщение: 140
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Есть такое дело. А как вы получаете бинарник ядра? Посмотрите на файл arch/arm/boot/Image скорей всего он у вас нормального размера.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux