# pulsaudio funktioniert nach dem Zufallsprinzip

## pablo_supertux

Hi

danke der neuen skype Version, die pulseaudio verwendet, muss ich nun pulseaudio starten, wenn ich skype nutzen will. Leider funktioniert pulseaudio bei mir nur nach dem Zufallsprinzip: manchmal geht es ohne Probleme, manchmal nicht, und obwohl ich keine Änderungen am System vorgenommen habe.

Manchmal habe ich bemekrt, dass der symlink von ~/.pulse/<some hexa number>-runtime (bei mir immer c7c70f062effe5e005eb418852699b9b) auf /tmp/pulse-XXX nicht stimmt. Wenn ich die ganzen ~/.pulse/c7* Dateien gelöscht habe und pulseaudio wieder gestartet habe, hat es meistens wieder funktioniert.

Heute will das selbst nicht klappen. Dann habe ich mir gedacht, ich schau mir genauer den Inhalt der Dateien an und diese Zeit sind mir aufgefallen:

c7c70f062effe5e005eb418852699b9b-default-sink und c7c70f062effe5e005eb418852699b9b-default-source

```

cat c7c70f062effe5e005eb418852699b9b-default-sink

alsa_output.pci-0000_01_00.1.hdmi-stereo

cat c7c70f062effe5e005eb418852699b9b-default-source 

alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor

```

das hat mich stützig gemacht, denn

```

lspci | grep Audio

00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)

01:00.1 Audio device: NVIDIA Corporation GK106 HDMI Audio Controller (rev a1)

```

zeigt mir, dass pulseaudio den Ausgang der Nvidia Karte nutzen will. Also habe ich gesucht, wie ich das ändern kann und hab dann "pacmd list-sinks" gefunden:

```

pacmd list-sinks

1 sink(s) available.

  * index: 0

   name: <alsa_output.pci-0000_01_00.1.hdmi-stereo>

   driver: <module-alsa-card.c>

   flags: HARDWARE DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY

   state: IDLE

   suspend cause: 

   priority: 9050

   volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB

           balance 0.00

   base volume: 65536 / 100% / 0.00 dB

   volume steps: 65537

   muted: no

   current latency: 1999.68 ms

   max request: 344 KiB

   max rewind: 344 KiB

   monitor source: 0

   sample spec: s16le 2ch 44100Hz

   channel map: front-left,front-right

                Stereo

   used by: 0

   linked by: 0

   configured latency: 1999.82 ms; range is 0.50 .. 1999.82 ms

   card: 0 <alsa_card.pci-0000_01_00.1>

   module: 6

   properties:

      alsa.resolution_bits = "16"

      device.api = "alsa"

      device.class = "sound"

      alsa.class = "generic"

      alsa.subclass = "generic-mix"

      alsa.name = "HDMI 0"

      alsa.id = "HDMI 0"

      alsa.subdevice = "0"

      alsa.subdevice_name = "subdevice #0"

      alsa.device = "3"

      alsa.card = "1"

      alsa.card_name = "HDA NVidia"

      alsa.long_card_name = "HDA NVidia at 0xf7080000 irq 17"

      alsa.driver_name = "snd_hda_intel"

      device.bus_path = "pci-0000:01:00.1"

      sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1"

      device.bus = "pci"

      device.vendor.id = "10de"

      device.vendor.name = "NVIDIA Corporation"

      device.product.id = "0e0b"

      device.product.name = "GK106 HDMI Audio Controller"

      device.string = "hdmi:1"

      device.buffering.buffer_size = "352768"

      device.buffering.fragment_size = "176384"

      device.access_mode = "mmap+timer"

      device.profile.name = "hdmi-stereo"

      device.profile.description = "Digital Stereo (HDMI)"

      device.description = "GK106 HDMI Audio Controller Digital Stereo (HDMI)"

      alsa.mixer_name = "Nvidia GPU 41 HDMI/DP"

      alsa.components = "HDA:10de0041,1043842c,00100100"

      module-udev-detect.discovered = "1"

      device.icon_name = "audio-card-pci"

   ports:

      hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)

         properties:

            device.icon_name = "video-display"

   active port: <hdmi-output-0>

```

ok, das erklärt, warum ich noch nichts hören kann.

Meine default Sound Karte funktioniert, ohne pulseaudio kann ich audio von allen Programmen hören, aplay zeigt

```

aplay -L

null

    Discard all samples (playback) or generate zero samples (capture)

pulse

    PulseAudio Sound Server

default:CARD=PCH

    HDA Intel PCH, ALC887-VD Analog

    Default Audio Device

sysdefault:CARD=PCH

    HDA Intel PCH, ALC887-VD Analog

    Default Audio Device

front:CARD=PCH,DEV=0

    HDA Intel PCH, ALC887-VD Analog

    Front speakers

surround40:CARD=PCH,DEV=0

    HDA Intel PCH, ALC887-VD Analog

    4.0 Surround output to Front and Rear speakers

surround41:CARD=PCH,DEV=0

    HDA Intel PCH, ALC887-VD Analog

    4.1 Surround output to Front, Rear and Subwoofer speakers

surround50:CARD=PCH,DEV=0

    HDA Intel PCH, ALC887-VD Analog

    5.0 Surround output to Front, Center and Rear speakers

surround51:CARD=PCH,DEV=0

    HDA Intel PCH, ALC887-VD Analog

    5.1 Surround output to Front, Center, Rear and Subwoofer speakers

surround71:CARD=PCH,DEV=0

    HDA Intel PCH, ALC887-VD Analog

    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers

iec958:CARD=PCH,DEV=0

    HDA Intel PCH, ALC887-VD Digital

    IEC958 (S/PDIF) Digital Audio Output

hdmi:CARD=PCH,DEV=0

    HDA Intel PCH, HDMI 0

    HDMI Audio Output

hdmi:CARD=NVidia,DEV=0

    HDA NVidia, HDMI 0

    HDMI Audio Output

hdmi:CARD=NVidia,DEV=1

    HDA NVidia, HDMI 1

    HDMI Audio Output

hdmi:CARD=NVidia,DEV=2

    HDA NVidia, HDMI 2

    HDMI Audio Output

```

ich habe in Wochen nicht mal ein world update gemacht, also wird sich an meinem System nichts geändert habe, doch pulseaudio findet nur ein Sink: die Nvidia Karte. Die Frage ist nun warum? Kann es sein, dass mir ein bestimmten Modul fehlt, was ich noch laden muss? Es hat doch früher funktioniert, also muss das ganze irgendwo da sein. SND_HDA_INTEL ist im Kernel auf y gesetzt, ich weiß nicht, was ich noch machen soll.

Kennt jemand das Problem?

----------

## mv

Mit dem pulseaudio-Gemurkse kann ich Dir nicht helfen.

Da Du aber - wie ich - pulseaudio nur wegen skype willst: Vielleicht geht die pulseaudio-Emulation apulse bei Dir (einfach skype mit den USE-flags "apulse -pulseaudio" installierten und das verbuggte pulseaudio wieder von der Platte hauen).

----------

## Christian99

Es könnte sein, dass dein anderes audio device schon von alsa belegt ist, dann wird pulseaudio das bereits belegte ignorieren und somit nur hdmi anzeigen.

Du könntest versuchen, alles, das irgendwie die soundkarte belegen könnte abzustellen und pulseaudio neu starten. Wenn du pulseaudio verwenden möchtest musst du das "exclusiv" machen, also alles sollte seine soundasugabe über pulseaudio machen, nur für ein programm pulseauido wird probleme machen. da solltest du die variante von mv nehmen. Aber auch für programme, die pulseaudio nicht nativ unterstützen gibt es eine art alsa kompatibilitäts layer. Ich hab schon seit Jahren gute Erfahrungen mit pulseaudio.

----------

## pablo_supertux

och gott, ich hasse pulseaudio, das macht nur Ärger.

Ich hab wenigstens eine Lösung gefunden. Ich musste

```

load-module module-alsa-sink

load-module module-alsa-source device=hw:0,0

load-module module-null-sink

load-module module-pipe-sink

```

in /etc/pulse/default.pa reinmachen, vor allem "load-module module-alsa-source device=hw:0,0" hat geholfen.

Ich werde dennoch mvs Vorschlag ausprobieren

danke

----------

## pablo_supertux

ich habe heute apulse mit einem debian 6 ausprobiert, es hat funktioniert (musste per Hand die Sachen installieren)

nun will ich das auf meinem Gentoo (amd64) ausprobieren und hab pulseaudio & skype deinstalliert und dann

```

# emerge skype -pv

...

The following keyword changes are necessary to proceed:

 (see "package.accept_keywords" in the portage(5) man page for more details)

# required by net-im/skype-4.3.0.37-r3[apulse]

# required by skype (argument)

=media-sound/apulse-0.1.2-r2 ~amd64

The following USE changes are necessary to proceed:

 (see "package.use" in the portage(5) man page for more details)

# required by net-im/skype-4.3.0.37-r3[apulse]

# required by skype (argument)

>=media-sound/apulse-0.1.2-r2 abi_x86_32

```

dann habe ich die beiden Zeilen in packahe.accept_keywords & package.use hinzugefügt aber bekomme weiterhin

```

emerge: there are no ebuilds to satisfy "media-libs/alsa-lib[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?]".

(dependency required by "media-sound/apulse-0.1.2-r2" [ebuild])

(dependency required by "net-im/skype-4.3.0.37-r3[apulse]" [ebuild])

(dependency required by "skype" [argument])

```

ein emerge media-libs/alsa-lib -pv zeigt

```

[ebuild   R    ] media-libs/alsa-lib-1.0.28  USE="-alisp -debug -doc -python" ABI_X86="(64) (-32) (-x32)" PYTHON_TARGETS="python2_7" 0 kB

```

also will es noch nicht alsa-lib mit 32bit kompilieren, auch wenn ich ">=media-libs/alsa-lib-1.0.28  abi_x86_32" in package.use hinzugefügt habe.

Was soll ich nun machen?

----------

## mv

Das abi_x86_32-Flag ist "stable-masked". Lies Dir am besten den englishen Thread durch.

----------

## pablo_supertux

danke für den Link, werde mir später genauer duchrlesen

----------

## pablo_supertux

so, ich hab nun -abi_x86_32 in /etc/portage/profile/use.mask, wie im englischen Thread vorgeschlagen und konnte alles neu installieren.

Wenn ich apulse skype starte, bekomme ich

```

ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.0.28/work/alsa-lib-1.0.28/src/conf.c:3325:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so

ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.0.28/work/alsa-lib-1.0.28/src/pcm/pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default

[apulse] [error] do_connect_pcm, snd_pcm_open, No such file or directory

[apulse] [error] do_connect_pcm, snd_pcm_open, No such file or directory

```

aber sound ist nach wie vor nicht vorhanden, nachdem ich pulseaudio deinstalliert habe, geht bei mir nichts mehr...

