28.04.2017, 09:19 UTC+1

Вы не зарегистрированы.

1455

Участник

Сообщения: 1 437

Благодарностей: 486

601

07.12.2016, 15:41

Raider05, по результатам надёжности я бы пока остановился на 14.04-i386. В таком окружении почти не уступает VDR с выводом через xineliboutput.

1455

Участник

Сообщения: 1 437

Благодарностей: 486

602

14.12.2016, 09:19

Для сборки на 16.04 необходимо убедиться, чтобы не было установлено никаких других версий swig, кроме той, что указана в скрипте. А именно, если установлен swig3.0, то при вызове системных плагинов "Настройка позиционера" и "Поиск спутника" будет вылет:

Исходный текст

1
File "/usr/local/e2/lib/enigma2/python/enigma.py", line 2786, in __init__     raise AttributeError("No constructor defined")

Нужно что-то исправлять под новую версию swig. На мысль навела эта тема.
Исправил скрипт для 16.04, указав swig2.0.

1455

Участник

Сообщения: 1 437

Благодарностей: 486

603

01.01.2017, 17:24

Привет, Raider05!
По поводу заголовков dvb, на просторах сети нашёл гораздо лучшее решение для сборки на 16.04 с gcc5. В файлах tuxbox.m4, которые в папках /enigma2/m4 и /plugins-enigma2/m4 замени:

Исходный текст

1
2
-	DVB_API_VERSION=`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`
+	DVB_API_VERSION=`(eval "$ac_cpp -traditional-cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | $EGREP "^version" | sed "s,version\ ,,"`

Пока с гребёнкой *.png не разобрался.
Можешь качнуть тут. Очень много исправлений, включая откровенные ошибки питоновских файлов.

Это сообщение уже редактировалось 1, последний раз пользователем »1455« (08.02.2017, 09:45)


Спасибо сказали 2 пользователей .

Пользователи , которые поблагодарили:

Raider05 (06.01.2017), schpuntik (01.01.2017)

1455

Участник

Сообщения: 1 437

Благодарностей: 486

604

08.02.2017, 10:03

У кого есть время, убедительно прошу протестировать на платформе x86_64. Интересует закономерность - будет ли всегда крах на разном железе.
У меня на 64-дистре один из 3...5-и запусков удачный, а в основном, ошибка сегментирования при переключении каналов, возврате на видео из радио, либо при выходе из плагинов настройки позиционера и поиска сигнала. Причём, core получается без указания конкретного места ошибки, хотя gdb это может. С помощью другого отладчика выяснил, что крах происходит при обращении к libdvbcsa. Пишут, что ошибка сегментации происходит если указатель или нулевой, или указывает на произвольный участок памяти (возможно, потому что не был инициализирован), или указывает на удаленный участок памяти.
Такое впечатление, что именно от балды выделяется память и иногда удачно. Либо это dvbsoftwareca, либо decsa.

Например:

Исходный текст

1
2
3
4
5
6
gdb ./enigma2
run
continue
...
continue
bt

Если начать с открытого канала, то:

Исходный текст

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
XINE STARTED !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
STILL, FIRST, CONTROL, SEEK FRAME
RECEIVED XINE_EVENT_SET_VIDEO_STREAMTYPE
RECEIVED XINE_EVENT_SET_AUDIO_STREAMTYPE
[Thread 0x7fffae9c2700 (LWP 25535) exited]
[New Thread 0x7fffae9c2700 (LWP 25537)]
Start live TV!
[eFilePushThreadRecorder] *read error* (Неправильный дескриптор файла) - aborting thread because i don't know what else to do.
[eDVBRecordFileThread] waiting for aio to complete
[eDVBRecordFileThread] buffer usage histogram (320 buffers of 188 kB)
[eDVBRecordFileThread]   1:      8
[eDVBRecordFileThread]   2:      1
[eFilePushThreadRecorder] THREAD STOP
I have XINE event ---  2
xine_event_handler(): event->type: 2
[eFilePushThreadRecorder] stopping thread.
Thread 18 "enigma2" received signal SIGUSR1, User defined signal 1.
[Switching to Thread 0x7fffb41e6700 (LWP 25528)]
_dl_unload_cache () at dl-cache.c:322
322	dl-cache.c: Нет такого файла или каталога.
(gdb) bt
#0  _dl_unload_cache () at dl-cache.c:322
#1  0x00007ffff7debbe0 in _dl_open (file=0x7ffff42644f7 "libgcc_s.so.1", 
    mode=-2147483647, caller_dlopen=0x7ffff426291b <pthread_cancel_init+43>, 
    nsid=<optimized out>, argc=<optimized out>, argv=<optimized out>, 
    env=0x11dcbd0) at dl-open.c:665
#2  0x00007ffff3fca9bd in do_dlopen (ptr=ptr@entry=0x7fffb41e5d60)
    at dl-libc.c:87
#3  0x00007ffff7de7394 in _dl_catch_error (objname=0x7fffb41e5d50, 
    errstring=0x7fffb41e5d58, mallocedp=0x7fffb41e5d4f, 
    operate=0x7ffff3fca980 <do_dlopen>, args=0x7fffb41e5d60) at dl-error.c:187
#4  0x00007ffff3fcaa74 in dlerror_run (args=0x7fffb41e5d60, 
    operate=0x7ffff3fca980 <do_dlopen>) at dl-libc.c:46
#5  __GI___libc_dlopen_mode (name=name@entry=0x7ffff42644f7 "libgcc_s.so.1", 
    mode=mode@entry=-2147483647) at dl-libc.c:163
#6  0x00007ffff426291b in pthread_cancel_init ()
    at ../sysdeps/nptl/unwind-forcedunwind.c:52
#7  0x00007ffff4262b04 in _Unwind_ForcedUnwind (exc=0x7fffb41e6d70, 
    stop=0x7ffff4260ef0 <unwind_stop>, stop_argument=0x7fffb41e5e20)
    at ../sysdeps/nptl/unwind-forcedunwind.c:126
#8  0x00007ffff4261070 in __GI___pthread_unwind (buf=<optimized out>)
    at unwind.c:121
#9  0x00007ffff4259845 in __do_cancel () at pthreadP.h:283
#10 __pthread_exit (value=<optimized out>) at pthread_exit.c:28

Если начинать с закрытого.
Либо:

Исходный текст

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Thread 18 "enigma2" received signal SIGUSR1, User defined signal 1.
[Switching to Thread 0x7fffb41e6700 (LWP 26765)]
0x00007ffff4f24779 in dvbcsa_bs_block_decrypt_batch ()
   from /usr/lib/x86_64-linux-gnu/libdvbcsa.so.1
(gdb) bt
#0  0x00007ffff4f24779 in dvbcsa_bs_block_decrypt_batch ()
   from /usr/lib/x86_64-linux-gnu/libdvbcsa.so.1
#1  0x00007ffff4f24202 in dvbcsa_bs_decrypt ()
   from /usr/lib/x86_64-linux-gnu/libdvbcsa.so.1
#2  0x000000000051ca2d in cDeCSA::Decrypt(unsigned char*, int, int&) ()
#3  0x000000000048cdba in eDecryptRawFile::getPackets(int&) ()
#4  0x000000000048cf45 in eDecryptRawFile::read(long, void*, unsigned long) ()
#5  0x0000000000489ef8 in eFilePushThreadRecorder::thread() ()
#6  0x000000000048d501 in eThread::wrapper(void*) ()
#7  0x00007ffff42586ba in start_thread (arg=0x7fffb41e6700)
    at pthread_create.c:333
#8  0x00007ffff3f8e82d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Либо:

Исходный текст

