Объединение Entware-ng и Entware-3x. Теперь это просто Entware!!!

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1526
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 06 мар 2018, 21:50

Разработчики Entware рады Вам сообщить о слиянии двух веток Entware-ng и Entware-3x. Выпущен новый набор репозиториев пакетов, который называется просто Entware. В этот репозиторий вошли все архитектуры Entware-3x (armv5, armv7, aarch64, mips, mipsel, x64) и репозиторий armv7 на ядре Linux 2.6.36 из состава Entware-ng. Остальные архитектуры замораживаются, их обновление больше не будет производиться.

Проведено обновление тулчейна (инструментов сборки), теперь все пакеты собираются с помощью компилятора GCC 7.3. В качестве системной библиотеки используется glibc 2.27 или 2.23 (ограничения ядра 2.6.36).

Кроме mipsel, обновление для перешедших в Entware архитектур произойдет автоматически после выполнения команд `opkg update && opkg upgrade` два раза подряд. Сначала будет обновлен файл opkg.conf (заменен URL репозитория на новый). При втором выполнении будут обновлены сами пакеты.

В системе Entware имеются два типа установок. Стандартная установка Entware в отличие от Entware-3x не устанавливает пакет busybox. Это сделано для того, чтобы избежать возможное влияние на работу прошивки. Стандартная установка Entware фактически совпадает с установкой Entware-ng. В случае т.н. альтернативной установки будет установлен пакет busybox. В этом случае пользователи и группы в Entware независимы от пользователей и групп прошивки. По умолчанию при альтернативной установке в Entware имеется пользователь root с паролем 12345.

В настоящее время различные варианты Entware широко используются на роутерах, сетевых хранилищах, Android устройствах и других устройствах с ядром Linux.

Команда Entware готова рассмотреть предложения о добавлении новых репозиториев в проект. Если Вы хотите, что бы Ваше устройство было поддержано сообщите его название, вывод команды `uname -a` и другую информацию, которую сочтете необходимой. Linux ядро должно быть не моложе 2.6.36!

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1526
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 06 мар 2018, 21:51

Github репозиторий - https://github.com/Entware

aarch64 (ядро 3.10 или старше), пакеты тут - http://bin.entware.net/aarch64-k3.10/Packages.html
generic установщик - http://bin.entware.net/aarch64-k3.10/in ... generic.sh
alternative - http://bin.entware.net/aarch64-k3.10/in ... rnative.sh

armv5 (ядро 3.2 или старше), пакеты тут - http://bin.entware.net/armv5sf-k3.2/Packages.html
generic установщик - http://bin.entware.net/armv5sf-k3.2/ins ... generic.sh
alternative - http://bin.entware.net/armv5sf-k3.2/ins ... rnative.sh

armv7 (ядро 3.2 или старше), пакеты тут - http://bin.entware.net/armv7sf-k3.2/Packages.html
generic установщик - http://bin.entware.net/armv7sf-k3.2/ins ... generic.sh
alternative - http://bin.entware.net/armv7sf-k3.2/ins ... rnative.sh

armv7 (ядро 2.6.36 или старше), пакеты тут - http://bin.entware.net/armv7sf-k2.6/Packages.html
generic установщик - http://bin.entware.net/armv7sf-k2.6/ins ... generic.sh
alternative - http://bin.entware.net/armv7sf-k2.6/ins ... rnative.sh

mips (ядро 3.4 или старше), пакеты тут - http://bin.entware.net/mipssf-k3.4/Packages.html
generic установщик - http://bin.entware.net/mipssf-k3.4/installer/generic.sh
alternative - http://bin.entware.net/mipssf-k3.4/inst ... rnative.sh

mipsel (ядро 3.4 или старше), пакеты тут - http://bin.entware.net/mipselsf-k3.4/Packages.html
generic установщик - http://bin.entware.net/mipselsf-k3.4/in ... generic.sh
alternative - http://bin.entware.net/mipselsf-k3.4/in ... rnative.sh

