Audacity läuft nur für root richtig

  • Hallo,
    habe folgendes (lästiges, aber nicht lebenswichtiges) Problem:
    Ich habe mir am 23.11. die Version 1.3.4-beta us dem CVS kompiliert: Das Programm läuft einwandfrei ... wenn ich es als root starte. Als normaler Nutzer erhalte ich eine Version, in welcher das Auswahlfenster für die Aufnahmequelle (Mic, Line etc.) fehlt, und dauch die Wiedergabe vorhandener .wav-Dateien nicht möglich ist ("Fehler beim Öffnen des Audiogeräts"). audacity befindet sich im Ordner /usr/local/bin/, aber offenbar werden weitere Dateien benötigt, welche nur root lesen kann.
    (openSuSE 10.3).

  • Der User (di) war tatsächlich nicht für die Gruppe audio angemeldet, welche den Zugriff auf /dev/dsp hat. /dev/dsp hat übrigens die Göße 0 B. Nach Korrektur und Neustart besteht das Problem aber weiterhin. Ich habe Audacity jetzt aus der Konsole gestartet, zunächst als root, dann als user di mit dem beschriebenen Ergebnis: als root funktioniert das Programm problemlos, als user nicht. Hier die Konsolenanzeige:


    di@linux-jys0:~> su
    Passwort:
    linux-jys0:/home/di # audacity
    Launching a SCIM daemon with Socket FrontEnd...
    Loading simple Config module ...
    Creating backend ...
    Loading socket FrontEnd module ...
    Starting SCIM as daemon ...
    GTK Panel of SCIM 1.4.7


    JACK tmpdir identified as [/dev/shm]
    jackd 0.103.0
    Copyright 2001-2005 Paul Davis and others.
    jackd comes with ABSOLUTELY NO WARRANTY
    This is free software, and you are welcome to redistribute it
    under certain conditions; see the file COPYING for details


    JACK compiled with POSIX SHM support.
    /dev/shm/jack-0 already exists, but is not a directory!


    cannot create server sockets
    cannot create engine



    Jetzt als user di:


    linux-jys0:/home/di # su di
    di@linux-jys0:~> audacity
    JACK tmpdir identified as [/dev/shm]
    jackd 0.103.0
    Copyright 2001-2005 Paul Davis and others.
    jackd comes with ABSOLUTELY NO WARRANTY
    This is free software, and you are welcome to redistribute it
    under certain conditions; see the file COPYING for details


    JACK compiled with POSIX SHM support.
    loading driver ..
    creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
    control device hw:0
    configuring for 48000Hz, period = 1024 frames, buffer = 2 periods
    ALSA: final selected sample format for capture: 16bit little-endian
    ALSA: use 2 periods for capture
    ALSA: final selected sample format for playback: 32bit little-endian
    ALSA: use 2 periods for playback
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression '*idev = open( idevName, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 810
    Expression 'OpenDevices( idevName, odevName, &idev, &odev )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 864
    Expression 'PaOssStream_Initialize( stream, inputParameters, outputParameters, streamCallback, userData, streamFlags, ossHostApi )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 1230
    Expression '*idev = open( idevName, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 810
    Expression 'OpenDevices( idevName, odevName, &idev, &odev )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 864
    Expression 'PaOssStream_Initialize( stream, inputParameters, outputParameters, streamCallback, userData, streamFlags, ossHostApi )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 1230
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690
    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690



    **** alsa_pcm: xrun of at least 100.664 msecs




    **** alsa_pcm: xrun of at least 61.152 msecs




    **** alsa_pcm: xrun of at least 1.592 msecs


    di@linux-jys0:~>

  • Diese Meldung:


    Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 690


    bedeutet eindeutig, dass ein OSS-Gerät (/dev/dsp bzw. /dev/dspX) nicht geöffnet werden kann. Kann es sein, dass ein anderes Programm auf /dev/dsp zugreift? Evtl. mal


    lsof /dev/dsp


    eingeben.


    Funktioniert denn die Soundausgabe, wenn Du in den Einstellungen ein anderes Gerät aktivierst, z.B. "ALSA: default"?

  • lsof /dev/dsp ergibt keine Meldung.
    play <Dateiname> spielt richtig ab.
    Andere Geräteeinstellungen als OSS: /dev/dsp funktionieren auch nicht.
    Was mir auffällt: Bei Aufruf als root ist die Oberfläche etwas anders grafisch gestaltet als unter user. Auswahl- und Verlaufsbalken sind dunkler gefärbt, die Abfrage am Ende, ob Änderungen gespeichert werden sollen, glänzt mit einem roten und grünen Knopf, etc. Verschiedene Versionen von wxWidgets?


  • Mensch Markus, auch hier ist eincompilierter JACK support der Knackpunkt. Bitte die 1.3.4-beta ohne JACK Unterstützung compilieren. PortAudio v19 startet irrtümlich den jack daemon und blockiert dadurch Zugriff auf ALSA etc. Siehe auch meine vorherige Antwort im anderen Thema hier im Forum.

  • Ich glaube eher nicht, dass es mit JACK zusammenhängt, denn als root kann ich das Programm ja problemlos ausführen. Aber ich will es gerne probieren. Welche Optionen soll ich bei configure oder make angeben?

  • Das hat nicht zwangsläufig etwas zu bedeuten.


    Fakt ist, auch bei Dir wird beim Starten von Audacity jackd gestartet. Solltest Du leicht prüfen können. Wie ich im anderen Thema schrieb, kannst Du den daemon auch testweise killen, nachdem Audacity gestartet ist.


    "configure" kennt bzgl. JACK noch keine Option. Allenfalls ein nachträgliches cd ./lib-src/portaudio-v19/configure --without-jack // gut möglich, daß sich das oberste configure Skript auch über $JACK_CFLAGS und $JACK_LIBS täuschen läßt, um JACK nicht zu finden. ;)

  • "killall jackd" bei laufendem Audacity hat nicht gebracht.
    Ich habe Audacity mit den configure-Optionen --disable-JACK_CFLAGS und disable-JACK_LIBS neu kompiliert, ohne Erfolg.
    Das Problem muss in meiner Linux-Konfiguration liegen, denn da es für root funktioniert, muss auch für einen user machbar sein.

  • Zitat von graupen


    Ich habe Audacity mit den configure-Optionen --disable-JACK_CFLAGS und disable-JACK_LIBS neu kompiliert, ohne Erfolg.


    Klar, das sind unsinnige Optionen. JACK_CFLAGS und JACK_LIBS sind Umgebungsvariablen, keine Optionen.


    JACK läßt sich nur ausschalten, indem Du die Header und pkgconfig Datei deinstallierst oder PortAudio v19 vorm Compilieren umkonfigurierst (siehe oben).


    Zitat


    "killall jackd" bei laufendem Audacity hat nicht gebracht.


    Dann kill ihn halt über seine PID.

  • Merkwürdig ...
    Ich habe wie empfohlen portaudio v19 mit der Option --without-jack kompiliert, anschließend (wie von make install empfohlen) ldconfig ausgeführt (als root) und den LD_LIBRARY_PATH=/usr/local/lib exportiert (in der .bashrc). Danach Audacity gestratet, und ...Hurra... es funktionierte.
    Nach dem nächsten Systemstart war aber alles wie zuvor. Den LD_LIBRARY_PATH habe ich kontrolliert, er ist noch da.

  • Ich verwende Fedora, möchte daher zu OpenSUSE bzw. vermurksten Zugriffsrechten nix sagen. Die Ausgabe im Terminal ist aber oft hilfreich. Sowie bei Problemen mit device permissions der Vergleich, ob denn andere Audio Programme funktionieren.


    ldconfig auszuführen ist nur notwendig und sinnvoll, sofern auch tatsächlich neue Libraries in die zugehörigen Verzeichnisse (/etc/ld.so.conf*) installiert werden. Audacity installiert hier keine Libs.