1

Тема: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Прошивка от 10.11.11 и финальная прошивка BFW.4 от 17.11.11 собраны с другими ключами gcc. Чуть подробнее можно почитать на форуме IXBT.
Модули ядра, собранные ранее, работать не будут. Такие модули ядра используют пакеты openvpn и nfs-kernel-server.

28.11.2011 Для этих прошивок создан другой репозитарий пакетов. Подробнее читаем в этой теме.
В ней описан способ перехода на новый репозитарий. Дальнейшая информация больше не нужна.

Если Вы обновили прошивку, то рабочие модули ядра для нее можно взять тут:
http://keenetic.zyxmon.org/packages/2.6 … 2r2.tar.gz

В этой прошивке внесены исправления в системную библиотеку lippthread. Некоторые приложения, которые ее используют, могут перестать работать. Пример такого приложения - mediatomb. Исправленный бинарный файл mediatomb тут:
http://keenetic.zyxmon.org/files/mips32 … omb.tar.gz
Пока не замечены другие не работающие на этой прошивке приложения. Если некоторое приложение перестало работать на этой прошивке - отписываемся в этой теме.

Для тех, кто самостоятельно собирает пакеты!
В настоящее время все нужные исправления внесены в систему сборки, но пока не сделан commit. Идет небольшая косметическая правка, обновление некоторых пакетов. Изменения без такой косметической правки:

$ svn st
?      toolchain/uClibc/patches-0.9.30.3/300-linuxthreads.old_setstack.patch
?      toolchain/uClibc/patches-0.9.30.3/350-linuxthreads.old_condattr_monotonic.patch
M      target/linux/keenetic/config-2.6.23
M      target/linux/keenetic/Makefile
?      target/linux/generic/patches-2.6.23/50-mips32r2.patch
M      configs/packages.config
M      configs/keenetic.config
M      package/curl/patches/200-no_docs_tests.patch
M      package/curl/patches/510-no_sslv2.patch
M      package/curl/patches/100-cross_compile.patch
M      package/curl/Makefile

в виде архива тут:
http://keenetic.zyxmon.org/files/mips32 … 2r2.tar.gz
Следует обязательно запустить "make menuconfig" после копирования конфигурации из папки configs перед сборкой "make V=99". Проверено, что все успешно собирается под Debian 5 и Debian 6.

2

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Временно выложил модули ядра, собранные для прошивки от 10 ноября (и более новых) тут
http://keenetic.zyxmon.org/packages/
Модули перезалиты в виде одного архива

Склоняюсь пока к следующему решению: создать новый репозитарий бинарных пакетов для новых прошивок. Старый заморозить и не обновлять.
Как говорят "французы": KISS - keep it simple, stupid  big_smile

3

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Обновить пакеты под новую архитектуру и все. Тянуть еще и obsolete пакеты не вариант. ИМХО лучше создать новый репозиторий для старых пакетов и не обновлять.

Отредактировано AndreyUA (2011-11-11 16:04:22)

4

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

AndreyUA :

Обновить пакеты под новую архитектуру и все. Тянуть еще и obsolete пакеты не вариант. ИМХО лучше создать новый репозиторий для старых пакетов и не обновлять.

Можно и так. Никак руки не дойдут кое что проверить. После задуманной проверки возможно обновление скрипта начальной установки, а в нем все равно какой путь к репозитарию прописывать.

5

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon :
AndreyUA :

Обновить пакеты под новую архитектуру и все. Тянуть еще и obsolete пакеты не вариант. ИМХО лучше создать новый репозиторий для старых пакетов и не обновлять.

Можно и так. Никак руки не дойдут кое что проверить. После задуманной проверки возможно обновление скрипта начальной установки, а в нем все равно какой путь к репозитарию прописывать.

Раз уж думаете переписать скрипт, то добавьте создание lock файла в tmp для предотвращения двойного запуска скрипта.
ЗЫ Надо бы поинтересоваться у McMMC - это решение 100% финальное или тест, как с туксерой.

Отредактировано AndreyUA (2011-11-11 18:14:04)

6

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

