Yocto

Yocto/OE
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

:up:

Hat dir hoffentlich nicht den Feiertag versaut. Wird getestet, sobald der Fix im git ist.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Yocto

Beitrag von seife »

Nein, im Gegenteil: das gibt so einem Feiertag ein wenig Sinn :)
Allerdings hatte ich vergessen, es zu pushen -- das habe ich jetzt nachgeholt.
xupnpd und udpxy sind jetzt auch da, allerdings in funktionierenden Versionen (die init-skripten waren grenzwertig und das xupnpd.lua habe ich bei martii geholt, weil deines nicht auf Anhieb funktionierte).
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

:lol: Ich sag ja, da muss man noch mal drüber schauen. Komisch, bei mir ging das auf der Coolstream sofort. Wie auch immer, vielen Dank dafür :)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Yocto

Beitrag von seife »

Das init skript für xupnpd ging schon (zum starten, beim stoppen erledigt es sich selbst ;-)), aber das für udpxy war wohl für openwrt oder so.
Was das problem mit dem lua file war weiss ich nicht genau, aber als ich das von martii kopiert hatte, ging es sofort :)
Higi
Beiträge: 1
Registriert: Samstag 14. Dezember 2013, 08:47

Re: Yocto

Beitrag von Higi »

Hallo,

ich klinke mich mal hier ein, weil es dort wohl nicht supported wird. Sorry für den Crosspost.
plus der Versuch, für die dbox ein overlay zu bauen
@seife: Kannst du das bitte etwas ausführen, wieso man das so nicht auf der dbox haben wollen würde? Das wäre doch eigentlich ein schöner Ansatz, die Entwicklung von Neutrino SD und Neutrino MP wieder zusammenzuführen.

Danke und Gruss

Higi
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Yocto

Beitrag von seife »

yocto konzentriert sich eher auf aktuelle Software. "Altes glump" macht sich damit eher anstrengend -- siehe mein Tripledragon-Overlay ;-)

Ausserdem ist das tuxbox-CDK seit der einführung der tausendsten "--enable-foobar" Option für mich nicht mehr durchschaubar (war es auch vorher nicht wirklich ;)), und die anzuwendenden Patches um einen Kernelbaum zu erzeugen zu extrahieren war folglich etwas -- anstrengend.
Also habe ich im Zuge des Versuchs des dbox-Overlays auch gleich Kernel 3.12 genommen. Das was dabei rauskam hätte zwar evtl. auf der dbox gebootet, aber ohne Treiber für irgendwas ausser serieller und Netzwerkschnittstelle ist so eine Box heutzutage nicht mehr sonderlich nützlich :-P

Ich habe das dann erst mal liegen lassen, wenn ich die 2 momentan noch fehlenden Plattformen für OE/yocto implementiert habe und mir langweilig ist, dann schaue ich mir das vielleicht nochmals an, aber ich würde mich darauf nicht verlassen ;)

Mit neutrino / neutrino-MP hat das ja nichts zu tun, das kann man in einer beliebigen Umgebung bauen.
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

Ich wollte noch nur kurz Rückmeldung geben, nachdem gestern endlich SD Karte und Technisat-DVBS2 USB für meinen Raspi angekommen sind. DVB Firmware nach /lib/firmware kopiert und sofort ging alles :up: Naja, Remote Control will noch nicht, aber da liegt das Problem sicher bei mir, muss ich noch mal schauen, wenn ich Zeit habe. Laut dmesg sollte das jedenfalls funktionieren. Vielen Dank, klasse Sache !!

edit: zu früh gefreut .... Neutrino startet zwar, ich kann auch eine Kanalsuche durchführen ... aber danach bekomme ich beim Umschalten ständig Segmentation Faults. Ich kann kurz TV Bild sehen, dann hängt das Ding.

Code: Alles auswählen

[LT:b0e02140:audio ] aDec: decoding Audio: mp2, 48000 Hz, stereo, s16p, 256 kb/s
[LT:01a3dc60:demux ] Read read: Value too large for defined data type fd:10, ev:0x0 DMX_VIDEO pid:0x13ed flt:0x00
CRemoteControl::handleMsg: EVT_TUNE_COMPLETE (b45803fb0001283d)
11:06:25.869 [sectionsd] commandserviceChanged: Service change to b45803fb0001283d demux #0
Segmentation fault
Zuletzt geändert von flk am Donnerstag 2. Januar 2014, 21:51, insgesamt 1-mal geändert.
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

doc
Contributor
Beiträge: 1623
Registriert: Donnerstag 10. Januar 2002, 20:03

Re: Yocto

Beitrag von doc »