1
2
3
4
5
6
7
8
Thread 18 "enigma2" received signal SIGUSR1, User defined signal 1.
[Switching to Thread 0x7fffb41e6700 (LWP 24387)]
0x00007ffff4f24740 in dvbcsa_bs_block_decrypt_batch ()
   from /usr/lib/x86_64-linux-gnu/libdvbcsa.so.1
(gdb) bt
#0  0x00007ffff4f24786 in dvbcsa_bs_block_decrypt_batch ()
   from /usr/lib/x86_64-linux-gnu/libdvbcsa.so.1
Backtrace stopped: Cannot access memory at address 0x7fffb41e5bf8

Фраза 'dl-cache.c: Нет такого файла или каталога' откуда вылезла? А 'Cannot access memory at address 0x7fffb41e5bf8' говорит о попытке записи в участок памяти с пометкой "для чтения".

В итоге:

Исходный текст

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
...
Thread 432 "enigma2" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffb41e6700 (LWP 8325)]
0x00007ffff4f24f28 in dvbcsa_bs_stream_cipher_batch ()
   from /usr/lib/x86_64-linux-gnu/libdvbcsa.so.1

(gdb) bt
#0  0x00007ffff4f24f28 in dvbcsa_bs_stream_cipher_batch ()
   from /usr/lib/x86_64-linux-gnu/libdvbcsa.so.1
#1  0x00007ffff4f241f5 in dvbcsa_bs_decrypt ()
   from /usr/lib/x86_64-linux-gnu/libdvbcsa.so.1
#2  0x000000000051ca2d in cDeCSA::Decrypt(unsigned char*, int, int&) ()
#3  0x000000000048cdba in eDecryptRawFile::getPackets(int&) ()
#4  0x000000000048cf45 in eDecryptRawFile::read(long, void*, unsigned long) ()
#5  0x0000000000489ef8 in eFilePushThreadRecorder::thread() ()
#6  0x000000000048d501 in eThread::wrapper(void*) ()
#7  0x00007ffff42586ba in start_thread (arg=0x7fffb41e6700)
    at pthread_create.c:333
#8  0x00007ffff3f8e82d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

(gdb) list
1	../sysdeps/unix/sysv/linux/x86_64/clone.S: Нет такого файла или каталога.


Возможно, это ошибка libglib (C++ wrapper for the GLib toolkit (shared libraries)), описанная ЗДЕСЬ?

Это сообщение уже редактировалось 5, последний раз пользователем »1455« (08.02.2017, 13:31)


1455

Участник

Сообщения: 1 437

Благодарностей: 486

605

14.02.2017, 22:42

Нашёл причину в decsa.cpp. Это была безымянная функция, с которой оно лезло в libdvbcsa. Вообще, за эти года народ много тут поломал. :)
Теперь у меня на платформе x86_64 больше не падает при переключении или выходе из плагинов настройки позиционера или поиска сигнала. Остались ещё некоторые траблы, связанные с x86_64, но уже менее принципиальные.

Постоянная ссылка в подписи, чтобы не искать.

Спасибо сказал 1 пользователей .

Пользователи , которые поблагодарили:

Raider05 (16.02.2017)

1455

Участник

Сообщения: 1 437

Благодарностей: 486

606

16.02.2017, 18:20

Починил bsod.cpp для x86_64. Крэш-лог создаётся в /media/hdd без кракозяблов. На i386 это никак не отразилось, ей всё равно.

1455

Участник

Сообщения: 1 437

Благодарностей: 486

607

18.02.2017, 17:11

Сделал автоопределение разрядности и версии системы без патчей. Просто ./INSTALL_ALL.sh. При желании можно и по частям. Ну, чтобы бэбики потом не доставали. :)

1455

Участник

Сообщения: 1 437

Благодарностей: 486

608

27.02.2017, 18:57

Сравните работу каналов Трико с сегодняшней версией и отпишитесь, плиз.

Похожие темы