Docker:JACK服务器未运行

时间:2016-06-21 22:21:43

标签: audio docker ros pulseaudio jack

我正在运行一系列带有ROS的docker容器,用于控制机器人。其中一个容器必须通过sound_play包播放一些音频文件。但是它会返回错误

Cannot connect to server socket err = No such file or directory  
Cannot connect to server request channel  
jack server is not running or cannot be started

我能够从容器内部aplay音频(.wav)文件,我的声卡肯定被识别,我也尝试在特权模式下运行容器。我还试图在容器中单独安装jackd并启动一个插孔服务器,但得到错误

Cannot lock down 82274202 byte memory area (Cannot allocate memory).  
Bus error (core dumped)

我对这个问题的理解是否正确?如果是这样,我怎样才能让杰克服务器在容器内启动?

1 个答案:

答案 0 :(得分:4)

我通过安装jackd1代替jackd2解决了这个问题,因为很明显,jackd2需要实时优先级,而我无法提供给docker容器。 jackd1虽然做到了这一点 我的Dockerfile:

FROM ubuntu:14.04
RUN apt-get update && apt-get install -y jackd1

运行命令:

docker run -it --rm --privileged=true --device=/dev/snd:/dev/snd myContainerName jackd -R -d alsa -d hw:1

这将启动容器中的插孔服务器。之后sound_play节点工作正常。

http://crunchbang.org/forums/viewtopic.php?id=33530

的部分学分