Dear readers,
I'm running my own distro built w/ Yocto and my /etc/asound.conf is seemingly
ignored entirely.
I have been working at figuring out why for 3 days already and am running out
of ideas. I would welcome any help the readers of this list can kindly spare.
The hardware platform is a Raspberry Pi 3 B+ with a Hifiberrry DAC connected
over I2S.
The software environment is a custom Linux distro built w/ Yocto. Kernel is
5.15.34. ALSA is 1.2.6. No other audio backend (e.g. Pipewire) is installed.
The system has 3 working soundcards (see aplay -l output below), with matching
PCMs.
I reproduce the issue with a small simple /etc/asound.conf containing :
pcm.volumioHw {
type hw
card "sndrpihifiberry"
}
Thank you for your time & consideration,
Guillaume
——————————————————————————
I have tried quite a few things already:
1) setting CONFIG_SND_DEBUG=y & CONFIG_SND_DEBUG_VERBOSE=y and making sure
/sys/module/snd/parameters/debug = 2
—> Not much in journaldNothing relevant as far as I can tell
2) checking if the soundcard's kernel module has a debug flag which we can
enable with "modinfo -p”
—> no option available for snd_soc_rpi_simple_soundcard
3) checking every path listed in /usr/share/alsa/alsa.conf for conflicting conf
files
• /var/lib/alsa/conf.d
• /usr/etc/alsa/conf.d
• /etc/alsa/conf.d
• /etc/asound.conf
• /usr/etc/asound.conf
• ~/.asoundrc
• $XDG_CONFIG_HOME/alsa/asoundrc
—> only my /etc/asound.conf exists
——————————————————————————
There are also things I HAVEN’T tried:
1) stracing whatever handles conf files parsing. I don’t know what process to
actually strace.
2) enabling kernel dynamic debug. I don’t know what module to enable debug logs
for.
——————————————————————————
Here is the output of alsa-info.sh for further reference:
upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.5.1
!!################################
!!Script ran on: Wed Mar 29 15:36:21 UTC 2023
!!Linux Distribution
!!------------------
!!DMI Information
!!---------------
Manufacturer:
Product Name:
Product Version:
Firmware Version:
System SKU:
Board Vendor:
Board Name:
!!ACPI Device Status Information
!!---------------
!!Kernel Information
!!------------------
Kernel release: 5.15.34-v8
Operating System: GNU/Linux
Architecture: aarch64
Processor: unknown
SMP Enabled: Yes
!!ALSA Version
!!------------
Driver version: k5.15.34-v8
Library version: 1.2.6.1
Utilities version: 1.2.6
!!Loaded ALSA modules
!!-------------------
!!Sound Servers on this system
!!----------------------------
No sound servers found.
!!Soundcards recognised by ALSA
!!-----------------------------
0 [b1 ]: bcm2835_hdmi - bcm2835 HDMI 1
bcm2835 HDMI 1
1 [Headphones ]: bcm2835_headpho - bcm2835 Headphones
bcm2835 Headphones
2 [sndrpihifiberry]: RPi-simple - snd_rpi_hifiberry_dac
snd_rpi_hifiberry_dac
!!Modprobe options (Sound related)
!!--------------------------------
snd_bcm2835: enable_compat_alsa=0
snd_bcm2835: enable_hdmi=1
!!Loaded sound module options
!!---------------------------
!!Sysfs card info
!!---------------
!!Card: /sys/class/sound/card0
Driver: /sys/bus/platform/drivers/bcm2835_audio
Tree:
/sys/class/sound/card0
|-- controlC0
| |-- dev
| |-- device -> ../../card0
| |-- power
| |-- subsystem -> ../../../../../../../../class/sound
| `-- uevent
|-- device -> ../../../bcm2835_audio
|-- id
|-- number
|-- pcmC0D0p
| |-- dev
| |-- device -> ../../card0
| |-- pcm_class
| |-- power
| |-- subsystem -> ../../../../../../../../class/sound
| `-- uevent
|-- power
| |-- autosuspend_delay_ms
| |-- control
| |-- runtime_active_time
| |-- runtime_status
| `-- runtime_suspended_time
|-- subsystem -> ../../../../../../../class/sound
`-- uevent
!!Card: /sys/class/sound/card1
Driver: /sys/bus/platform/drivers/bcm2835_audio
Tree:
/sys/class/sound/card1
|-- controlC1
| |-- dev
| |-- device -> ../../card1
| |-- power
| |-- subsystem -> ../../../../../../../../class/sound
| `-- uevent
|-- device -> ../../../bcm2835_audio
|-- id
|-- number
|-- pcmC1D0p
| |-- dev
| |-- device -> ../../card1
| |-- pcm_class
| |-- power
| |-- subsystem -> ../../../../../../../../class/sound
| `-- uevent
|-- power
| |-- autosuspend_delay_ms
| |-- control
| |-- runtime_active_time
| |-- runtime_status
| `-- runtime_suspended_time
|-- subsystem -> ../../../../../../../class/sound
`-- uevent
!!Card: /sys/class/sound/card2
Driver: /sys/bus/platform/drivers/snd-rpi-simple
Tree:
/sys/class/sound/card2
|-- controlC2
| |-- dev
| |-- device -> ../../card2
| |-- power
| |-- subsystem -> ../../../../../../../class/sound
| `-- uevent
|-- device -> ../../../soc:sound
|-- id
|-- number
|-- pcmC2D0p
| |-- dev
| |-- device -> ../../card2
| |-- pcm_class
| |-- power
| |-- subsystem -> ../../../../../../../class/sound
| `-- uevent
|-- power
| |-- autosuspend_delay_ms
| |-- control
| |-- runtime_active_time
| |-- runtime_status
| `-- runtime_suspended_time
|-- subsystem -> ../../../../../../class/sound
`-- uevent
!!ALSA Device nodes
!!-----------------
crw-rw---- 1 root audio 116, 0 Mar 29 17:07 /dev/snd/controlC0
crw-rw---- 1 root audio 116, 32 Mar 29 17:07 /dev/snd/controlC1
crw-rw---- 1 root audio 116, 64 Mar 29 17:07 /dev/snd/controlC2
crw-rw---- 1 root audio 116, 16 Mar 29 17:07 /dev/snd/pcmC0D0p
crw-rw---- 1 root audio 116, 48 Mar 29 17:07 /dev/snd/pcmC1D0p
crw-rw---- 1 root audio 116, 80 Mar 29 17:07 /dev/snd/pcmC2D0p
crw-rw---- 1 root audio 116, 1 Mar 29 17:07 /dev/snd/seq
crw-rw---- 1 root audio 116, 33 Mar 29 17:07 /dev/snd/timer
/dev/snd/by-path:
drwxr-xr-x 2 root root 80 Mar 29 17:07 .
drwxr-xr-x 3 root root 220 Mar 29 17:07 ..
lrwxrwxrwx 1 root root 12 Mar 29 17:07 platform-bcm2835_audio
-> ../controlC1
lrwxrwxrwx 1 root root 12 Mar 29 17:07 platform-soc:sound ->
../controlC2
!!ALSA configuration files
!!------------------------
!!System wide config file (/etc/asound.conf)
pcm.volumioHw {
type hw
card "sndrpihifiberry"
}
!!Aplay/Arecord output
!!--------------------
APLAY
**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835
Headphones]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 2: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi
pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
ARECORD
**** List of CAPTURE Hardware Devices ****
!!Amixer output
!!-------------
!!-------Mixer controls for card b1
Card sysdefault:0 'b1'/'bcm2835 HDMI 1'
Mixer name : 'Broadcom Mixer'
Components : ''
Controls : 2
Simple ctrls : 1
Simple mixer control 'HDMI',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback -10239 - 400
Mono: Playback 0 [96%] [0.00dB] [on]
!!-------Mixer controls for card Headphones
Card sysdefault:1 'Headphones'/'bcm2835 Headphones'
Mixer name : 'Broadcom Mixer'
Components : ''
Controls : 2
Simple ctrls : 1
Simple mixer control 'Headphone',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback -10239 - 400
Mono: Playback -2000 [77%] [-20.00dB] [on]
!!-------Mixer controls for card sndrpihifiberry
Card sysdefault:2 'sndrpihifiberry'/'snd_rpi_hifiberry_dac'
Mixer name : ''
Components : ''
Controls : 0
Simple ctrls : 0
!!Alsactl output
!!--------------
--startcollapse--
state.b1 {
control.1 {
iface MIXER
name 'HDMI Playback Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '-10239 - 400'
dbmin -9999999
dbmax 400
dbvalue.0 0
}
}
control.2 {
iface MIXER
name 'HDMI Playback Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
}
state.Headphones {
control.1 {
iface MIXER
name 'Headphone Playback Volume'
value -2000
comment {
access 'read write'
type INTEGER
count 1
range '-10239 - 400'
dbmin -9999999
dbmax 400
dbvalue.0 -2000
}
}
control.2 {
iface MIXER
name 'Headphone Playback Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
}
state.sndrpihifiberry {
control {
}
}
--endcollapse--
!!All Loaded Modules
!!------------------
bcm2835_codec
bcm2835_isp
bcm2835_mmal_vchiq
bcm2835_v4l2
fuse
ipv6
mc
nfsd
raspberrypi_hwmon
regmap_mmio
rfkill
sch_fq_codel
sdhci_iproc
snd_bcm2835
snd_soc_bcm2835_i2s
snd_soc_pcm5102a
snd_soc_rpi_simple_soundcard
uio
uio_pdrv_genirq
v4l2_mem2mem
vc_sm_cma
videobuf2_common
videobuf2_dma_contig
videobuf2_memops
videobuf2_v4l2
videobuf2_vmalloc
videodev
!!ALSA/HDA dmesg
!!--------------
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 249984
[ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1
snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1
video=HDMI-A-1:1920x1080M@60 vc_mem.mem_base=0x3ec00000
vc_mem.mem_size=0x40000000 dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2
rootfstype=ext4 rootwait logo.nologo
[ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576
bytes, linear)
--
[ 3.291709] of_cfs_init: OK
[ 3.298933] ALSA device list:
[ 3.304440] No soundcards found.
[ 3.310735] Waiting for root device /dev/mmcblk0p2...
--
[ 6.836072] audit: type=1334 audit(1680102470.170:3): prog-id=6 op=LOAD
[ 7.621873] snd_bcm2835: module is from the staging directory, the quality
is unknown, you have been warned.
[ 7.633856] vc_sm_cma: module is from the staging directory, the quality is
unknown, you have been warned.
--
[ 7.651720] [vc_sm_connected_init]: start
[ 7.700969] bcm2835_audio bcm2835_audio: card created with 4 channels
[ 7.726147] mc: Linux media interface: v0.10
[ 7.740401] [vc_sm_connected_init]: installed successfully
[ 7.747054] bcm2835_audio bcm2835_audio: card created with 4 channels
[ 7.896829] videodev: Linux video capture interface: v2.00
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user