[Buildroot] [Bug 13791] The QEMU compiled by Buildroot does not support alsa or pulseaudio drivers for soundcard forwarding
bugzilla at busybox.net
bugzilla at busybox.net
Wed May 5 20:51:49 UTC 2021
https://bugs.busybox.net/show_bug.cgi?id=13791
--- Comment #2 from WZab <wzab01 at gmail.com> ---
I have extracted the configuration of the libpulse and alsa from the system
pkgconf:
$ pkgconf libpulse --libs
-L/usr/lib/x86_64-linux-gnu -lpulse
$ pkgconf libpulse --cflags
-D_REENTRANT
$ pkg-config alsa --libs
-L/usr/lib/x86_64-linux-gnu -lasound
$ pkg-config alsa --cflags
Then I have injected them by hand to the "configure" script in the
output/build/host-qemu-5.2.0/ :
##########################################
# Sound support libraries probe
audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/,/ /g')
for drv in $audio_drv_list; do
case $drv in
alsa | try-alsa)
if true; then
alsa_libs="-L/usr/lib/x86_64-linux-gnu -lasound"
alsa_cflags=""
alsa=yes
if test "$drv" = "try-alsa"; then
audio_drv_list=$(echo "$audio_drv_list" | sed -e
's/try-alsa/alsa/')
fi
else
if test "$drv" = "try-alsa"; then
audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-alsa//')
else
error_exit "$drv check failed" \
"Make sure to have the $drv libs and headers installed."
fi
fi
;;
pa | try-pa)
if true; then
libpulse=yes
pulse_libs="-L/usr/lib/x86_64-linux-gnu -lpulse"
pulse_cflags="-D_REENTRANT"
if test "$drv" = "try-pa"; then
audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-pa/pa/')
fi
else
if test "$drv" = "try-pa"; then
audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-pa//')
else
error_exit "$drv check failed" \
"Make sure to have the $drv libs and headers installed."
fi
fi
;;
After that, and with the following:
# Override CPP, as it expects to be able to call it like it'd
# call the compiler.
define HOST_QEMU_CONFIGURE_CMDS
unset TARGET_DIR; \
cd $(@D); $(HOST_CONFIGURE_OPTS) CPP="$(HOSTCC) -E" \
./configure \
--target-list="$(HOST_QEMU_TARGETS)" \
--prefix="$(HOST_DIR)" \
--interp-prefix=$(STAGING_DIR) \
--cc="$(HOSTCC)" \
--host-cc="$(HOSTCC)" \
--extra-cflags="$(HOST_QEMU_CFLAGS)" \
--extra-ldflags="$(HOST_LDFLAGS)" \
--audio-drv-list="alsa,pa,oss" \
--meson=$(HOST_DIR)/bin/meson \
--ninja=$(HOST_DIR)/bin/ninja \
--disable-bzip2 \
--disable-containers \
--disable-curl \
--disable-libssh \
--disable-linux-io-uring \
--disable-sdl \
--disable-vhost-user-blk-server \
--disable-virtiofsd \
--disable-vnc-jpeg \
--disable-vnc-png \
--disable-vnc-sasl \
--disable-tests \
$(HOST_QEMU_OPTS)
endef
in the package/qemu/qemu.mk , I was able to compile QEMU with supported alsa
and pa drivers:
./qemu-system-aarch64 --audio-help
Environment variable based configuration deprecated.
Please use the new -audiodev option.
Equivalent -audiodev to your current environment variables:
(Since you didn't specify QEMU_AUDIO_DRV, I'll list all possibilities)
-audiodev id=alsa,driver=alsa
-audiodev id=pa,driver=pa
-audiodev id=oss,driver=oss
-audiodev id=none,driver=none
It is an awful workaround, but at least it works...
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the buildroot
mailing list