Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:8
Форум » starterkit.ru » Embedded Linux
BusyBox, не собирается.
ant
Добавлено 16.02.2010 14:18
0
Сообщение: 1
ant
0

Регистрация: 07.01.2010
Здравствуйте мучаю SK-MNUC950. Пробую скомпилировать busybox-1.9.1, который идет в комплекте с платой, но что-то лыжи не едут...
Сделал как описанно в NUC900 Series MCU Linux BSP User's Manual:
1. make menuconfig
2. Load NUC900 as configure file
3. make

На последнем пункте оно и умирает:
~/BSP/nuc900bsp/applications/busybox-1.9.1$ make CROSS_COMPILE=arm-linux-gnu-
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/split-include
HOSTCC scripts/basic/docproc
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/kxgettext.o
HOSTCC scripts/kconfig/mconf.o
HOSTCC scripts/kconfig/zconf.tab.o
scripts/kconfig/lex.zconf.c:1609: warning: ‘input’ defined but not used
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf -s Config.in
#
# using defaults found in .config
#
SPLIT include/autoconf.h -> include/config/*
GEN include/bbconfigopts.h
HOSTCC applets/usage
GEN include/usage_compressed.h
HOSTCC applets/applet_tables
GEN include/applet_tables.h
CC applets/applets.o
In file included from /usr/arm-linux-gnu/include/bits/posix1_lim.h:153,
from /usr/arm-linux-gnu/include/limits.h:145,
from /usr/lib/gcc/arm-linux-gnu/4.2.4/include/limits.h:122,
from /usr/lib/gcc/arm-linux-gnu/4.2.4/include/syslimits.h:7,
from /usr/lib/gcc/arm-linux-gnu/4.2.4/include/limits.h:11,
from /usr/arm-linux-gnu/include/bits/socket.h:32,
from /usr/arm-linux-gnu/include/sys/socket.h:36,
from /usr/arm-linux-gnu/include/netinet/in.h:25,
from /usr/arm-linux-gnu/include/arpa/inet.h:23,
from include/platform.h:139,
from include/libbb.h:13,
from include/busybox.h:10,
from applets/applets.c:11:
/usr/arm-linux-gnu/include/bits/local_lim.h:36:26: error: linux/limits.h: Нет такого файла или каталога
In file included from /usr/arm-linux-gnu/include/sys/socket.h:36,
from /usr/arm-linux-gnu/include/netinet/in.h:25,
from /usr/arm-linux-gnu/include/arpa/inet.h:23,
from include/platform.h:139,
from include/libbb.h:13,
from include/busybox.h:10,
from applets/applets.c:11:
/usr/arm-linux-gnu/include/bits/socket.h:320:24: error: asm/socket.h: Нет такого файла или каталога
In file included from /usr/arm-linux-gnu/include/sys/ioctl.h:27,
from /usr/arm-linux-gnu/include/sys/mount.h:26,
from include/platform.h:305,
from include/libbb.h:13,
from include/busybox.h:10,
from applets/applets.c:11:
/usr/arm-linux-gnu/include/bits/ioctls.h:24:24: error: asm/ioctls.h: Нет такого файла или каталога
In file included from /usr/arm-linux-gnu/include/errno.h:36,
from include/libbb.h:17,
from include/busybox.h:10,
from applets/applets.c:11:
/usr/arm-linux-gnu/include/bits/errno.h:25:26: error: linux/errno.h: Нет такого файла или каталога
In file included from /usr/arm-linux-gnu/include/signal.h:333,
from include/libbb.h:23,
from include/busybox.h:10,
from applets/applets.c:11:
/usr/arm-linux-gnu/include/bits/sigcontext.h:28:29: error: asm/sigcontext.h: Нет такого файла или каталога
In file included from /usr/arm-linux-gnu/include/signal.h:353,
from include/libbb.h:23,
from include/busybox.h:10,
from applets/applets.c:11:
/usr/arm-linux-gnu/include/sys/ucontext.h:92: error: field ‘uc_mcontext’ has incomplete type
In file included from include/libbb.h:44,
from include/busybox.h:10,
from applets/applets.c:11:
/usr/arm-linux-gnu/include/sys/param.h:24:25: error: linux/param.h: Нет такого файла или каталога
applets/applets.c:15:2: warning: #warning Static linking against glibc produces buggy executables
applets/applets.c:16:2: warning: #warning (glibc does not cope well with ld --gc-sections).
applets/applets.c:17:2: warning: #warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400
applets/applets.c:18:2: warning: #warning Note that glibc is unsuitable for static linking anyway.
applets/applets.c:19:2: warning: #warning If you still want to do it, remove -Wl,--gc-sections
applets/applets.c:20:2: warning: #warning from scripts/trylink and remove this warning.
applets/applets.c:21:2: error: #error Aborting compilation.
make[1]: *** [applets/applets.o] Ошибка 1
make: *** [applets] Ошибка 2

Имеется предроложение что не видит заголовков ядра. Хотя в /usr/include/linux все лежит.
В makefile вычитал
Цитата
# Use LINUXINCLUDE when you must reference the include/ directory.
# Needed to be compatible with the O= option

Не помогло, эффект тот же.

Подскажите в чем может быть проблема?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 16.02.2010 14:41 Редактировалось 16.02.2010 14:43 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
/usr/arm-linux-gnu/include/sys/param.h:24:25: error

сначала надо устранить подобные ошибки, файл то реально там есть? права на доступ?

вдогонку
CROSS_COMPILE=!!!arm-linux-gnu-
!!! - сюда надо вставить путь до кросскомпилятора

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
ant
Добавлено 16.02.2010 15:32 Сообщение: 3
ant
0

Регистрация: 07.01.2010
Файл есть:
ant@ant:~$ ls -l /usr/include/linux/limits.h
-rw-r--r-- 1 root root 874 Фев 10 15:33 /usr/include/linux/limits.h
ant@ant:~$ ls -l /usr/arm-linux-gnu/include/sys/param.h
-rw-r--r-- 1 root root 2266 Янв 5 2009 /usr/arm-linux-gnu/include/sys/param.h
Права на чтение тоже есть. Пробовал запускать make из под рута - тоже самое.

Цитата
вдогонку
CROSS_COMPILE=!!!arm-linux-gnu-
!!! - сюда надо вставить путь до кросскомпилятора

Путь указан в PATH.
ant@ant:~$ arm-linux-gnu-gcc
arm-linux-gnu-gcc: no input files
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 16.02.2010 16:20 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
я, честно гря, не силен в кросскомпиляции, да и бизибокс мне не импонирует. что сделал:
в виртуальной машине с диска разыскал ../src/nuc900/nuc900bsp/applications/busybox-1.9.1 скопировал в отдельный каталог
туда же подсунул файл make_boobs с содержимым:
#!/bin/sh
make ARCH=arm CROSS_COMPILE=/usr/local/arm_linux_4.2/bin/arm-none-linux-gnueabi-

make clean
./make_boobs
все собралось без грязной ругани :)
Код
-rwxr-xr-x 1 root root 566652 2010-02-16 15:09 busybox

дальше ковырять не стал.. там надо указывать куда складываем дерево, как прописываем линки etc

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
rw9uao
Добавлено 16.02.2010 17:15 Сообщение: 5
rw9uao
Ранг
5

Группа: Клиенты
Пункты: 6973
Регистрация: 26.03.2009
Цитата
make_boobs

жжошь. там на самом деле надо с путями разобраться.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 16.02.2010 17:42 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Цитата
make_boobs

жжошь. там на самом деле надо с путями разобраться.

не-а.. реально.. сам слегка удивился
виртуалка от Павла, сорцы его же
тупо скопировал из юзера user в test
и все как описал проделал, в чем подвох то?
один из законов Мерфи гласит - "если все собирается, то значит что-то неправильно.."
при всем этом у того же user в каталоге buildroot/uclibs лежит версия 1.14.3 - не собирается ни в какую..

что для доказательства надо? скриншот, мувик, шляпу съесть? :)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
ant
Добавлено 17.02.2010 21:03 Сообщение: 7
ant
0

Регистрация: 07.01.2010
Проблема действительно в путях...
Попробовал откомпилировать вот это:
Код
#include <linux/param.h>
int main (void)
{
volatile int r = 7;
return 5 + r;
}

Результат:
Код
ant@ant:~/BSP$ arm-linux-gnu-gcc test.c
test.c:1:25: error: linux\param.h: Нет такого файла или каталога


При всем при этом с gcc, тот который 386, работает.

Сделал ссылку на заголовки линукса, дело продвинулось чуть дальше.
In file included from /usr/arm-linux-gnu/include/sys/socket.h:36,
from /usr/arm-linux-gnu/include/netinet/in.h:25,
from /usr/arm-linux-gnu/include/arpa/inet.h:23,
from include/platform.h:139,
from include/libbb.h:13,
from include/busybox.h:10,
from applets/applets.c:11:
/usr/arm-linux-gnu/include/bits/socket.h:320:24: error: asm/socket.h: Нет такого файла или каталога

Ссылку на asm я сделаю, но возникает вопрос - с каждым ядром так делать? Или во всех ядрах 2.6 заголовочные файлы одинаковы? Если так, то почему при установке пакета кроскомпилятора эти ссылки не сделались, кривой пакет?
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux