-
Notifications
You must be signed in to change notification settings - Fork 61
Description
TLDR: The build system has incorrect behavior when detecting audio development libraries, leading to incorrect build outcomes. Additionally, when PortAudio is built with JACK support, the final linking fails due to missing -ljack
in LDFLAGS.
Here I got two different error when just clone and build the emulator via make check
accross my three environment. The first one is that the audio library detection was incorrect. The environment below should not pass the alsa check:
mes@Mes:~/home/semu$ echo 'int main(){}' | gcc -x c - -lasound -o /dev/null 2>&1 && echo "ALSA: OK" || echo "ALSA: FAILED"
/usr/bin/ld: cannot find -lasound: No such file or directory
collect2: error: ld returned 1 exit status
ALSA: FAILED
But it pass, so it get the linker error:
mes@Mes:~/home/semu$ make check
<stdin>:1:11: fatal error: pulse/mainloop.h: No such file or directory
compilation terminated.
make -C mini-gdbstub/
make[1]: Entering directory '/home/mes/home/semu/mini-gdbstub'
cc -c -Iinclude -Wall -Wextra -MMD -O3 ./lib/gdbstub.c -o build/gdbstub.o
cc -c -Iinclude -Wall -Wextra -MMD -O3 ./lib/utils/csum.c -o build/csum.o
cc -c -Iinclude -Wall -Wextra -MMD -O3 ./lib/utils/translate.c -o build/translate.o
cc -c -Iinclude -Wall -Wextra -MMD -O3 ./lib/packet.c -o build/packet.o
cc -c -Iinclude -Wall -Wextra -MMD -O3 ./lib/regbuf.c -o build/regbuf.o
cc -c -Iinclude -Wall -Wextra -MMD -O3 ./lib/conn.c -o build/conn.o
ar -rcs build/libgdbstub.a build/gdbstub.o build/csum.o build/translate.o build/packet.o build/regbuf.o build/conn.o
make[1]: Leaving directory '/home/mes/home/semu/mini-gdbstub'
make -C minislirp/src/
make[1]: Entering directory '/home/mes/home/semu/minislirp/src'
gcc -o arp_table.o -c arp_table.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o bootp.o -c bootp.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o cksum.o -c cksum.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o dhcpv6.o -c dhcpv6.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o dnssearch.o -c dnssearch.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o if.o -c if.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o ip6_icmp.o -c ip6_icmp.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o ip6_input.o -c ip6_input.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o ip6_output.o -c ip6_output.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o ip_icmp.o -c ip_icmp.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o ip_input.o -c ip_input.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o ip_output.o -c ip_output.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o mbuf.o -c mbuf.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o misc.o -c misc.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o ncsi.o -c ncsi.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o ndp_table.o -c ndp_table.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o sbuf.o -c sbuf.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o slirp.o -c slirp.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o socket.o -c socket.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o state.o -c state.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o stream.o -c stream.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o tcp_input.o -c tcp_input.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o tcp_output.o -c tcp_output.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o tcp_subr.o -c tcp_subr.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o tcp_timer.o -c tcp_timer.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o tftp.o -c tftp.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o tinyglib.o -c tinyglib.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o udp6.o -c udp6.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o udp.o -c udp.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o util.o -c util.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o version.o -c version.c -DBUILDING_LIBSLIRP -O2 -fPIC
gcc -o vmstate.o -c vmstate.c -DBUILDING_LIBSLIRP -O2 -fPIC
ar rcs libslirp.a arp_table.o bootp.o cksum.o dhcpv6.o dnssearch.o if.o ip6_icmp.o ip6_input.o ip6_output.o ip_icmp.o ip_input.o ip_output.o mbuf.o misc.o ncsi.o ndp_table.o sbuf.o slirp.o socket.o state.o stream.o tcp_input.o tcp_output.o tcp_subr.o tcp_timer.o tftp.o tinyglib.o udp6.o udp.o util.o version.o vmstate.o
make[1]: Leaving directory '/home/mes/home/semu/minislirp/src'
CC riscv.o
CC ram.o
CC utils.o
CC plic.o
CC uart.o
CC main.o
CC aclint.o
CC virtio-blk.o
CC virtio-rng.o
CC virtio-net.o
CC netdev.o
CC slirp.o
CC virtio-snd.o
LD semu
/usr/bin/ld: cannot find -lasound: No such file or directory
collect2: error: ld returned 1 exit status
make: *** [Makefile:154: semu] Error 1
The problem here is that it wrongly pass the check, which should not pass. So the ENABLE_VIRTIOSND
was set, then the flag lasound
was added, thus caused an linker error.
The problem is that when the check-alsa
and check-coreaudio
failed, it didnt return 1
, but return empty string. Also, the test is in main Makefile is via:
ifeq ($(UNAME_S),Linux)
# Check ALSA installation
ifeq (0, $(call check-alsa))
$(warning No libasound installed. Check libasound in advance.)
ENABLE_VIRTIOSND := 0
endif
endif
ifeq ($(UNAME_S),Darwin)
ifeq (0, $(call check-coreaudio))
$(warning No CoreAudio installed Check AudioToolbox in advance.)
ENABLE_VIRTIOSND := 0
endif
endif
...
ifeq (0, $(call check-pa))
LDFLAGS += -lpulse
endif
When the check-alsa
failed, it return empty string, thus the check become ifeq (0, )
, which wont get in the ifeq
block, thus the ENABLE_VIRTIOSND
wont set to 0
, thus it pass the check.
I modified it as below then it works:
ifeq ($(UNAME_S),Linux)
# Check ALSA installation
- ifeq (0, $(call check-alsa))
+ ifeq (1, $(call check-alsa))
$(warning No libasound installed. Check libasound in advance.)
ENABLE_VIRTIOSND := 0
endif
endif
ifeq ($(UNAME_S),Darwin)
- ifeq (0, $(call check-coreaudio))
+ ifeq (1, $(call check-coreaudio))
$(warning No CoreAudio installed Check AudioToolbox in advance.)
ENABLE_VIRTIOSND := 0
endif
endif
and for the check function:
# Check ALSA installation
define check-alsa
-$(shell $(call create-alsa-prog) | $(CC) -x c -lasound -o /dev/null > /dev/null 2> /dev/null -
+$(shell $(call create-alsa-prog) | $(CC) -x c - -lasound -o /dev/null > /dev/null 2> /dev/null
- && echo $$?)
+ && echo 0 || echo 1)
endef
# Check PulseAudio installation
define check-pa
-$(shell $(call create-pa-prog) | $(CC) -x c -lpulse -o /dev/null - && echo 0 || echo 1)
+$(shell $(call create-pa-prog) | $(CC) -x c - -lpulse -o /dev/null && echo 0 || echo 1)
endef
# Check CoreAudio installation
define check-coreaudio
-$(shell $(call create-ca-prog) | $(CC) -x c -framework AudioToolbox -o /dev/null > /dev/null 2> /dev/null -
+$(shell $(call create-ca-prog) | $(CC) -x c - -framework AudioToolbox -o /dev/null > /dev/null 2> /dev/null
- && echo $$?)
+ && echo 0 || echo 1)
endef
Then the warning of Makefile will show correctly:
mes@Mes:~/home/semu$ make check
<stdin>:1:11: fatal error: alsa/asoundlib.h: No such file or directory
compilation terminated.
Makefile:66: No libasound installed. Check libasound in advance.
BTW, here I encounter the library order issue with GCC13.3.0. If it put the library BEFORE the source, it would not pass the ALSA check, so I move it after the source like:
-gcc -x c -lasound -o /dev/null -
+gcc -x c - -lasound -o /dev/null
the -
is in front of the source here.
Im not very familar with Makefile semantic, maybe there is an better soultion. Also, the implementation of the three check function is not unified, check-pa
didnt do the > /dev/null 2> /dev/null
, also the logic of return is different too.
The second one is cause by the JACK linking error. This environment is with libjack-jackd2-dev
installed:
mes@mes:~/semu$ dpkg -l | grep jack
ii libjack-jackd2-0:amd64 1.9.21~dfsg-3ubuntu3 amd64 JACK Audio Connection Kit (libraries)
ii libjack-jackd2-dev:amd64 1.9.21~dfsg-3ubuntu3 amd64 JACK Audio Connection Kit (development files)
and when I build the project via make check
, I got the following error:
configure: creating ./config.status
config.status: creating Makefile
config.status: creating portaudio-2.0.pc
config.status: executing libtool commands
Configuration summary:
Target ...................... x86_64-unknown-linux-gnu
C++ bindings ................ no
Debug output ................ no
ALSA ........................ yes
ASIHPI ...................... no
AudioIO ..................... no
OSS ......................... yes
JACK ........................ yes
PulseAudio .................. yes
Sndio ....................... no
make -C portaudio/
make[1]: Entering directory '/home/mes/semu/portaudio'
if test -n "" ; then for dir in ""; do make -C $dir all; done ; fi
make[1]: Leaving directory '/home/mes/semu/portaudio'
CC main.o
CC aclint.o
CC virtio-blk.o
CC virtio-rng.o
CC virtio-net.o
CC netdev.o
CC slirp.o
CC virtio-snd.o
LD semu
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `IsFormatSupported':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:977:(.text+0x10a): undefined reference to `jack_get_sample_rate'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:977:(.text+0x135): undefined reference to `jack_get_sample_rate'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:977:(.text+0x161): undefined reference to `jack_get_sample_rate'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `GetStreamTime':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1835:(.text+0x1c4): undefined reference to `jack_frame_time'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1835:(.text+0x1e5): undefined reference to `jack_get_sample_rate'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `UpdateQueue':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1524:(.text+0x257): undefined reference to `jack_get_sample_rate'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `RealProcess':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1446:(.text+0x416): undefined reference to `jack_get_sample_rate'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1462:(.text+0x44e): undefined reference to `jack_frame_time'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1489:(.text+0x596): undefined reference to `jack_port_get_buffer'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1500:(.text+0x5d6): undefined reference to `jack_port_get_buffer'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `JackCallback':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1659:(.text+0x6b2): undefined reference to `jack_port_get_buffer'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `StartStream':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1706:(.text+0xd78): undefined reference to `jack_port_name'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1706:(.text+0xd8b): undefined reference to `jack_port_name'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1706:(.text+0xd9d): undefined reference to `jack_connect'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1716:(.text+0xe08): undefined reference to `jack_port_name'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1716:(.text+0xe1b): undefined reference to `jack_port_name'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1716:(.text+0xe2d): undefined reference to `jack_connect'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `CleanUpStream':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1042:(.text+0x1058): undefined reference to `jack_port_unregister'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1047:(.text+0x1098): undefined reference to `jack_port_unregister'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `Terminate':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:879:(.text+0x15c0): undefined reference to `jack_deactivate'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:884:(.text+0x15f8): undefined reference to `jack_client_close'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `RealStop':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1785:(.text+0x187c): undefined reference to `jack_port_connected'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1787:(.text+0x1897): undefined reference to `jack_port_disconnect'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1793:(.text+0x1978): undefined reference to `jack_port_connected'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1795:(.text+0x1993): undefined reference to `jack_port_disconnect'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `OpenStream':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1146:(.text+0x1b79): undefined reference to `jack_port_name_size'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1149:(.text+0x1b90): undefined reference to `jack_client_name_size'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1156:(.text+0x1bc4): undefined reference to `jack_get_sample_rate'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1250:(.text+0x1eec): undefined reference to `jack_get_sample_rate'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1283:(.text+0x20b4): undefined reference to `jack_port_name_size'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1284:(.text+0x20f9): undefined reference to `jack_port_register'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1293:(.text+0x21a7): undefined reference to `jack_port_name_size'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1294:(.text+0x21ed): undefined reference to `jack_port_register'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1340:(.text+0x22b6): undefined reference to `jack_get_ports'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1344:(.text+0x22e2): undefined reference to `jack_port_by_name'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1385:(.text+0x23c2): undefined reference to `jack_frame_time'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1313:(.text+0x24d3): undefined reference to `jack_get_ports'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1317:(.text+0x2502): undefined reference to `jack_port_by_name'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `PaJack_Initialize':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:792:(.text+0x2b32): undefined reference to `jack_client_open'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `BuildDeviceList':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:519:(.text+0x2b6b): undefined reference to `jack_client_name_size'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:539:(.text+0x2bdf): undefined reference to `jack_client_name_size'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:546:(.text+0x2c0d): undefined reference to `jack_get_ports'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:565:(.text+0x2ccf): undefined reference to `jack_client_name_size'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:606:(.text+0x2d83): undefined reference to `jack_get_sample_rate'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:639:(.text+0x2ebd): undefined reference to `jack_get_ports'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:660:(.text+0x2ef9): undefined reference to `jack_get_ports'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `PaJack_Initialize':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:859:(.text+0x2ffc): undefined reference to `jack_client_close'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `BuildDeviceList':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:646:(.text+0x30e5): undefined reference to `jack_port_by_name'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:667:(.text+0x3163): undefined reference to `jack_port_by_name'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `PaJack_Initialize':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:840:(.text+0x3398): undefined reference to `jack_on_shutdown'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:841:(.text+0x33a4): undefined reference to `jack_set_error_function'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:842:(.text+0x33b0): undefined reference to `jack_get_buffer_size'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:844:(.text+0x33cd): undefined reference to `jack_set_sample_rate_callback'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:845:(.text+0x33e3): undefined reference to `jack_set_xrun_callback'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:846:(.text+0x3449): undefined reference to `jack_set_process_callback'
/usr/bin/ld: /home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:847:(.text+0x3477): undefined reference to `jack_activate'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `PaJack_SetClientName':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1847:(.text+0x3676): undefined reference to `jack_client_name_size'
/usr/bin/ld: portaudio/lib/.libs/libportaudio.a(pa_jack.o): in function `PaJack_GetClientName':
/home/mes/semu/portaudio/src/hostapi/jack/pa_jack.c:1862:(.text+0x36e4): undefined reference to `jack_get_client_name'
collect2: error: ld returned 1 exit status
make: *** [Makefile:154: semu] Error 1
The root cause it that when PortAudio detects JACK development libraries during configuration, it compiles with JACK support, but the main Makefile doesnt include -ljack
in LDFLAGS
.
After I add the flag in the virtio-snd section, the project can be compiled correctly now:
- LDFLAGS += -lasound -lrt
+ LDFLAGS += -lasound -lrt -ljack
but then the problem become that if the libjack-jackd2-dev
was not installed, it will get the error:
/usr/bin/ld: cannot find -ljack: No such file or directory
collect2: error: ld returned 1 exit status
make: *** [Makefile:154: semu] Error 1
I havent come out a good solution for this.
BTW, the booting process show an error log after I suceffully run the emulator:
ake[1]: Leaving directory '/home/mes/semu/minislirp/src'
CC riscv.o
CC ram.o
CC utils.o
CC plic.o
CC uart.o
CC main.o
CC aclint.o
CC virtio-blk.o
CC virtio-rng.o
CC virtio-net.o
CC netdev.o
CC slirp.o
CC virtio-snd.o
LD semu
DTC minimal.dtb
Ready to launch Linux kernel. Please be patient.
failed to allocate TAP device: Operation not permitted
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1342:(snd_func_refer) error evaluating name
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5727:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1342:(snd_func_refer) error evaluating name
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5727:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM sysdefault
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1342:(snd_func_refer) error evaluating name
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5727:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM default
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1342:(snd_func_refer) error evaluating name
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5727:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM default
ALSA lib confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_card_id returned error: No such file or directory
ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1342:(snd_func_refer) error evaluating name
ALSA lib conf.c:5204:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5727:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM dmix
[ 0.000000] Linux version 6.12.33 (jserv@node1) (riscv32-buildroot-linux-gnu-gcc.br_real (Buildroot 2024.11.1-dirty) 14.2.0, GNU ld (GNU Binutils) 2.42) #1 SMP Wed Jun 11 13:33:41 CST 2025
[ 0.000000] Machine model: semu
...