x64 (ядро 3.2 или старше), пакеты тут - http://bin.entware.net/x64-k3.2/Packages.html
generic установщик - http://bin.entware.net/x64-k3.2/installer/generic.sh
alternative - http://bin.entware.net/x64-k3.2/install ... rnative.sh

Для armv7 (ядро 2.6.36) добавилось несколько десятков пакетов, по сравнению с версией Entware-ng. Некоторые пакеты обновлены. Различие (по числу и версиям пакет с другими репозиториями минимально). Этот репозиторий перешел от Entware-ng и предназначен прежде всего для arm роутеров на чипсетах Broadcom.

Voxel
Сообщения: 74
Зарегистрирован: 29 фев 2016, 12:34

Сообщение Voxel » 13 мар 2018, 18:47

Идея классная.

Пытаюсь собрать для Cortex-A15. Уткнулся в ошибки сборки тулчейна (в glibc-2.27). Есть идеи, что я делаю не так?

Код: Выделить всё

. . .
make[6]: Leaving directory '/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27/elf'
arm-openwrt-linux-gnueabi-gcc   -nostdlib -nostartfiles -shared -o /home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/ld.so.new              \
          -Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both -Wl,-z,defs      \
          /home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/librtld.os -Wl,--version-script=/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/ld.map                \
          -Wl,-soname=ld-linux-armhf.so.3                       \
          -Wl,-defsym=_begin=0
/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/librtld.os: In function `process_dl_debug':
raise.c:(.text+0x4dc): undefined reference to `memcpy'
/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/librtld.os: In function `_dl_start':
raise.c:(.text+0x108c): undefined reference to `memcpy'
/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/librtld.os: In function `handle_ld_preload':
raise.c:(.text+0x15bc): undefined reference to `memcpy'
raise.c:(.text+0x15e8): undefined reference to `memchr'
/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/librtld.os: In function `dl_main':
raise.c:(.text+0x1868): undefined reference to `memcpy'
raise.c:(.text+0x1e2c): undefined reference to `memchr'
raise.c:(.text+0x2c24): undefined reference to `memcpy'
raise.c:(.text+0x4098): undefined reference to `memcpy'
raise.c:(.text+0x4344): undefined reference to `memchr'
raise.c:(.text+0x4750): undefined reference to `memchr'
raise.c:(.text+0x4880): undefined reference to `memcpy'
/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/librtld.os: In function `open_verify.constprop.7':
raise.c:(.text+0x57f0): undefined reference to `memcpy'
/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/librtld.os: In function `open_path':
raise.c:(.text+0x5bbc): undefined reference to `memcpy'
/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/librtld.os: In function `_dl_map_object_from_fd':
raise.c:(.text+0x6960): undefined reference to `memcpy'
raise.c:(.text+0x7068): undefined reference to `memcpy'
/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/librtld.os:raise.c:(.text+0x7178): more undefined references to `memcpy' follow
/home/voxel/Entware/staging_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/lib/gcc/arm-openwrt-linux-gnueabi/7.3.0/../../../../arm-openwrt-linux-gnueabi/bin/ld: /home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/ld.so.new: hidden symbol `memchr' isn't defined
/home/voxel/Entware/staging_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/lib/gcc/arm-openwrt-linux-gnueabi/7.3.0/../../../../arm-openwrt-linux-gnueabi/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:478: recipe for target '/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/ld.so' failed
make[5]: *** [/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/elf/ld.so] Error 1
make[5]: Leaving directory '/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27/elf'
Makefile:215: recipe for target 'elf/subdir_lib' failed
make[4]: *** [elf/subdir_lib] Error 2
make[4]: Leaving directory '/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27'
Makefile:9: recipe for target 'all' failed
make[3]: *** [all] Error 2
make[3]: Leaving directory '/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final'
Makefile:32: recipe for target '/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/.built' failed
make[2]: *** [/home/voxel/Entware/build_dir/toolchain-arm_cortex-a15_gcc-7.3.0_glibc-2.27_eabi/glibc-2.27-final/.built] Error 2
make[2]: Leaving directory '/home/voxel/Entware/toolchain/glibc'
toolchain/Makefile:96: recipe for target 'toolchain/glibc/compile' failed
make[1]: *** [toolchain/glibc/compile] Error 2
make[1]: Leaving directory '/home/voxel/Entware'
/home/voxel/Entware/include/toplevel.mk:216: recipe for target 'toolchain/install' failed
make: *** [toolchain/install] Error 2