Nein, mit der Hardwarelizenz wird das nichts zu tun haben. In dem Spam was Neutrino so von sich gibt ist nichts zu sehen warum es da segfaulted. Näheres wird Dir nur ein Backtrace sagen können.

Neutrino mit Debugsymbolen bauen und im GDB laufen lassen. Wenn es gecrasht ist einen backtrace machen.
http://wiki.tuxbox-cvs.sourceforge.net/ ... einrichten

Auf dem Raspberry kannst Du den GDB lokal laufen lassen, ist insgesamt etwas einfacher.
Na schönen Dank Herr Schwanke!
Ein toller Sommer! :-(
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Yocto

Beitrag von seife »

jo, "bitbake gdb" -> damit wird gdb gebaut
auf der box dann: opkg update; opkg install gdb; opkg install neutrino-mp-dbg
dann kannst du direkt im GDB schaun, wo's hängt.
Raspi habe ich jetzt schon länger nicht mehr probiert, und der decoder-Code ist etwas "liebesbedürftig", daß es da knallt wundert mich nicht wirklich :-)
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

Danke für die Tipps, werde ich demnächst versuchen ..... heute geht nicht soooo viel :roll:
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

Ist das in etwa der benötigte Output ?

Code: Alles auswählen

[LT:b1101e00:audio ] calling aDec::~aDec()
[New Thread 0xa59f6450 (LWP 1006)]
[Thread 0xa59f6450 (LWP 1006) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xaf1f6450 (LWP 981)]
codec_queue_free_item (codec=codec@entry=0xb6dff240 <codecs+256>, item=0xb1101438) at codec.c:221
221         free(item->data->buf);
(gdb) bt
#0  codec_queue_free_item (codec=codec@entry=0xb6dff240 <codecs+256>, item=0xb1101438) at codec.c:221
#1  0xb6df0030 in codec_stop0 (codec=0xb6dff240 <codecs+256>, msg=3) at codec.c:99
#2  0xb6de912c in aDec::~aDec (this=0xb1101e00, __in_chrg=<optimized out>) at avdec.cpp:145
#3  0xb6de9184 in aDec::~aDec (this=0xb1101e00, __in_chrg=<optimized out>) at avdec.cpp:149
#4  0xb6de9568 in AVDec::stop_audio (this=<optimized out>) at avdec.cpp:247
#5  0xb6deb134 in cAudio::Stop (this=0x4a90a0) at audio.cpp:86
#6  0x00212d34 in CZapit::StopPlayBack (this=0x4a9fb0, send_pmt=<optimized out>) at zapit.cpp:2234
#7  0x00214854 in CZapit::ZapIt (this=this@entry=0x4a9fb0, channel_id=<optimized out>, 
    forupdate=forupdate@entry=false, startplayback=startplayback@entry=true) at zapit.cpp:527
#8  0x00214c64 in CZapit::ZapTo (this=this@entry=0x4a9fb0, channel_id=260766167360, isSubService=false)
    at zapit.cpp:2319
#9  0x002164f8 in CZapit::ParseCommand (this=0x4a9fb0, rmsg=..., connfd=28) at zapit.cpp:1129
#10 0x0027a4e4 in CBasicServer::parse (this=this@entry=0x4a9ff0, 
    parse_command=parse_command@entry=0x2179d0 <zapit_parse_command(CBasicMessage::Header&, int)>, 
    version=version@entry=7 '\a') at basicserver.cpp:136
#11 0x0027a57c in CBasicServer::run (this=this@entry=0x4a9ff0, 
    parse_command=parse_command@entry=0x2179d0 <zapit_parse_command(CBasicMessage::Header&, int)>, 
    version=version@entry=7 '\a', non_blocking=non_blocking@entry=true) at basicserver.cpp:154
#12 0x002151cc in CZapit::run (this=0x4a9fb0) at zapit.cpp:2532
#13 0xb6d806d8 in OpenThreads::ThreadPrivateActions::StartThread (data=0x4a9fb0)
    at /usr/src/debug/openthreads/0.13083-r1/OpenThreads-svn-13083/src/OpenThreads/pthreads/PThread.cpp:181
#14 0x43d1722c in start_thread (arg=0xaf1f6450) at pthread_create.c:314
#15 0x43ca2db8 in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/clone.S:97 from /lib/libc.so.6
#16 0x43ca2db8 in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/clone.S:97 from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Zuletzt geändert von flk am Donnerstag 2. Januar 2014, 21:50, insgesamt 1-mal geändert.
doc
Contributor
Beiträge: 1623
Registriert: Donnerstag 10. Januar 2002, 20:03

