I thought just pass char device to container will be fine, but not.
Step I have done:
ls -l /dev/snd/
crw-rw---- 1 root audio 116, 6 controlC0
crw-rw---- 1 root audio 116, 5 midiC0D0
crw-rw---- 1 root audio 116, 3 pcmC0D0c
crw-rw---- 1 root audio 116, 2 pcmC0D0p
crw-rw---- 1 root audio 116, 4 pcmC0D1p
crw-rw---- 1 root audio 116, 1 seq
crw-rw---- 1 root audio 116, 33 timer
Add all of them in profile, audio group is 29 in container:
config: {}
description: sound device
devices:
controlC0:
gid: "29"
mode: "0660"
path: /dev/snd/controlC0
required: "false"
source: /dev/snd/controlC0
type: unix-char
midiC0D0:
gid: "29"
mode: "0660"
path: /dev/snd/midiC0D0
required: "false"
source: /dev/snd/midiC0D0
type: unix-char
pcmC0D0c:
gid: "29"
mode: "0660"
path: /dev/snd/pcmC0D0c
required: "false"
source: /dev/snd/pcmC0D0c
type: unix-char
pcmC0D0p:
gid: "29"
mode: "0660"
path: /dev/snd/pcmC0D0p
required: "false"
source: /dev/snd/pcmC0D0p
type: unix-char
pcmC0D1p:
gid: "29"
mode: "0660"
path: /dev/snd/pcmC0D1p
required: "false"
source: /dev/snd/pcmC0D1p
type: unix-char
seq:
gid: "29"
mode: "0660"
path: /dev/snd/seq
required: "false"
source: /dev/snd/seq
type: unix-char
timer:
gid: "29"
mode: "0660"
path: /dev/snd/timer
required: "false"
source: /dev/snd/timer
type: unix-char
Add profile to container.
Install packages:
apt install pipewire-audio alsa-utils -y
Create a user with audio group:
useradd -m -G audio -s /bin/bash username
Change to new user: su -l username
List device:
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: AudioPCI [Ensoniq AudioPCI], device 1: ES1371/2 [ES1371 DAC1]
Subdevices: 1/1
Subdevice #0: subdevice #0
Testing:
aplay -D hw:0 /usr/share/sounds/alsa/Front_Center.wav
NO sound.

