-
Notifications
You must be signed in to change notification settings - Fork 376
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pulseaudio 12 not working anymore #71
Comments
Can you please run I did a test here with debian on host and in image, and vlc plays sound with The host shows pulseaudio version 11.1, the container 10.0. What is your pulseaudio version? |
Maybe it's a pulseaudio version or GNOME issue. I've installed version I've got the Must be the DBUS session bus address the same in the container like on host, because they are different?
Here are some pulseaudio infos. Do you have the same?
|
Can you also try if it works for you with this Dockerfile (Arch Linux)?
|
dbus warnings are mostly harmless.
What do you see in the GUI of pavucontrol within container? Does it show an error message, or is there an "output devices" tab? If a connection is established, you should see and control your host audio device in "output devices". I will try the Dockerfile you provided. |
The GUI said Here is the Arch Linux VLC Dockerfile.
Edit: added pulseaudio pulseaudio-alsa |
pavucontrol on arch image crashes with a segmentation fault here. I once decided to connect to pulseaudio with shared unix sockets to provide best possible performance. But if it is incompatible now, I may have to provide pulseaudio with a TCP connection instead. |
I did some tests with the VLC Dockerfile/image you've provided. It already shows an error during build, but build finishes:
If I try to run vlc or pavucontrol, both fail with segmentation faults or core dumps. This happens with and without I assume a serious underlying issue in either arch, vlc or pulseaudio. Do you have an idea about those crashes? At least without providing puleaudio from host there should not be a crash. Is there a possibility to install an older pulseaudio version in arch image? Maybe the arch version of pulseaudio is a buggy 'bleeding edge' one. Edit: I've build an image based on debian sid with pulseaudio 12.0. |
Can you run a test with:
debian sid provides pulseaudio 12.0. |
No success, same behaviour with debian. From my pacman logs, pulseaudio should work until version 12.2-1. This may be an interesting pacman log detail, but
At this time it was stop working but it could also be an issue with another package. Here are the full pacman log.
Can you try this Dockerfile (it uses pulseaudio 12.0), it was working for me before system upgrade in august.
So if pulseaudio is working on host, what can be the problem that's not working in the container? Sharing the socket should be enough like for X11 right? Should I mount some other stuff too? |
Maybe it has to do with this new dbus socket. Sharing it with One idea: If the socket is a symbolic link only, sharing with container fails.
Works with shared socket as well as over TCP. I've made an update that allows to use TCP instead of shared socket. |
Quite awesome,
If I run
And this Dockerfile does not work for you via socket?
Is there anything that I can do to help to bring pulseaudio socket back to work? Or maybe we wait a month or so and see if it works with new updates again? This depends on your ideas how to debug. ;-) In the meantime I can live with tcp. Thank you very much for your effort. I highly appreciate it. |
It works with both TCP and shared socket.
Please test with pulseaudio:
Maybe we can check again after next arch pulseaudio update. If it turns out that socket sharing failes for pulseaudio >=12.0 on host due to internal API changes, x11docker will have to default to TCP. Maybe if I set up an arch VM, I could do further tests. I already have one, but it fails to run updates and is quite outdated. Because I am not familar with arch and it was not easy to install, I hesitate do install it again. |
It doesn't work either. No worries. So let's wait for new updates.
I don't understand this, because my Docker images have the same pulseaudio version like the host or what do you mean with API changes? Ok, maybe some other package has not the same version like on host due the base Docker image difference. Again, no worries. Let's wait for a new update round. |
You are right, that should work at least with same versions on host and in image. One idea: There is some sort of pulseaudio cookie for authentication. I did not need it before, would have to look for it. Maybe x11docker just needs to share the cookie. I am not sure where the cookie file resides. But it is shown in Try: Edit: another attempt is to use environment variable Try:
|
I don't have a
|
On host it is stored in X11 environment variables, done by pulseaudio.
Maybe it just needs to be shared with container. Though,
x11docker loads a pulseaudio TCP module authenticated with IP address of container:
|
I've to run |
It is better to check with |
x11docker now copies Maybe it is just a pulseaudio configuration issue. If the cookie does not help, a look at daemon configuration on host may help. x11docker creates this
Edit: I found that x11docker shared the whole |
Can't get a socket pulseaudio connection in pavucontrol with the new version, only tcp works. Here are my configs:
|
On the first glance I do not see anything suspicious in the config files. I did a deep change for
If this fails on your system, you may try to disable In container variable
You can try whether removing |
I did a test in a new arch VM with pulseaudio 12.2 and image built with:
It works! 🎉 |
Confirmed 🎉 👍 It works now with So x11docker must load it's own socket?
Again, thank you very much for your effort. 👏 |
:-)
Yes. I am not sure why sharing the regular socket fails. Probably some sort of authentication issue, although we tried to share the cookie.
You are welcome. Maybe you could help me? If you happen to have a Windows 10 installation (on host, not in VM), you could run some tests for me. I yet finished experimental pulseaudio support for MSYS2, Cygwin and WSL on Windows. I was hoping for 1138-4EB to do some tests (#70), but it seems he is too busy. |
I'm sorry, I don't have a Windows machine. |
@mviereck I just want to let you know that I have upgraded my Arch Linux system and Docker images to latest versions and current x11docker master does not work, but x11docker version 5.2 works fine. It can't connect to pulseaudio server. Nothing special in the logs. Do you have made any changes in master for pulseaudio since version 5.2? |
Thanks for reporting! It is fixed now.
I did a great code change putting the long linear code flow into functions() and creating a short main() routine that gives an easier overview of x11docker code flow.
I got this in terminal without the logs: ;-)
|
Thank you for fixing it. :-) I didn't noticed this warning. It works now with current master. |
I don't know if this issue is related to x11docker, but maybe someone has some hints for me to solve it.
After an upgrade of different packages inclusive pulseaudio and nvidia driver (arch linux), pulseaudio has stopped working with Docker. Downgrading of pulseaudio has no effect. For example vlc error message is
vlcpulse audio output error: PulseAudio server connection failure: Timeout
. It's not connection refused! See logsvlc_docker.log
If I install vlc on host system, it can connect to pulseaudio via socket and sound is working. See logs
vlc_host.log
Pulseaudio native is mounted to the container but I don't know why it can not connect anymore. Any hints appreciated.
The text was updated successfully, but these errors were encountered: