Oxw*_*ivi 6 sound lxc libertine
我有两台机器,A 和 B。B 是一台非常旧的机器,我已经在上面安装了 Libertine 中的应用程序,并且听起来效果很好。另一方面,在机器 A 上,声音根本不适用于 Libertine 容器。我该如何诊断?
有趣的是,在机器 A 上,我在 16.10 之前创建了自己的非特权 LXC 容器,声音确实可以工作,并在升级后继续工作;但它不适用于在全新 16.10 安装中使用相同 LXC 的 Libertine。
笔记
libertine并且libertine-scope已安装gtk3编辑编辑
我试过speaker-test在容器中运行。它运行在主机上产生正确的声音,但在容器上,此错误显示:
$ libertine-launch container-name speaker-test -t wav -c 6
speaker-test 1.1.2
Playback device is default
Stream parameters are 48000Hz, S16_LE, 6 channels
WAV file(s)
ALSA lib pcm_dmix.c:1041:(snd_pcm_dmix_open) unable to open slave
Playback open error: -2,No such file or directory
Run Code Online (Sandbox Code Playgroud)
一些研究表明,许多较新的系统(机器 A)通常具有默认设置的 HDMI。您的旧系统(机器 B)可能只有模拟音频,因此这是该系统的默认设置。
发出命令aplay -l来获取音频设备列表,您应该获得类似于以下内容的输出:
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC887-VD Analog [ALC887-VD Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC887-VD Digital [ALC887-VD Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
Run Code Online (Sandbox Code Playgroud)
此输出应帮助您确定要将哪张卡作为默认输出。
查看您需要哪个音频输出(卡 0 设备 0 是 alsa 默认值,可能不是您需要的;在我的情况下,我需要指定卡 1)
使用以下命令在您的主目录中创建一个文件gedit ~/.asoundrc(可以随意用您最喜欢的文本编辑器替换 gedit)
添加以下行:
pcm.!default {
type hw
card *X*
}
ctl.!default {
type hw
card *X*
}
Run Code Online (Sandbox Code Playgroud)
替换我们之前发现的卡号*X*
保存文件并重试。
编辑:我很高兴您能够在 Libertine 下获得 2 个音频通道。关于你的扩展问题。您可以检查 的输出amixer scontrols并确保您选择的输出支持 6 个音频通道,如果是这样,请使用alsamixer确保它们都没有静音,并且您处于 6 通道模式而不是 2 通道模式,如下所示。
要更改通道模式,请alsamixer使用箭头键突出显示Channel如上所示,然后向上或向下箭头选择所需的模式。
资料来源:
man aplay
https://www.alsa-project.org/main/index.php/Asoundrc#The_.asoundrc_file_format