Kannst du mir wegen den Crashes einen Backtrace erstellen? Sorry fürs Thread-Hijacking
UPNP-Plugin im Portage
-
-
john:
Was sind die USE Flags für VLC?
UPNP sollte gehen. Bei mir funktioniert es. Hier meine USE-Flags f. VLC:
ZitatX a52 aac alsa avcodec avformat bidi cdda dbus dts dvbpsi dvd elibc_glibc encode ffmpeg flac gcrypt gnome gnutls httpd kate libass libcaca libnotify libtiger live lua matroska mmx mp3 mpeg ncurses ogg opengl png postproc pulseaudio qt4 sdl shout sse svg swscale taglib theora truetype twolame udev upnp vlm vorbis x264 xcb xml xosd xv
Zitatim ebuild das anzupassen, neu bauen und nacher berichten?
Da muß ich passen. Sowas habe ich noch nie gemacht und weiß auch nicht, wie man das macht, also das ebuild anpassen. Aber notfalls würde ich im Gentoo-Forum nach Hilfe fragen.
So langsam fängt es an, Spaß zu machen.EDIT: Reicht es, wenn ich in /var/lib/layman/gen2ovl-googoo2/media-plugins/vdr-upnp/vdr-upnp-9999.ebuild den Eintrag >=net-libs/libupnp-1.6.14 auf =net-libs/libupnp-1.6.6 ändere?
Interessant ist, daß Johns es mit libupnp 1.6.17 zum Laufen gebracht hat.
Aber methodus hat ja als Voraussetzung die 1.6.6 genannt.
Jörg -
1.6.6 muss es mindestens sein. Ich nutze auch nur die, die bei Ubuntu mitgeliefert werden
-
EDIT: Reicht es, wenn ich in /var/lib/layman/gen2ovl-googoo2/media-plugins/vdr-upnp/vdr-upnp-9999.ebuild den Eintrag >=net-libs/libupnp-1.6.14 auf =net-libs/libupnp-1.6.6 ändere?
Fast. Damit Portage Dir das auch abnimmt musst Du in dem Verzechnis nur noch die Pruefsumme des Ebuilds neu generieren, geht einfach mit
Allerdings, das wird nur bis zum naechsten Syncen des entsprechenden overlays bestand haben, was aber zum Testen reichen wuerde. Aber Methodus hat sich ja inzwischen gemeldet und meint das die Version bloss Mindestvoraussetzung ist, und wenn auch Johns meint es funktioniert mit 1.6.17 kannst Dir diesen Test eigentlich auch sparen.
-
Dafür bekomme ich nicht VLC dazu nach UPNP Servern zu suchen.
Also ich kann so einigermassen sogar in den Recordings browsen, aber nur mit dem PortableApps VLC-1.0.5 unter Windows.
Was sind die USE Flags für VLC?
Unter meinem Sabayon/Gentoo - Mix den ich jetzt mal wieder nach laengerer Zeit gebootet habe findet der VLC zwar den UPnP Server, aber andauernd kommt und geht das kleine "+" Zeichen an welchem man den Tree der freigegebenen "Verzeichnisse" aufklappen koennte (so im Halbsekundentakt etwa, auch konnte ich ganz kurz VDR LiveTV und VDR Recordings mit nochmals "+" davor sehen, aber die sind immer wieder sofort weg. Also die USE flags:
Codemedia-video/vlc-2.0.4(03:42:45 PM 10/28/2012)(X a52 aac aalib alsa avahi avcodec avformat bidi cdda cddb dbus dts dvb dvbpsi dvd egl encode ffmpeg flac fontconfig gcrypt gnutls httpd ieee1394 jack libass libnotify live lua matroska mmx mp3 mpeg musepack ncurses ogg opengl png postproc pulseaudio qt4 rtsp samba sdl skins speex sse svg swscale taglib theora truetype udev upnp v4l vaapi vlm vorbis x264 xcb xml xv -altivec -atmo -audioqueue -bluray -dc1394 -debug -dirac -direct2d -directfb -directx -dshow -dxva2 -fbosd -fluidsynth -gme -gnome -growl -ios-vout -kate -kde -libcaca -libproxy -libsamplerate -libtar -libtiger -linsys -lirc -macosx -macosx-audio -macosx-dialog-provider -macosx-eyetv -macosx-qtkit -macosx-quartztext -macosx-vout -media-library -modplug -mtp -neon -omxil -optimisememory -opus -oss -portaudio -projectm -pvr -run-as-root -schroedinger -sdl-image -shine -shout -sid -sqlite -switcher -twolame -vcdx -waveout -win32codecs -wingdi -wma-fixed -xosd -zvbi ELIBC="glibc")
Ciao, Lucian
-
Danke. Aber das war es nicht.
Die Volltrottel von Entwickler, wer kommt den auf Idee UPnP in die Playlist zupacken?
Habe den gleichen Effekt:vlc meint:
Code[0x7f6d9c1abf18] upnp services discovery error: UPNP_E_INVALID_HANDLE when trying the send() action with URL: http://192.168.1.9:49154/services/cds_control [0x7f6d9c1abf18] upnp services discovery error: No response from browse() action ...
vdr loggt:
CodeDec 29 01:32:01 magic vdr: [10521] UPnP Action request: Browse Dec 29 01:32:02 magic vdr: [10520] UPnP Action request: Browse
Johns
-
Von wann ist die Version, die ihr verwendet? Ich habe gestern bzw. vorgestern Änderungen vorgenommen, die das ständige Flackern im VLC beheben sollen. Der VLC aktualisiert immer den kompletten Container, in dem er die Liste löscht und neu anlegt, was als Flackern sichtbar wird. Das passiert etwa aller 2 Sekunden, weshalb man gaaaanz kurz die Aufnahmen zu gesicht bekommt.
Ich nutze zudem eine relativ neue Version des VLC, keine Ahnung, wie die älteren Varianten funktionieren.
-
Mein vdr-upnp ist von gestern Abend. Habe das Plugin gerade neu gebaut.
Vlc ist 2.0.5.
1265 /etc/vdr/channels.confJohns
-
Dann muss ich mir das nochmal mit SAT angucken, die wenigen Kanäle bei mir mit DVB-T scheinen keine Auswirkungen zu haben.
-
Hallo,
habe das ebuild geändert (hat auf Anhieb geklappt) und nun das UPNP-Plugin mit libupnp 1.6.6 kompiliert.
Es funktioniert zwar immer noch nicht, aber die Fehler haben sich geändert.ZitatDec 29 20:06:26 mtpcenter vdr: [9967] initializing plugin: upnp (1.0.0): UPnP/DLNA compliant Media Server functionality for VDR
Dec 29 20:06:26 mtpcenter vdr: [9967] UPnP Initializing UPnP media server on 192.168.1.19:0
Dec 29 20:06:26 mtpcenter vdr: [9967] UPnP Initialising webserver
Dec 29 20:06:26 mtpcenter vdr: [9967] UPnP Using /etc/vdr/plugins/upnp/httpdocs/ for static content delivery.
Dec 29 20:06:26 mtpcenter vdr: [9967] UPnP Initialising media manager
Dec 29 20:06:26 mtpcenter vdr: [9967] UPnP Exception occurred while connecting to database '/etc/vdr/plugins/upnp/metadata.db': /usr/lib/tntdb/libtntdb3-sqlite.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
Dec 29 20:06:26 mtpcenter vdr: [9967] UPnP Failed to initialise the media manager....
Dec 29 20:06:28 mtpcenter kernel: vdr[9967]: segfault at 0 ip b6c01fce sp bfece220 error 4 in libtntdb.so.3.0.0[b6be7000+3b000]Die letzte Zeile macht mir am meisten Sorgen.
Bei mir ist alles (noch) 32bit - also x86. Das sollte eigentlich kein Problem sein. Aber trotzdem mal so als Frage: hat jemand das Plugin auf x86 laufen? -
Die libtntdb fehlt. Die müsstest du noch installieren oder der Ort, wo das Plugin die Lib sucht ist falsch. Das müsste dann ein Linker-Fehler sein.
-
Zitat
Die libtntdb fehlt.
Nee, das "Problem" war, daß tntdb nicht mit dem sqlite-Flag installiert war.
Leider funktioniert es noch immer nicht.
ZitatDec 29 21:10:18 mtpcenter vdr: [12621] initializing plugin: upnp (1.0.0): UPnP/DLNA compliant Media Server functionality for VDR
Dec 29 21:10:18 mtpcenter vdr: [12621] UPnP Initializing UPnP media server on 192.168.1.19:0
Dec 29 21:10:18 mtpcenter vdr: [12648] section handler thread started (pid=12621, tid=12648, prio=low)
Dec 29 21:10:18 mtpcenter vdr: [12647] tuner on frontend 1/0 thread started (pid=12621, tid=12647, prio=high)
Dec 29 21:10:18 mtpcenter vdr: [12621] UPnP Initialising webserver
Dec 29 21:10:18 mtpcenter vdr: [12621] UPnP Using /etc/vdr/plugins/upnp/httpdocs/ for static content delivery.
Dec 29 21:10:18 mtpcenter vdr: [12621] UPnP Initialising media manager
Dec 29 21:10:18 mtpcenter vdr: [12621] UPnP Preparing database structure...
Dec 29 21:10:18 mtpcenter kernel: vdr[12621]: segfault at 4e ip b73cfbb6 sp bfc5b354 error 4 in libc-2.15.so[b734e000+17f000]Aber irgendwie muß es mit dem UPnP-Plugin zu tun haben, denn ohne dieses Plugin läuft VDR.
-
Kannst du mir nen Stacktrace schicken?
-
Zitat
Kannst du mir nen Stacktrace schicken?
Wie mache ich diesen? Habe ich noch nie getan.
-
-
Zitat
dann sollte "Speicherzugriffsfehler (Speicherabzug geschrieben" dastehen.
Funktioniert irgendwie nicht. Wo sollte core stehen? Ist das richtig, wenn ich vdr via /etc/init.d/vdr start anstarte?
gdb habe ich installiert. bt - woher bekomme ich das? -
bt ist ein befehl im GDB. Das Core-File wird i.d.R. im Verzeichnis angelegt wo der VDR gestartet wurde.
-
Ich komme hier nicht weiter. Dann werde ich mal wg. dem core bei den Gentoo-Kollegen nach Hilfe fragen. Ich melde mich.
-
Hallo Joerg,
Ich komme hier nicht weiter. Dann werde ich mal wg. dem core bei den Gentoo-Kollegen nach Hilfe fragen. Ich melde mich.
mit Gentoo hat das hoechstens zu tun, wie man beim Emergen der Pakete dafuer sorgt, dass sie Debugging-Infos auch tatsaechlich enthalten, sogar ohne die ebuilds zu manipulieren...
aber zuerst zum Backtrace. Ich habe es mir folgendermassen einfach gemacht:- beim Systemstart fuehre ich folgendes script aus: Code
HTPC2 ~ # cat /usr/local/bin/debug_setup_coredump.sh #!/bin/bash COREDIR="/var/corefiles" mkdir -p ${COREDIR} chmod 777 ${COREDIR} echo "${COREDIR}/%e(%p).uid=%u_%t.coredump" > /proc/sys/kernel/core_pattern ulimit -c unlimited
Dieses sorgt dafuer, sofern der Kernel so konfiguriert wurde, dass unter /var/corefiles immer die coredumps, benannt nach Prozessname, PID, User und Datum abgelegt werden.
- Nun sind diese dumps reichlich grosse Dateien, mit denen man direkt nichts anfangen kann, dafuer jagt man sie durch den gdb um den backtrace da heraus zu bekommen. Dafuer rufe ich von Zeit zu Zeit von Hand mein Skript debug_core2bt.sh auf, welches aus den vorhandenen coredumps in Textdateien die backtraces extrahiert, mit Hilfe des anderne Skriptes, debug_get_bt.sh:Code
Alles anzeigenHTPC2 ~ # cat /usr/local/bin/debug_get_bt.sh #!/bin/bash EXEFILE="${1}" COREFILE="${2}" CORE_MTIME="$(stat $COREFILE | grep Modify | sed -e "s@Modify: @@")" BTFILE="${COREFILE}.backtrace.txt" gdb_get_backtrace() { local exe=$1 local core=$2 gdb ${exe} \ --core ${core} \ --batch \ --quiet \ -ex "thread apply all bt full" \ -ex "quit" } gdb_get_backtrace "${EXEFILE}" "${COREFILE}" 2>&1 > "${BTFILE}" #transfer mtime touch --no-create --time=mtime --date="${CORE_MTIME}" "${BTFILE}"
Code
Alles anzeigenHTPC2 ~ # cat /usr/local/bin/debug_core2bt.sh #!/bin/bash COREDIR="/var/corefiles" cd ${COREDIR} for corefile in $(ls *.coredump 2> /dev/null); do exefile="$(echo $corefile | cut -d'(' -f 1)" for exepath in /usr/bin/$exefile /usr/lib64/${exefile/.bin//}/$exefile ; do if [ -x $exepath ]; then if [ $exepath = /usr/lib/xbmc/xbmc.bin ]; then continue fi #echo "${exepath}" debug_get_bt.sh ${exepath} ${corefile} rm ${corefile} fi done done
Probier das mal, und schau wie hilfreich die Info in den Backtraces ist. Falls die Pakete nicht allzuviel debug-Info mit sich fuehren, kannst fuer jene Pakete die Du mit mehr debug-Info beim Emergen versehen willst, folgendes machen (jetzt wird es Gentoo-spezifisch):
- erstelle die Datei /etc/portage/env/splitdebug.conf mit folgendem Inhalt, damit die so emerge-ten Pakete die debug-Symbole in einem separatem Verzeichnis-baum ablegen:
- fuer jedes Paket (vdr, vdr Plugin), erstelle folgende Datei in der entsprechendn Kathegorie/Paket Verzeichnisstruktur, mit folgendem (gleichem Inhalt, Du kannst sie bei Bedarf symlinken, hier als Beispiel fuer den VDR selber):Code
Alles anzeigenpre_pkg_setup() { # if use debug; then local x for x in nostrip splitdebug ; do if ! has $x $FEATURES ; then elog "bashrc is adding $x to FEATURES for \"$PN\"" FEATURES="$FEATURES $x" elog "FEATURES for \"$PN\" is now \"$FEATURES\"" fi done elog "old CFLAGS for \"$PN\" are \"$CFLAGS\"" elog "old CXXFLAGS for \"$PN\" are \"$CXXFLAGS\"" elog "old LDFLAGS for \"$PN\" are \"$LDFLAGS\"" elog "bashrc is removing \"-O2\", \"-O1\" and \"-fomit-frame-pointer\" from CFLAGS/CXXFLAGS/LDFLAGS for \"$PN\"" CFLAGS="${CFLAGS/ -O2/}" CFLAGS="${CFLAGS/ -O1/}" CFLAGS="${CFLAGS/ -fomit-frame-pointer/}" CFLAGS="${CFLAGS/-O2 }" CFLAGS="${CFLAGS/-O1 }" CFLAGS="${CFLAGS/-fomit-frame-pointer }" CFLAGS="${CFLAGS/-O2/}" CFLAGS="${CFLAGS/-O1/}" CFLAGS="${CFLAGS/-fomit-frame-pointer/}" LDFLAGS="${LDFLAGS/-O2/-O0}" LDFLAGS="${LDFLAGS/-O1/-O0}" elog "bashrc is adding \"-ggdb -O0\" to CFLAGS/CXXFLAGS/LDFLAGS for \"$PN\"" CFLAGS="${CFLAGS} -g -ggdb -O0" LDFLAGS="${LDFLAGS} -Wl,-ggdb" CXXFLAGS="${CFLAGS}" elog "new CFLAGS for \"$PN\" are \"$CFLAGS\"" elog "new CXXFLAGS for \"$PN\" are \"$CXXFLAGS\"" elog "new LDFLAGS for \"$PN\" are \"$LDFLAGS\"" # fi }
Du merkst viellecht dass die Abfrage des "debug" USE/flags auskommentiert ist, was dazu fuehrt dass immer Debug-Symbole bleiben.
- Fuer plugins habe ich es mir hier wieder leicht gemacht und in /etc/portage/env/media-plugins folgendes skript gelegt, welches mir die obige Datei fuer alle installierten VDR-Plugins symlinkt, man kann die unerwuenschten danach immer noch loeschen:
- Den gleichen Trick mit einem Skript brauchst Du in /etc/portage/package.env:Code
cat /etc/portage/package.env/._add_vdrplugins_2_splitdebug.sh #!/bin/bash for plugin in $(vdrplugin-rebuild -X list | grep / | cut -d' ' -f2); do echo "$plugin splitdebug.conf" >> splitdebug; done
damit splitdebug auch fuer die entsprechenden Pakete greift. Achja, media-video/vdr solltest Du manuell in die erstellte Datei auch einfuegen.
Hoffe das hilft... Lucian
- beim Systemstart fuehre ich folgendes script aus:
-
Allen ein gesundes und erfolgreiches neues Jahr.
Wg. dem Coredump erstellen habe ich gestern noch etwas herumexperimentiert, um VDR von der Kommandozeile zu starten. Und siehe da, VDR starte mit UPnP-Plugin. Hatte dann aber keine Zeit mehr weiterzuforschen (Bereitschaft FFw über Silvester - bin gerade erst wieder 'rein). Ich schaue mir das im Laufe der Woche nochmal in Ruhe an. D.h. dann auch, ich muß das ganze Startskript unter /etc/init.d/ zerlegen. Ob ich dazu die Zeit finde?
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!