Re: Yocto

Beitrag von doc »

Gib mal bitte

Code: Alles auswählen

thread apply all bt full
ein. Dann sieht man alle beteiligten Threads. Neutrino ist ja inzwischen Multi-threaded.
https://sourceware.org/gdb/onlinedocs/g ... trace.html
Na schönen Dank Herr Schwanke!
Ein toller Sommer! :-(
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

Irgendwie sagt mir das alles nicht viel :-?

Code: Alles auswählen

(gdb) thread apply all bt full

Thread 36 (Thread 0xa69f6450 (LWP 956)):
#0  0x43c9be34 in select () at ../sysdeps/unix/syscall-template.S:81
No locals.
#1  0x001902d4 in mySleep (sec=<optimized out>) at helpers.cpp:51
        timeout = {tv_sec = 0, tv_usec = 453458}
#2  0x001a6390 in CComponentsFrmClock::initClockThread (arg=0x4b41a0)
    at cc_frm_clock.cpp:287
        clock = 0x4b41a0
        count = 1388691820
        format_str_save = {static npos = <optimized out>, 
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x4b461c "%H:%M"}}
#3  0x43d1722c in start_thread (arg=0xa69f6450) at pthread_create.c:314
        pd = 0xa69f6450
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1499503432, 1, 
                -1090521152, 338, 4932144, -1245526848, 0, -1499504756, 
                -1499505072, 1137799676, 0 <repeats 54 times>}, 
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, 
            data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        robust = <optimized out>
        pagesize_m1 = <optimized out>
---Type <return> to continue, or q <return> to quit---
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#4  0x43ca2db8 in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/clone.S:97
   from /lib/libc.so.6
Cannot access memory at address 0xc
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Yocto

Beitrag von seife »

das wäre schon dann fällig, wenn der segfault aufgetreten ist. Aber in dem Fall sagt der gdb ja genau wo's knallt:

Code: Alles auswählen

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xaf1f6450 (LWP 981)]
codec_queue_free_item (codec=codec@entry=0xb6dff240 <codecs+256>, item=0xb1101438) at codec.c:221
221         free(item->data->buf);
mittels
print item->data->buf
bzw
print item->data

wirst du vermutlich feststellen, daß da ein pointer ins nirvana zeigt (oder buf schon mal gefree't wurde).
Wie der ins nirvana kam, das ist der interessantere Teil der Frage :-)
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

Code: Alles auswählen

(gdb) print item->data->buf
Cannot access memory at address 0xfffff448
(gdb) print item->data     
$1 = (struct packet_t *) 0xfffff448
Ich hatte das schon direkt nach dem segfault gemacht ... irgendwie. :blind Aber stimmt, habe das grade nochmal getestet, da kommt jetzt richtig viel Output
gdb.log
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

@dbt

grade ist mir aufgefallen, warum das bei dir Anleitung vom 1. Post nicht funktioniert hat. Da steht

MACHINE =

muss aber heissen

MACHINE ?=

Vielleicht kannst das in deinem Beitrag ändern.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Yocto

Beitrag von seife »

MACHINE =
ist eine stärkere Zuweisung als
MACHINE ?=
(was nur dann greift, wenn MACHINE bisher nicht definiert war). Deswegen muss MACHINE= auch funktionieren.
Was für einen Fehler hast du damit bekommen?

Edit: ich habe hier in meinen verschiedenen builds folgende config:

Code: Alles auswählen

grep ^MACHINE build-*/conf/local.confbuild-hc/conf/local.conf:MACHINE ??= "qemux86"
build-hc/conf/local.conf:MACHINE = "su980"
build-hd1/conf/local.conf:MACHINE ?= "coolstream"
build-RPi/conf/local.conf:MACHINE ?= "raspberrypi"
build-stl/conf/local.conf:MACHINE ??= "qemux86"
build-stl/conf/local.conf:MACHINE = "spark"
build-td/conf/local.conf:MACHINE ??= "qemux86"
build-td/conf/local.conf:MACHINE = "tripledragon"
und die funktionieren alle.
MACHINE ??= ist noch schwächer als MACHINE ?=.
flk
Contributor
Beiträge: 292
Registriert: Donnerstag 21. November 2002, 05:32
Box 1: AX HD51
Image: tuxbox

Re: Yocto

Beitrag von flk »

Ich habe keine Fehler damit. Ich habe das noch nie ohne ? probiert. Mir ist nur aufgefallen, dass MACHINE in der local.conf ein ? hat, und in der Anleitung vom ersten Post nicht. Das man so die Stärke der Zuweisung angeben kann, wusste ich nicht. Ist aber interessant :)