Спасибо,
Voxel.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1526
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 13 мар 2018, 19:30

1. Google. Искать патч это исправляющий.
2. Добавить -lc после nostdlib

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1526
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 13 мар 2018, 20:58

Самое простое - оставить gcc 7.3, а binutils и libc выбрать те версии, что были раньше.

Дополнение. Возможно вылез старый баг, когда gcc оптимизирует код в вызов memcpy.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82845
Наблюдается и в gcc8. Там же фикс. Может быть связано с -O3 при сборке тулчейна.

Voxel
Сообщения: 74
Зарегистрирован: 29 фев 2016, 12:34

Сообщение Voxel » 15 мар 2018, 12:11

Гуглить-то я умею. Тем не менее спасибо за ссылки.

Замена на -O2 не помогла. Не похоже на баг с memcpy оптимизацией. Указание опций для выключения такой оптимизации также на помогла (-fno-tree-loop-distribute-patterns). Также, указание явно библиотеки в Makefile.

Короче, сделал откат на glibc 2.26. Это работает без проблем. Соответственно, переделал патчи для 2.26. Грешу на баг в 2.27. Слишком свежая версия. В конце-концов OpenWRT/LEDE используют 2.26. Пусть 2.27 подождет своего часа и патча.

Мне просто интересно: а у тебя что, не было такой проблемы? Что у меня специфического... Использую последний Debian с gcc 6.3...

Voxel.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1526
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 15 мар 2018, 15:03

Voxel писал(а):Источник цитаты Мне просто интересно: а у тебя что, не было такой проблемы? Что у меня специфического... Использую последний Debian с gcc 6.3...

Все архитектуры собираются без проблем. Разница (в случае armv7) в softfloat, оптимизации (-O2) и опциях под cortex.
PS В Openwrt перешли на gcc 7.3 по умолчанию. Используют с binutils 2.29.1 (может стоит сменить 2.30 на эту версию и проблема уйдет?). Но там musl, а сборка падает на libc! Для сборки используется Debian 8.

Voxel
Сообщения: 74
Зарегистрирован: 29 фев 2016, 12:34

Сообщение Voxel » 15 мар 2018, 15:18

Zyxmon писал(а):Источник цитаты В Openwrt перешли на gcc 7.3 по умолчанию


Но glibc если используется, то 2.26.

Zyxmon писал(а):Источник цитаты может стоит сменить 2.30 на эту версию и проблема уйдет?


Не, игрался с этим. До 2.27 по нисходящей проверял.

Zyxmon писал(а):Источник цитаты Разница (в случае armv7) в softfloat, оптимизации (-O2) и опциях под cortex.


Возможно, неправильно обрабатывается отсутствие -march=armv7a (и вообще "-march"). Я эту опцию специально не использую для Cortex-A15... Встречал такие пакеты, которые без -march неправильно конфигурируются и ломаются при компиляции.

Voxel.

Voxel
Сообщения: 74
Зарегистрирован: 29 фев 2016, 12:34

Сообщение Voxel » 15 мар 2018, 15:23

glibc 2.26 нормально. Разница с 2.27 несущественна для скорости, у нас же не sparc M7, в котором как раз оптимизировали memcpy...

Voxel.

Voxel
Сообщения: 74
Зарегистрирован: 29 фев 2016, 12:34

Сообщение Voxel » 15 мар 2018, 17:05

Собрал Entware для архитектуры Cortex-A15:

http://cortex-a15.zyxmon.org/binaries/cortex-a15-3x/

Voxel.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 3 посетителя :: 1 зарегистрированный, 0 скрытых и 2 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: CommonCrawl [Bot] и 2 гостя