AndreyUA, с двойным запуском не все так просто. Тут писали, что, если сделать reboot, то двойного запуска нет. При этом init.sh завершает работу до монтирования дисков. У меня такого нет. Скрипт всегда можно подправить, с установщиком не очень связано.

7

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Модули ядра собранные выше не годятся. Разбираюсь.

8

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Работающие модули ядра в виде архива
http://keenetic.zyxmon.org/packages/2.6 … 2r2.tar.gz

Для сборки, кроме описанных ранее изменений нужен еще примерно такой патч

$ cat target/linux/generic/patches-2.6.23/50-mips32r2.patch 
--- a/arch/mips/Kconfig.orig    2011-11-12 11:22:20.000000000 +0400
+++ b/arch/mips/Kconfig    2011-11-12 11:22:47.000000000 +0400
@@ -55,7 +55,7 @@
     select DMA_NONCOHERENT
     select IRQ_CPU
     select SWAP_IO_SPACE
-    select SYS_HAS_CPU_MIPS32_R1
+    select SYS_HAS_CPU_MIPS32_R2
     select SYS_SUPPORTS_LITTLE_ENDIAN
     select BOOT_ELF32
     select SYS_SUPPORTS_32BIT_KERNEL

9

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon, в конфиге обязательно должны быть включены опции SYS_HAS_CPU_MIPS32_R1=y и SYS_HAS_CPU_MIPS32_R2=y, хотя для тулчейнса это не принципиально.

Отредактировано IgorGolubev (2011-11-12 13:16:42)

10

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

IgorGolubev, спасибо. Похоже так правильнее, хотя модули ядра собранные при использовании патча, приведенного выше, рабочие. При сборке под mips32r2 возникают небольшие нюансы. Например, не собирается postgesql (Branch out of range) - но он и не нужен, сборка Postgre лезет от зависимости php5. Некоторые странности с libcurl (пришлось добавить --enable-soname-bump в configure).
All Пока думаю не спешить с комитом последних изменений в svn. Достаточно рабочих модулей ядра. Почему mediatomb отвалился сказать пока трудно.

11

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon :

IgorGolubev, спасибо. Похоже так правильнее, хотя модули ядра собранные при использовании патча, приведенного выше, рабочие. При сборке под mips32r2 возникают небольшие нюансы. Например, не собирается postgesql (Branch out of range) - но он и не нужен, сборка Postgre лезет от зависимости php5. Некоторые странности с libcurl (пришлось добавить --enable-soname-bump в configure).
All Пока думаю не спешить с комитом последних изменений в svn. Достаточно рабочих модулей ядра. Почему mediatomb отвалился сказать пока трудно.

Очень странно, флаги оптимизации не должны влиять на сборку, максимум, что можно получить, это не работающий бинарик, но опять таки, можно собирать софт и с обычной оптимизацией mips32, ядро поддерживает R1 и R2. У меня minidlna еще собран с mips32, работает без проблем.

12

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

IgorGolubev, насчет mediatomb - соседняя тема. Я только могу подтвердить, что собранный ранее (R1) mediatomb перестал запускаться. vovic67 собрал вариант с оптимизацией R2, пишет, что и этот вариант не работает.

13

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon :

IgorGolubev, насчет mediatomb - соседняя тема. Я только могу подтвердить, что собранный ранее (R1) mediatomb перестал запускаться. vovic67 собрал вариант с оптимизацией R2, пишет, что и этот вариант не работает.

Могу в этом случае посоветовать сменить binutils на более свежий, из 20х версий, ибо он отвечает за работу бинариков...

Отредактировано IgorGolubev (2011-11-12 21:58:29)

14

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon :

Почему mediatomb отвалился сказать пока трудно.

Может попробовать заменить флаг -Os на -O2 для начало?

15

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Менял -Os на -O2, пробовал binutils-2.20.1, gcc-4.3.3 - все равно mediatomb не стартует. Точнее (во всех, перечисленных вариантах), откликается на mediatomb --compile-info, но в его логе нет записи:
Initialized port: 49153
т.е. все как здесь: http://forum.zyxmon.org/post2869.html#p2869
Не может быть это связано с нижеприведенным пунктом списка изменений к этой прошивке?
9. Решение проблемы с отваливанием DLNA для телевизоров через 30 минут при работе через
встроенный свитч.

