• 陪伴互联网运营小白共同探索成长,与IT爱好者共享探索乐趣
  • 建站只为分享,欢迎在PC端文章面打赏支持
  • 使用Ctrl+D 可收藏本站

pve8-lxc音画直通HDMI VGA输出系列:声卡篇之常规配置

好玩有趣 陆子方 7天前 43次浏览 0个评论 扫描二维码
文章目录[隐藏]

主机验证

这个不是必须的,但我建议你先验证主机硬件状况。例如有些老的设备可能氧化了,你在lxc中怎么搞都没有声音,结果是宿主机这一端就出问题了。

root@pve:~# apt install alsa-utils -y
root@pve:~# alsamixer
root@pve:~# speaker-test -c 2
speaker-test 1.2.8
Playback device is default

alsamixer。要确保master、headphone这种控制条,不是mm静音状态,应该是00(如是mm,按m键取消)。在speaker-test,音频输出口应该能听到短暂的噪音

宿主机查询声卡情况

发现设备的用户是root,归属于audio组。如果只有seq、timer,查看我上一篇关于更换指定内核的

root@pve:~# ls -l /dev/snd/
total 0
drwxr-xr-x 2 root root 60 Mar 3 06:58 by-path
crw-rw---- 1 root audio 116, 6 Mar 3 06:58 controlC0
crw-rw---- 1 root audio 116, 5 Mar 3 06:58 hwC0D2
crw-rw---- 1 root audio 116, 3 Mar 3 06:58 pcmC0D0c
crw-rw---- 1 root audio 116, 2 Mar 3 06:58 pcmC0D0p
crw-rw---- 1 root audio 116, 4 Mar 3 06:58 pcmC0D2c
crw-rw---- 1 root audio 116, 1 Mar 3 06:58 seq
crw-rw---- 1 root audio 116, 33 Mar 3 06:58 timer

LXC对应组查询

在LXC中查询对应组GID

l@CT101:~$ getent group audio
audio:x:29:pulse,l

LXC配置添加

dev6: /dev/snd/controlC0,gid=29
dev7: /dev/snd/hwC0D2,gid=29
dev8: /dev/snd/pcmC0D0c,gid=29
dev9: /dev/snd/pcmC0D0p,gid=29
dev10: /dev/snd/pcmC0D2c,gid=29
dev11: /dev/snd/seq,gid=29
dev12: /dev/snd/timer,gid=29

LXC中验证权限

权限归属与宿主机一致,无问题。

l@CT101:~$ ls -l /dev/snd/
total 0
crw-rw---- 1 root audio 116, 6 Mar 3 03:48 controlC0
crw-rw---- 1 root audio 116, 5 Mar 3 03:48 hwC0D2
crw-rw---- 1 root audio 116, 3 Mar 3 03:48 pcmC0D0c
crw-rw---- 1 root audio 116, 2 Mar 3 03:48 pcmC0D0p
crw-rw---- 1 root audio 116, 4 Mar 3 03:48 pcmC0D2c
crw-rw---- 1 root audio 116, 1 Mar 3 03:48 seq
crw-rw---- 1 root audio 116, 33 Mar 3 03:48 timer

配置用户权限

如果你新增了一个用户,这个用户大概率是不在audio组,这时你会发现,运行aplay -l命令检查声卡时,root用户可以识别到声卡,用户l识别不到。为此我们需要补充授权。如果你使用root,也会发现里面PulseAudio似乎不希望你以root运行。为此添加一个自己的账户有必要。

root@Xfce:~# adduser l
adduser: The user `l' already exists.
root@Xfce:~# groups l
l : l audio users
root@Xfce:~# usermod -aG audio l
root@Xfce:~# groups l
l : l audio users

配置声音部分

这部分的命令是提供调试和识别使用的,和宿主机上的操作差不多

root@CT101:~# apt install alsa-utils -y
root@CT101:~# alsamixer
root@CT101:~# speaker-test -c 2
speaker-test 1.2.8
Playback device is default

alsamixer。要确保master、headphone这种控制条,不是mm静音状态,应该是00(如是mm,按m键取消)。在speaker-test,音频输出口应该能听到短暂的噪音

查看lxc中声卡是否正常识别
aplay -l查看系统中的所有 ALSA 声卡

root@CT101:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

你还可以指定测试声卡及对应的音频通道。如果上面的默认设置中没有效果,就可以尝试本项,根据自己查到的声卡和设备号修改

speaker-test -D hw:0,0 -c 2

在 PulseAudio 中,device_id=0 代表 第一张 ALSA 声卡,相当于 hw:0(ALSA 设备号)。


子方有料原创丨转载请注明原文链接
期待您的评论或捐赠,这是最好的鼓励和支持!
喜欢 (0)
[赞赏使我快乐]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到