```

emerge @preserved-rebuild -pv

Calculating dependencies... done!

[ebuild   R    ] media-plugins/alsa-plugins-1.0.28  USE="ffmpeg -debug -jack -libsamplerate -pulseaudio* -speex" ABI_X86="(64) -32 (-x32)" 0 kB

[ebuild   R    ] media-video/mplayer2-2.0_p20130428-r1  USE="X alsa cdio directfb dvd dvdnav enca gif iconv ipv6 jpeg lcms libass mmx mng mp3 network opengl png postproc quvi shm sse sse2 threads unicode xscreensaver xv -3dnow -3dnowext (-altivec) (-aqua) -bluray -bs2b -cddb -cpudetection -debug -doc -dvb -ftp -jack -joystick -ladspa -libcaca -lirc -md5sum -mmxext -oss -pnm -portaudio -pulseaudio -pvr -radio -samba (-selinux) -ssse3 -symlink -tga -v4l -vcd -vdpau -xinerama -yuv4mpeg" 1,867 kB

[ebuild   R    ] app-emulation/emul-linux-x86-medialibs-20140508-r6  USE="development" ABI_X86="-32" 11,058 kB

[ebuild  N     ] app-emulation/emul-linux-x86-soundlibs-20140508  USE="alsa development (-pulseaudio)" ABI_X86="-32" 7,090 kB

[ebuild   R    ] app-emulation/emul-linux-x86-sdl-20140508-r1  USE="development" ABI_X86="-32" 0 kB

[ebuild     U  ] net-libs/webkit-gtk-2.4.4-r1:3/25 [2.2.6:3/29] USE="X%* egl geoloc gstreamer introspection jit opengl spell webgl (-aqua) -coverage -debug -gles2 -libsecret {-test} -wayland%" 0 kB

[ebuild     U  ] net-libs/webkit-gtk-2.4.4-r201:2 [2.4.4-r200:2] USE="X egl geoloc gstreamer introspection jit opengl spell webgl (-aqua) -coverage -debug -gles2 -libsecret {-test}" 0 kB

[blocks B      ] app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)] ("app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]" is blocking media-libs/alsa-lib-1.0.28)

```

um apulse zu installieren, musste ich app-emulation/emul-linux-x86-soundlibs schon deinstallieren. Jetzt habe ich apulse und skype wieder entfernt, aber bekomme nach wie vor die selbe Fehlermeldung. Wo habe ich nun den Fehler?

ps: wenn ich -abi_x86_32 von /etc/portage/profile/use.mask entferne, dann verschwinden alle blocks. Welche libs muss ich nun mit 32 neu kompilieren?

----------

## mv

 *pablo_supertux wrote:*   

> Wenn ich apulse skype starte

 

Einfach nur "skype" nicht "apulse skype".

Ich vermute aber, dass Dein Problem ist, dass Du noch alsa-plugins[pulseaudio] installiert hast. Du brauchst alsa-plugins überhaupt nicht.

Der Zweck von alisa-plugins ist, bei Audio-Ausgabe über alsa pulseaudio zu benutzen: Auf die Weise hast Du die Kette apulse->alsa->pulseaudio, die natürlich nicht funktioniert.

----------

## pablo_supertux