Отредактировано vovic67 (2011-11-13 01:30:57)

16

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

vovic67, погоняйте mediatomb под strace:

strace mediatomb -c /media/DISK_A1/system/etc/mediatomb/config.xml -m /media/DISK_A1/system/var/mediatomb
.....
socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP) = 3
socket(PF_NETLINK, SOCK_RAW, 0)         = 4
bind(4, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(4, {sa_family=AF_NETLINK, pid=1552, groups=00000000}, [12]) = 0
time(NULL)                              = 1321163178
sendto(4, "\24\0\0\0\22\0\1\3\252Y\277N\0\0\0\0\0\307\24+", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\0\1\0\0\20\0\2\0\252Y\277N\20\6\0\0\0\0\1\0\1\0\0\0C\20\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 1764
recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\252Y\277N\20\6\0\0\0\0\0\0\1\0\0\0C\20\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(4)                                = 0
ioctl(3, 0x8915, {ifr_name="br0", ifr_addr={AF_INET, inet_addr("10.0.0.12")}}) = 0
close(3)                                = 0
access("/media/DISK_A1/system/var/mediatomb/mediatomb.db", R_OK|W_OK) = 0
pipe([719533264, 6016304])              = 3
clone(child_stack=0x5d7c98, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND) = 1553
write(4, "@\260\342*\5\0\0\0\3204\343*\204V\333\177\1\0\0\0\204\335\340* \5\341*\4\223\22+"..., 148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, ~[KILL STOP RT_1 RT_2], 16) = 0
write(4, "@\260\342*\0\0\0\0\0\0\0\0\4SI\0\340\347[\0\377\376\277\377\374\377\377\377\377\377\377\377"..., 148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, ~[KILL STOP RT_1 RT_2], 16) = 0
rt_sigsuspend(~[KILL STOP RT_0 RT_1 RT_2]) = ? ERESTARTNOHAND (To be restarted)
--- SIGRT_0 (Unknown signal 32) @ 0 (0) ---
sigreturn()                             = ? (mask now [TRAP IOT BUS SEGV ALRM WINCH STOP])
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault

Может будет понятно, что не так. Вызывает подозрение закрытие handle=4, а потом запись в него:
close(4)
....
write(4, ...

Чуть выше в логе:

open("/media/DISK_A1/system/etc/mediatomb/config.xml", O_RDONLY|O_LARGEFILE) = 3
ioctl(3, TIOCNXCL, 0x7fdb56c8)          = -1 ENOTTY (Inappropriate ioctl for device)

Может при сборке сделать --disable-inotify и отключить inotify в конфиге?

17

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon, спасибо, mt падает из-за ошибки сегментации, конец лога:

strace mediatomb -c /media/DISK_A1/system/etc/mediatomb/config.xml -m /media/DISK_A1/system/tmp/mediatomb
......................
......................
access("/media/DISK_A1/system/tmp/mediatomb/mediatomb.db", R_OK|W_OK) = 0
pipe([5642680, 5642680])                = 3
clone(child_stack=0x566068, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND) = 2271
write(4, "\3204\343*\5\0\0\0\3204\343*\204\335\340* \5\341*x)V\0\3204\343*('V\0"..., 148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, ~[KILL STOP RT_1 RT_2], 16) = 0
write(4, "@\260\342*\0\0\0\0\0\0\0\0x\245E\0\330:V\0\377\376\277\377\374\377\377\377\377\377\377\377"..., 148) = 148
rt_sigprocmask(SIG_SETMASK, NULL, ~[KILL STOP RT_1 RT_2], 16) = 0
rt_sigsuspend(~[KILL STOP RT_0 RT_1 RT_2]) = ? ERESTARTNOHAND (To be restarted)
--- SIGRT_0 (Unknown signal 32) @ 0 (0) ---
sigreturn()                             = ? (mask now [TRAP IOT BUS SEGV ALRM WINCH STOP])
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault

Что делать дальше - пока непонятно.

18

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

vovic67 :

падает из-за ошибки сегментации

Достаточно запустить mt руками (не скриптом)
ediatomb -c /media/DISK_A1/system/etc/mediatomb/config.xml -m /media/DISK_A1/system/tmp/mediatomb
и увидим segfault

# mediatomb -c /media/DISK_A1/system/etc/mediatomb/config.xml -m /media/DISK_A1/system/var/mediatomb

MediaTomb UPnP Server version 0.12.1 - http://mediatomb.cc/

===============================================================================
Copyright 2005-2010 Gena Batsyan, Sergey Bostandzhyan, Leonhard Wimmer.
MediaTomb is free software, covered by the GNU General Public License version 2

2011-11-13 11:32:13    INFO: Loading configuration from: /media/DISK_A1/system/etc/mediatomb/config.xml
2011-11-13 11:32:13    INFO: Checking configuration...
2011-11-13 11:32:13    INFO: Setting filesystem import charset to UTF-8
2011-11-13 11:32:13    INFO: Setting metadata import charset to UTF-8
2011-11-13 11:32:13    INFO: Setting playlist charset to UTF-8
2011-11-13 11:32:13    INFO: Configuration check succeeded.
Segmentation fault

19

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Можно запустить с флагом -D в конце, тогда

...
2011-11-13 11:50:58   DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 0 -> 1
2011-11-13 11:50:58   DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 1 -> 2
2011-11-13 11:50:58   DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 2 -> 3
2011-11-13 11:50:58   DEBUG: [../src/singleton.cc:73] registerSingleton(): registering new singleton... - 3 -> 4
2011-11-13 11:50:58   DEBUG: [../src/server.cc:118] upnp_init(): start
Segmentation fault

20

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon, отключение inotify не помогло. Падает после вызова "storage = Storage::getInstance();" ~ 160 строка в server.cc.

Похоже падает в конструкторе Sqlite3Storage.

21

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Зачем так мучится? Нужен gdb и его сервер, собираете mediatomb с ключиком -g при компиляции, сервер gdb весит мало, несколько килобайт, начинайте изучать, как этим пользоваться, хотя бы отсюда
http://sourceware.org/gdb/onlinedocs/gd … tml#Server

22

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon пишет

Похоже падает в конструкторе Sqlite3Storage

Вы близки к истине, собрал mt с mysql, теперь запускается

INFO: Loading configuration from: /media/DISK_A1/system/etc/mediatomb/config.xml
INFO: Checking configuration...
INFO: Setting filesystem import charset to UTF-8
INFO: Setting metadata import charset to UTF-8
INFO: Setting playlist charset to UTF-8
INFO: Configuration check succeeded.INFO: Initialized port: 49153   < с sqlite после этого - Segmentation fault
INFO: Server bound to: 192.168.1.1
INFO: Adding HTTP header "transferMode.dlna.org: Streaming"
INFO: Adding HTTP header "contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000"

но веб-интерфейс не доступен и в логе, все равно, не хватает двух строк

INFO: MediaTomb Web UI can be reached by following this link:
INFO: http://192.168.1.1:49153/

23

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

vovic67, проблема со thread'ами, mutex'ами, wait'ами. Может быть решается ключем (define) типа -D_REENTRANT. Возможно нечто то не так с libpthreads.

24

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon :

Возможно нечто то не так с libpthreads.

Процитировал сам себя, т.к. если установить собранную (новым тулчейном, думаю не важно это) библиотеку libpthread в LD_LIBRARY_PATH, то mediatomb отлично запускается и работает.
Ситуация не очень нравится.

25

Re: ВНИМАНИЕ! В прошивке от 10 ноября 2011г. изменения, которые ...

Zyxmon, все патчи, выложенные McMCC на ixbt, уже есть в нашем тулчейне (md5 совпадают), что еще изменилось.
Ерунду написал, нет патчей 300 и 350 - собираю тулчейн.

Отредактировано vovic67 (2011-11-14 11:07:03)