ЗАО «ЗЭО»
Техническая поддержка пользователей => Тион, Тион-Про, Тион-Про v2, Сириус => Тема начата: kvazar от 27 Июня, 2014, 13:32:47
-
Пытаюсь собрать КФС используя buildroot-2009.08 Использую ubuntu 12.04 x32 При сборке получаю вот такую ошибку #error It appears you have defined _FILE_OFFSET_BITS=64. Unfortunately, uClibc was built without large file support enabled.
Вот вывод консоли:
/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/bin/arm-linux-uclibcgnueabi-gcc -Os -pipe -Os -I/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include -I/home/v4x32/buildroot-2009.08/build_arm/staging_dir/include --sysroot=/home/v4x32/buildroot-2009.08/build_arm/staging_dir/ -isysroot /home/v4x32/buildroot-2009.08/build_arm/staging_dir -mtune=arm920t -march=armv4t -mabi=aapcs-linux -msoft-float -Wall -D_GNU_SOURCE -DLinux -DVERSION=\"3.7.7\" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -c -o logrotate.o logrotate.c
In file included from /home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/sys/cdefs.h:25,
from /home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/sys/queue.h:36,
from logrotate.c:1:
/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/features.h:416:4: error: #error It appears you have defined _FILE_OFFSET_BITS=64. Unfortunately, uClibc was built without large file support enabled.
In file included from /home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/stdio.h:72,
from /home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/popt.h:12,
from logrotate.c:7:
/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/bits/uClibc_stdio.h:61:2: error: #error Sorry... uClibc was built without large file support!
In file included from /home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/popt.h:12,
from logrotate.c:7:
/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/stdio.h:83: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fpos_t'
/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/stdio.h:87: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'fpos64_t'
In file included from /home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/popt.h:12,
from logrotate.c:7:
/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/stdio.h:714: error: expected declaration specifiers or '...' before 'fpos_t'
/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/stdio.h:716: error: expected ';', ',' or ')' before '*' token
/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/stdio.h:728: error: expected declaration specifiers or '...' before 'fpos64_t'
/home/v4x32/buildroot-2009.08/build_arm/staging_dir/usr/include/stdio.h:729: error: expected ';', ',' or ')' before '*' token
make[1]: *** [logrotate.o] Ошибка 1
make[1]: Выход из каталога `/home/v4x32/buildroot-2009.08/build_arm/logrotate-3.7.7'
make: *** [/home/v4x32/buildroot-2009.08/build_arm/logrotate-3.7.7/logrotate] Ошибка 2
Я в использовании линукса совсем зелёный, поэтому не имею ни малейшего представления как заставить его работать. Сразу скажу, что поддержка 64 битной архитектуры меня не интересует. Помогите пожалуйста разобраться
-
Как собирали? Взяли файл local/tion/tion.config ?
-
Ubuntu 12.04
Собралось с tion.config, там уже включен logrotate:
1. cp local/tion/tion.config .config
2. make BOARD=tion
-
Да. И перенастроил его через menuconfig
https://yadi.sk/d/xKf2XIuVV6tUM (https://yadi.sk/d/xKf2XIuVV6tUM)
-
А зачем отключили BR2_LARGEFILE?
-
Если честно, его конфигурировал человек работавший до меня, но у него он вроде как рабочий, поэтому было сказано использовать его.
Я так понимаю что это поддержка больших файлов, зачем она нужна в рамках этой сборки?
-
logrotate собирается с включённым BR2_LARGEFILE. Вам придётся сделать всё заново, чтобы была пересобрана uClibc. В каталог с новым BR скопируйте каталог dl из текущего или сделайте на него ссылку.
-
Я включил BR2_LARGEFILE, но получил ровно ту же самую ошибку
-
> Вам придётся сделать всё заново, чтобы была пересобрана uClibc.
-
Забыл добавить - И сделал всё заново.
Один вопрос при сборке он берёт конфигурацию из local/tion/tion.config ?
В любом случае я скачал заново buildroot, скопировал в него конфигурацию, включил через menuconfig BR2_LARGEFILE и пустил на сборку, в итоге та же ошибка
-
> Один вопрос при сборке он берёт конфигурацию из local/tion/tion.config
Если указывать BOARD=tion. Но .config тоже нужен, поэтому проще если .config и local/BOARD/BOARD.config одинаковые.
Я уже писал, что проверил на Ubuntu с tion.config. Как именно всё сделали заново?
-
Полностью удалил buildroot. Оставил только файлы /local/tion/tion.config и .config
C помощью команды git clone скачал новый buildroot.
Скопировал в него файлы конфигурации.
Через menuconfig включил поддержку больших файлов, сохранил изменения в .config
Сделал make BOARD=tion
-
Ошибка другая, в вашей конфигурации включены заголовочные файлы из ядра 2.6.26, в tion.config они от 2.6.30
# BR2_KERNEL_HEADERS_2_6_26 is not set
BR2_KERNEL_HEADERS_2_6_30=y
BR2_DEFAULT_KERNEL_HEADERS="2.6.30.5"
-
Мне необходима версия 2.26
По той причине, что версия 2.30 собиралась с таким же конфигурационным файлом и не работала на устройстве тион про2
Вообще уже был прецедент успешной сборки с таким конфигурационным файлом, который я выложил, но понадобилось собрать снова с теми же параметрами, но на другой машине(разница между ними - первый линукс x64 текущий x86).
А прошлый раз всех описанных ранее проблем не возникало.
Тем неменее, я заменил файл tion.config файлом .config и попытался собрать ядро и он мне выдал вот такую ошибку
*** Using kernel-headers generated from kernel source
rm -rf /home/v4x32/buildroot-2009.08/toolchain_build_arm/linux
[ -d /home/v4x32/buildroot-2009.08/toolchain_build_arm ] || /usr/bin/install -d /home/v4x32/buildroot-2009.08/toolchain_build_arm
bzcat /home/v4x32/buildroot-2009.08/dl/linux-2.6.26.8.tar.bz2 | tar -C /home/v4x32/buildroot-2009.08/toolchain_build_arm -xf -
touch /home/v4x32/buildroot-2009.08/toolchain_build_arm/linux-2.6.26.8/.unpacked
toolchain/patch-kernel.sh /home/v4x32/buildroot-2009.08/toolchain_build_arm/linux-2.6.26.8 toolchain/kernel-headers \
linux-2.6.26.8-\*.patch{,.gz,.bz2}
touch /home/v4x32/buildroot-2009.08/toolchain_build_arm/linux-2.6.26.8/.patched
(cd /home/v4x32/buildroot-2009.08/toolchain_build_arm/linux-2.6.26.8; \
/usr/bin/make -j1 ARCH=arm \
HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" \
HOSTCXX="/usr/bin/g++" \
INSTALL_HDR_PATH=/home/v4x32/buildroot-2009.08/toolchain_build_arm/linux headers_install; \
)
make[1]: Вход в каталог `/home/v4x32/buildroot-2009.08/toolchain_build_arm/linux-2.6.26.8'
CHK include/linux/version.h
UPD include/linux/version.h
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/docproc
HOSTCC scripts/unifdef
scripts/unifdef.c:209:25: ошибка: несовместимые типы для «getline»
/usr/include/stdio.h:675:20: замечание: здесь была предыдущая декларация «getline»
make[2]: *** [scripts/unifdef] Ошибка 1
make[1]: *** [headers_install] Ошибка 2
make[1]: Выход из каталога `/home/v4x32/buildroot-2009.08/toolchain_build_arm/linux-2.6.26.8'
make: *** [/home/v4x32/buildroot-2009.08/toolchain_build_arm/linux/.configured] Ошибка 2
-
> По той причине, что версия 2.30
Это только заголовочные файлы ядра для сборки библиотек и компилятора, на плате поставляется ядро 2.6.20.
> Мне необходима версия 2.26
> Вообще уже был прецедент успешной сборки с таким конфигурационным файлом
Тогда вы уже должны знать, как решить следующую проблему:
> scripts/unifdef.c:209:25: ошибка: несовместимые типы для «getline»
-
В том то и дело, таких проблем ранее не возникало. И вообще кроме ошибок того, что что-то в системе не установлено больше никаких ошибок не было вообще, никаких проблем не приходилось решать, всё так сказать получилось с первого раза(не считая необходимости доустанавливать пакеты приложений).
И ещё возможно это имеет отношение к делу. При использовании git clone http://zao-zeo.ru/media/files/linux/buildroot-2009.08.
Появляются вот такие ошибки
error: inflate: data stream error (incorrect header check)
error: inflate: data stream error (incorrect header check)
error: inflate: data stream error (incorrect header check)
-
Я сомневаюсь, что у вас получится собрать с заголовочными файлами 2.6.26 не понижая версии библиотек и/или компилятора.
По поводу
> error: inflate: data stream error (incorrect header check)
я уже отвечал, что файлы целы
http://www.zao-zeo.ru/forum/index.php?topic=797.0
-
Скопируйте файл scripts/unifdef.c из более нового ядра в
toolchain_build_arm/linux-2.6.26.8/scripts/unifdef.c