Danke für die Erklärung. Ich habe den ganzen Abend mit rebuilds verbracht und nachdem ich apulse installiert habe, habe ich bemerkt, dass ich audio in skype hatte, obwohl ich nicht "apulse skype" verwendet habe (auf dem debian system, das ich zuvor getestet habe, ging skype nur wenn ich "apulse skype" gestartet hab.

Ich werde morgen wahrscheinlich nochmal versuchen, indem ich die threads nochmal lese. Grad habe ich alles auf pulseaudio zurückgestellt und emerge zeigt mir noch

```

!!! existing preserved libs:

>>> package: app-emulation/emul-linux-x86-soundlibs-20140508

 *  - /usr/lib32/libasound.so.2

 *  - /usr/lib32/libasound.so.2.0.0

 *      used by /usr/lib32/alsa-lib/libasound_module_conf_pulse.so (app-emulation/emul-linux-x86-soundlibs-20140508)

 *      used by /usr/lib32/alsa-lib/libasound_module_ctl_arcam_av.so (app-emulation/emul-linux-x86-soundlibs-20140508)

 *      used by /usr/lib32/alsa-lib/libasound_module_ctl_equal.so (app-emulation/emul-linux-x86-soundlibs-20140508)

 *      used by 30 other files

>>> package: media-libs/alsa-lib-1.0.28

 *  - /usr/lib32/libasound.so.2

 *  - /usr/lib32/libasound.so.2.0.0

 *      used by /usr/lib32/alsa-lib/libasound_module_conf_pulse.so (app-emulation/emul-linux-x86-soundlibs-20140508)

 *      used by /usr/lib32/alsa-lib/libasound_module_ctl_arcam_av.so (app-emulation/emul-linux-x86-soundlibs-20140508)

 *      used by /usr/lib32/alsa-lib/libasound_module_ctl_equal.so (app-emulation/emul-linux-x86-soundlibs-20140508)

 *      used by 30 other files

```

und egal wie oft ich emerge @preserved-rebuild ausführe, die Meldungen verschwinden nicht, diese Pakete

```

[ebuild   R    ] app-emulation/emul-linux-x86-medialibs-20140508-r6  USE="development" ABI_X86="(-32)" 0 kB

[ebuild   R    ] app-emulation/emul-linux-x86-soundlibs-20140508  USE="alsa development (-pulseaudio)" ABI_X86="(-32)" 0 kB

[ebuild   R    ] app-emulation/emul-linux-x86-sdl-20140508-r1  USE="development" ABI_X86="(-32)" 0 kB

```

wollen stets neu kompiliert werden.

Also, was ich dann machen muss ist ?:

- pulseaudio deinstallieren und -pulseaudio in den USE flags setzen, wo ich früher pulseaudio hatte

- alsa-plugins deinstallieren oder nur das pulseaudio flag entfernen?

- app-emulation/emul-linux-x86-soundlibs  entfernen (was machen diese ganzen emul-* Pakete? Ich habe in deinem Post im engl. Thread gesehen, dass es ein Profil gibt, bei dem diese Pakete gemaskt sind)

- skype mit apulse neu installieren und nur mit "apulse" installieren. Wieso brauche ich hier nur "skype" zu starten und nicht "apulse skype"? Und vor allem, bei welchen Paketen soll ich abi_x86_32 aktivieren?

----------

## mv

 *pablo_supertux wrote:*   

> - alsa-plugins deinstallieren oder nur das pulseaudio flag entfernen?

 

Wenn Du keinen speziellen Grund hast, alsa-plugins zu benutzen, kannst Du es deinstallieren. Für skype wird es nicht benötigt.

 *Quote:*   

> was machen diese ganzen emul-* Pakete?

 

Die emul-*-Pakete sind verkompilierte 32-Bit-Programme. Wenn Du die entsprechenden Programme mit abi_x86_32 übersetzt brauchst Du sie nicht.

Natürlich kannst Du ein Programm entweder mit abi_x86_32 übersetzen oder das entsprechende Programm aus emul-* installieren - nicht beides gleichzeitig.

Die emul-*-Pakete haben den Nachteil, dass sie die Programme mit sehr viel Use-flags kompiliert haben - die wenigsten brauchst Du für skype, wine, acroread - und dass Du einen ganzen Koloss and Programmen damit installierst. Auf Dauer werden sie sicher verschwinden, aber im Moment wird abi_x86_32 eben noch als experimentell betrachtet (und ist deswegen stable-masked, damit es sich Otto-Normaluser nicht installiert und damit in ungetestete Probleme rennt).

 *Quote:*   

> Wieso brauche ich hier nur "skype" zu starten und nicht "apulse skype"?

 

Genau verstehe ich das auch nicht: Skype versucht irgendwie selbständig, pulseaudio zu starten, und aktiviert dabei automatisch apulse.

 *Quote:*   

> Und vor allem, bei welchen Paketen soll ich abi_x86_32 aktivieren?

 

Auf jeden Fall für die, die im Ebuild von skype mit abi_x86_32 gelistet sind (die Liste steht im englischen Forum). Außerdem für alle Abhängigkeiten: Mache sukzessive emerge -NaDu --with-bdeps=y @world und gehe davon aus, dass alle Konflikte durch Hinzufügen von abi_x86_32 für das entsprechende Paket gelöst werden können. Lass Dir vorher das Paket mit eix -vl anzeigen: Wenn die stabile Version des Pakets kein ABI_X86=32 enthält, musst Du die entsprechende instabile Version, die dies tut in package.accept_keywords eintragen.

Du wirst auf eine ziemlich lange Liste kommen...

Und denk daran: Wenn Du acroread installiert hast (oder wine mit ABI_x86=32 für eine 32-Bit-Emulation willst) , musst Du auch deren Abhängigkeiten entsprechend eintragen....

----------

