Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HDMI audio dropouts / distortion under certain scenarios in kernel 4.19 #2983

Open
blue-smoke opened this issue May 21, 2019 · 37 comments
Open

Comments

@blue-smoke
Copy link

After the recent kernel update to 4.19 via apt-get update, my audio becomes distorted.
Playback of MP3 via VLC has brief dropouts and some clicking can intermittently be heard.
Remote desktop to a Windows PC via X-RDP results in the sound being distorted such that it no longer resembles the sound being played (eg sound of emptying recycle bin)

rolling back to 4.14 thus :
sudo rpi-update a08ece3d48c3c40bf1b501772af9933249c11c5b
largely (but not completely) fixes the problem. Some brief dropout in VLC playback, but X-RDP sound is working.

A clean install of Raspbian entirely cures the problem, but when certain additional software is installed via apt-get install, the problem returns.

Pre-conditions :

Raspberry Pi 3B+ booting from SD card, with Raspbian installed on external SSD

Fresh install of Raspbian
apt-get upgrade and reboot so that 4.19 kernel is in use

How to reproduce the problem :

On desktop, play a known good MP3 file using VLC. Note that it sounds good with no stuttering, distortion or dropouts.

Install the additional software that I use on my Pi :

paste this list into a file pkglist.txt
acl adduser adwaita-icon-theme akonadi-backend-mysql akonadi-server alacarte alpine alpine-doc alsa-base alsa-utils ant ant-optional apt apt-listchanges apt-transport-https apt-utils aptitude aptitude-common aspell aspell-en autoconf automake autopoint autotools-dev avahi-daemon base-files base-passwd bash bash-completion bind9-host binutils blends-tasks blt bluealsa bluej bluez bluez-firmware bsdmainutils bsdutils build-essential bzip2 ca-certificates catdoc chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra cifs-utils claws-mail claws-mail-i18n coinor-libcbc3 coinor-libcgl1 coinor-libclp1 coinor-libcoinmp1v5:armhf coinor-libcoinutils3v5 coinor-libipopt1v5 coinor-libosi1v5 console-setup console-setup-linux coreutils cpio cpp cpp-6 cpufrequtils crda cron curl dash dbus dbus-user-session dbus-x11 dc dconf-gsettings-backend:armhf dconf-service debconf debconf-i18n debconf-utils debhelper debian-reference-common debian-reference-en debianutils desktop-base desktop-file-utils device-tree-compiler dh-autoreconf dh-python dh-strip-nondeterminism dhcpcd5 dictionaries-common diffutils distro-info-data dmidecode dmsetup docbook-xml docbook-xsl docutils-common dolphin4 dosfstools dphys-swapfile dpkg dpkg-dev dvdauthor dvgrab e2fslibs:armhf e2fsprogs ed emacsen-common epiphany-browser epiphany-browser-data erlang-base esound-common fake-hwclock fakeroot fbset fdupes ffmpeg ffmpegthumbnailer file findutils firmware-atheros firmware-brcm80211 firmware-libertas firmware-misc-nonfree firmware-realtek fontconfig fontconfig-config fontconfig-infinality fonts-crosextra-caladea fonts-crosextra-carlito fonts-dejavu fonts-dejavu-core fonts-dejavu-extra fonts-droid-fallback fonts-freefont-ttf fonts-liberation fonts-liberation2 fonts-linuxlibertine fonts-noto-mono fonts-opensymbol fonts-piboto fonts-sil-gentium fonts-sil-gentium-basic freepats frei0r-plugins fslint fuse g++ g++-6 galculator gcc gcc-4.6-base:armhf gcc-4.7-base:armhf gcc-4.8-base:armhf gcc-4.9-base:armhf gcc-5-base:armhf gcc-6 gcc-6-base:armhf gcj-6-jre-lib gconf-service gconf2 gconf2-common gdb gdisk geany geany-common genisoimage geoclue-2.0 geoip-database gettext gettext-base ghostscript giblib1:armhf gimp gimp-data gir1.2-atk-1.0:armhf gir1.2-freedesktop:armhf gir1.2-gdkpixbuf-2.0:armhf gir1.2-glib-2.0:armhf gir1.2-gmenu-3.0 gir1.2-gtk-3.0:armhf gir1.2-pango-1.0:armhf git git-man gksu gldriver-test glib-networking:armhf glib-networking-common glib-networking-services gnome-desktop3-data gnome-icon-theme gnome-menus gnome-themes-standard:armhf gnome-themes-standard-data gnome-user-guide gnupg gnupg-agent gpgv gpicview greenfoot grep groff-base gsettings-desktop-schemas gsfonts gstreamer0.10-alsa:armhf gstreamer0.10-plugins-base:armhf gstreamer1.0-alsa:armhf gstreamer1.0-libav:armhf gstreamer1.0-omx gstreamer1.0-omx-rpi gstreamer1.0-omx-rpi-config gstreamer1.0-plugins-bad:armhf gstreamer1.0-plugins-base:armhf gstreamer1.0-plugins-good:armhf gstreamer1.0-pulseaudio:armhf gstreamer1.0-x:armhf gtk-update-icon-cache gtk2-engines:armhf gtk2-engines-clearlookspix:armhf gtk2-engines-pixbuf:armhf gvfs:armhf gvfs-backends gvfs-common gvfs-daemons gvfs-fuse gvfs-libs:armhf gzip hardlink hicolor-icon-theme hostname htop hunspell-en-gb hyphen-en-gb i2c-tools icoutils idle idle-python2.7 idle-python3.5 idle3 ifupdown iio-sensor-proxy imagemagick imagemagick-6-common imagemagick-6.q16 info init init-system-helpers initramfs-tools initramfs-tools-core install-info intltool-debian iproute2 iptables iputils-ping isc-dhcp-client isc-dhcp-common iso-codes iw jackd jackd2 java-common javascript-common jpeginfo kate-data katepart kbd kde-baseapps-bin kde-baseapps-data kde-runtime kde-runtime-data kded5 kdelibs-bin kdelibs5-data kdelibs5-plugins kdenlive kdenlive-data kdepimlibs-data kdoctools keyboard-configuration keyutils kfind kinit kio klibc-utils kmod konqueror konqueror-nsplugins kpart-webkit laptop-detect leafpad less liba52-0.7.4:armhf libaa1:armhf libaacs0:armhf libabw-0.1-1:armhf libacl1:armhf libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libamd2:armhf libapache-poi-java libapache-pom-java libapparmor1:armhf libapt-inst2.0:armhf libapt-pkg5.0:armhf libarchive-zip-perl libarchive13:armhf libasan3:armhf libasound2:armhf libasound2-data libasound2-plugins:armhf libaspell15:armhf libass5:armhf libassuan0:armhf libasyncns0:armhf libatasmart4:armhf libatk-bridge2.0-0:armhf libatk1.0-0:armhf libatk1.0-data libatomic1:armhf libatspi2.0-0:armhf libattica0.4:armhf libattr1:armhf libaudio2:armhf libaudiofile1:armhf libaudit-common libaudit1:armhf libauthen-sasl-perl libav-tools libavahi-client3:armhf libavahi-common-data:armhf libavahi-common3:armhf libavahi-core7:armhf libavahi-glib1:armhf libavahi-gobject0:armhf libavc1394-0:armhf libavcodec57:armhf libavdevice57:armhf libavfilter6:armhf libavformat57:armhf libavresample3:armhf libavutil55:armhf libbabeltrace-ctf1:armhf libbabeltrace1:armhf libbabl-0.1-0:armhf libbase-java libbasicusageenvironment1:armhf libbcmail-java libbcpkix-java libbcprov-java libbdplus0:armhf libbind9-140:armhf libblas-common libblas3 libblkid1:armhf libbluetooth3:armhf libbluray1:armhf libbluray2:armhf libboost-date-time1.61.0:armhf libboost-date-time1.62.0:armhf libboost-filesystem1.61.0:armhf libboost-filesystem1.62.0:armhf libboost-iostreams1.58.0:armhf libboost-iostreams1.60.0:armhf libboost-iostreams1.61.0:armhf libboost-iostreams1.62.0:armhf libboost-system1.61.0:armhf libboost-system1.62.0:armhf libbs2b0:armhf libbsd0:armhf libbsh-java libbz2-1.0:armhf libc-bin libc-dev-bin libc-l10n libc6:armhf libc6-dbg:armhf libc6-dev:armhf libcaca0:armhf libcairo-gobject2:armhf libcairo2:armhf libcamd2:armhf libcanberra-gtk3-0:armhf libcanberra-pulse:armhf libcanberra0:armhf libcap-ng0:armhf libcap2:armhf libcap2-bin libcc1-0:armhf libccolamd2:armhf libcddb2 libcdio-cdda1:armhf libcdio-paranoia1:armhf libcdio13:armhf libcdparanoia0:armhf libcdr-0.1-1:armhf libcholmod3:armhf libchromaprint1:armhf libclucene-contribs1v5:armhf libclucene-core1v5:armhf libcmis-0.5-5v5 libcolamd2:armhf libcolord2:armhf libcomerr2:armhf libcommons-codec-java libcommons-collections3-java libcommons-logging-java libcommons-parent-java libcompfaceg1 libcpufreq0 libcroco3:armhf libcryptsetup4:armhf libcups2:armhf libcupsfilters1:armhf libcupsimage2:armhf libcurl3:armhf libcurl3-gnutls:armhf libcwidget3v5:armhf libdaemon0:armhf libdatrie1:armhf libdb5.3:armhf libdbus-1-3:armhf libdbus-glib-1-2:armhf libdbusmenu-qt2:armhf libdbusmenu-qt5-2:armhf libdc1394-22:armhf libdca0:armhf libdconf1:armhf libde265-0:armhf libdebconfclient0:armhf libdevmapper1.02.1:armhf libdjvulibre-text libdjvulibre21:armhf libdlrestrictions1 libdns-export162 libdns162:armhf libdom4j-java libdouble-conversion1:armhf libdpkg-perl libdrm-amdgpu1:armhf libdrm-freedreno1:armhf libdrm-nouveau2:armhf libdrm-radeon1:armhf libdrm2:armhf libdv4:armhf libdvbpsi10:armhf libdvdnav4:armhf libdvdread4:armhf libdw1:armhf libe-book-0.1-1:armhf libebml4v5:armhf libebur128-1:armhf libedit2:armhf libegl1-mesa:armhf libehcache-java libelf1:armhf libenchant1c2a:armhf libencode-locale-perl libeot0:armhf libepoxy0:armhf libepub0 liberror-perl libesd0:armhf libestr0 libetonyek-0.1-1:armhf libetpan17:armhf libevdev2:armhf libevent-2.0-5:armhf libexif12:armhf libexiv2-14:armhf libexpat1:armhf libexpat1-dev:armhf libexttextcat-2.0-0:armhf libexttextcat-data libfaad2:armhf libfakeroot:armhf libfam0:armhf libfastjson4:armhf libfdisk1:armhf libffi6:armhf libffmpegthumbnailer4v5 libfftw3-double3:armhf libfftw3-single3:armhf libfile-copy-recursive-perl libfile-fcntllock-perl libfile-listing-perl libfile-stripnondeterminism-perl libflac8:armhf libflite1:armhf libfluidsynth1:armhf libflute-java libfm-data libfm-extra4:armhf libfm-gtk-data libfm-gtk4:armhf libfm-modules:armhf libfm4:armhf libfont-afm-perl libfontconfig1:armhf libfontenc1:armhf libfonts-java libformula-java libfreehand-0.1-1 libfreetype6:armhf libfreetype6-dev libfribidi0:armhf libfuse2:armhf libgavl1:armhf libgbm1:armhf libgcc-6-dev:armhf libgcc1:armhf libgcj-bc:armhf libgcj-common libgcj17:armhf libgck-1-0:armhf libgconf-2-4:armhf libgcr-3-common libgcr-base-3-1:armhf libgcrypt20:armhf libgd3:armhf libgdata-common libgdata22:armhf libgdbm3:armhf libgdk-pixbuf2.0-0:armhf libgdk-pixbuf2.0-common libgegl-0.3-0:armhf libgeoclue-2-0:armhf libgeoip1:armhf libgfortran3:armhf libgif7:armhf libgimp2.0 libgirepository-1.0-1:armhf libgksu2-0 libgl1-mesa-dri:armhf libgl1-mesa-glx:armhf libglade2-0:armhf libglapi-mesa:armhf libgles1-mesa:armhf libgles2-mesa:armhf libglew2.0:armhf libglib2.0-0:armhf libglib2.0-bin libglib2.0-data libgltf-0.0-0v5:armhf libglu1-mesa:armhf libgme0:armhf libgmp10:armhf libgnome-desktop-3-12:armhf libgnome-keyring-common libgnome-keyring0:armhf libgnome-menu-3-0 libgnutls30:armhf libgoa-1.0-0b:armhf libgoa-1.0-common libgomp1:armhf libgoocanvas-common libgoocanvas3:armhf libgpg-error0:armhf libgpgme++2v5 libgpgme11:armhf libgpgmepp6:armhf libgphoto2-6:armhf libgphoto2-port12:armhf libgpm2:armhf libgraphite2-3:armhf libgroupsock8:armhf libgs9:armhf libgs9-common libgsm1:armhf libgssapi-krb5-2:armhf libgssglue1:armhf libgstreamer-plugins-bad1.0-0:armhf libgstreamer-plugins-base0.10-0:armhf libgstreamer-plugins-base1.0-0:armhf libgstreamer0.10-0:armhf libgstreamer1.0-0:armhf libgtk-3-0:armhf libgtk-3-common libgtk2.0-0:armhf libgtk2.0-bin libgtk2.0-common libgtop-2.0-10:armhf libgtop2-common libgudev-1.0-0:armhf libharfbuzz-icu0:armhf libharfbuzz0b:armhf libhogweed4:armhf libhsqldb1.8.0-java libhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libhunspell-1.4-0:armhf libhyphen0:armhf libice6:armhf libicu57:armhf libid3tag0:armhf libident libidn11:armhf libidn2-0:armhf libiec61883-0:armhf libieee1284-3:armhf libijs-0.35:armhf libilmbase12:armhf libimlib2:armhf libimobiledevice6:armhf libinput-bin libinput10:armhf libio-html-perl libio-socket-ssl-perl libiodbc2:armhf libip4tc0:armhf libip6tc0:armhf libiptc0:armhf libisc-export160 libisc160:armhf libisccc140:armhf libisccfg140:armhf libisl15:armhf libisorelax-java libitext-java libiw30:armhf libjack-jackd2-0:armhf libjavascriptcoregtk-3.0-0:armhf libjavascriptcoregtk-4.0-18:armhf libjaxen-java libjbig0:armhf libjbig2dec0:armhf libjcommon-java libjdom1-java libjim0.76:armhf libjpeg62-turbo:armhf libjpeg8:armhf libjs-jquery libjson-glib-1.0-0:armhf libjson-glib-1.0-common libjxr-tools libjxr0:armhf libk5crypto3:armhf libkactivities6 libkate1:armhf libkatepartinterfaces4 libkcmutils4 libkde3support4 libkdeclarative5 libkdecore5 libkdesu5 libkdeui5 libkdewebkit5 libkdnssd4 libkemoticons4 libkeybinder0 libkeyutils1:armhf libkf5archive5:armhf libkf5attica5:armhf libkf5auth-data libkf5auth5:armhf libkf5bookmarks-data libkf5bookmarks5:armhf libkf5codecs-data libkf5codecs5:armhf libkf5completion-data libkf5completion5:armhf libkf5config-bin libkf5config-data libkf5configcore5:armhf libkf5configgui5:armhf libkf5configwidgets-data libkf5configwidgets5:armhf libkf5coreaddons-data libkf5coreaddons5:armhf libkf5crash5:armhf libkf5dbusaddons-bin libkf5dbusaddons-data libkf5dbusaddons5:armhf libkf5filemetadata-bin:armhf libkf5filemetadata-data libkf5filemetadata3:armhf libkf5globalaccel-bin libkf5globalaccel-data libkf5globalaccel5:armhf libkf5globalaccelprivate5:armhf libkf5guiaddons5:armhf libkf5i18n-data libkf5i18n5:armhf libkf5iconthemes-bin libkf5iconthemes-data libkf5iconthemes5:armhf libkf5itemviews-data libkf5itemviews5:armhf libkf5jobwidgets-data libkf5jobwidgets5:armhf libkf5kdelibs4support-data libkf5kiocore5:armhf libkf5kiofilewidgets5:armhf libkf5kiontlm5:armhf libkf5kiowidgets5:armhf libkf5newstuff-data libkf5newstuff5:armhf libkf5notifications-data libkf5notifications5:armhf libkf5notifyconfig-data libkf5notifyconfig5:armhf libkf5service-bin libkf5service-data libkf5service5:armhf libkf5solid5:armhf libkf5solid5-data libkf5sonnet5-data libkf5sonnetcore5:armhf libkf5sonnetui5:armhf libkf5textwidgets-data libkf5textwidgets5:armhf libkf5wallet-bin libkf5wallet-data libkf5wallet5:armhf libkf5widgetsaddons-data libkf5widgetsaddons5:armhf libkf5windowsystem-data libkf5windowsystem5:armhf libkf5xmlgui-bin libkf5xmlgui-data libkf5xmlgui5:armhf libkfile4 libkhtml5 libkio5 libkjsapi4 libkjsembed4 libklibc libkmediaplayer4 libkmod2:armhf libknewstuff3-4 libknotifyconfig4 libkntlm4 libkonq-common libkonq5-templates libkonq5abi1 libkonqsidebarplugin4a libkparts4 libkpty4 libkrb5-3:armhf libkrb5support0:armhf libkrosscore4 libksba8:armhf libktexteditor4 libkwalletbackend5-5:armhf libkxmlrpcclient4 liblangtag-common liblangtag1:armhf liblapack3 liblayout-java liblcms2-2:armhf libldap-2.4-2:armhf libldap-common libldb1:armhf liblightdm-gobject-1-0 liblilv-0-0 liblirc-client0:armhf liblivemedia57:armhf libllvm3.9:armhf libloader-java liblocale-gettext-perl liblockfile-bin liblockfile1:armhf liblog4j1.2-java liblogging-stdlog0:armhf liblognorm5:armhf liblqr-1-0:armhf libltdl7:armhf liblua5.2-0:armhf libluajit-5.1-common liblwp-mediatypes-perl liblwp-protocol-https-perl liblwres141:armhf liblz4-1:armhf liblzma5:armhf liblzo2-2:armhf libmad0:armhf libmagic-mgc libmagic1:armhf libmagickcore-6.q16-3:armhf libmagickcore-6.q16-3-extra:armhf libmagickwand-6.q16-3:armhf libmail-java libmailtools-perl libmariadbclient18:armhf libmatroska6v5:armhf libmbim-glib4:armhf libmbim-proxy libmediainfo0v5:armhf libmenu-cache-bin libmenu-cache3:armhf libmetis5:armhf libmhash2:armhf libmicrodns0:armhf libmikmod3:armhf libmjpegutils-2.1-0 libmlt++3 libmlt-data libmlt6 libmm-glib0:armhf libmms0:armhf libmng1:armhf libmnl-dev libmnl0:armhf libmodplug1:armhf libmount1:armhf libmovit5:armhf libmp3lame0:armhf libmpc3:armhf libmpcdec6:armhf libmpdec2:armhf libmpeg2-4:armhf libmpeg2encpp-2.1-0 libmpfr4:armhf libmpg123-0:armhf libmplex2-2.1-0 libmspub-0.1-1:armhf libmsv-java libmtdev1:armhf libmtp-common libmtp-runtime libmtp9:armhf libmwaw-0.3-3:armhf libmythes-1.2-0:armhf libncurses5:armhf libncursesw5:armhf libneon27-gnutls:armhf libnepomuk4 libnepomukquery4a libnepomukutils4 libnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnetfilter-conntrack3:armhf libnetpbm10 libnettle6:armhf libnewt0.52:armhf libnfnetlink0:armhf libnfs8:armhf libnfsidmap2:armhf libnghttp2-14:armhf libnih-dbus1 libnih1 libnl-3-200:armhf libnl-genl-3-200:armhf libnl-route-3-200:armhf libnotify4:armhf libnpth0:armhf libnspr4:armhf libnss-mdns:armhf libnss3:armhf libntrack-qt4-1 libntrack0 liboauth0:armhf libobrender32v5 libobt2v5 libodfgen-0.1-1:armhf libofa0:armhf libogg0:armhf libopenal-data libopenal1:armhf libopencore-amrnb0:armhf libopencore-amrwb0:armhf libopencv-calib3d2.4v5:armhf libopencv-contrib2.4v5:armhf libopencv-core2.4v5:armhf libopencv-features2d2.4v5:armhf libopencv-flann2.4v5:armhf libopencv-gpu2.4v5:armhf libopencv-highgui2.4-deb0:armhf libopencv-imgproc2.4v5:armhf libopencv-legacy2.4v5:armhf libopencv-ml2.4v5:armhf libopencv-objdetect2.4v5:armhf libopencv-ocl2.4v5:armhf libopencv-photo2.4v5:armhf libopencv-stitching2.4v5:armhf libopencv-superres2.4v5:armhf libopencv-ts2.4v5:armhf libopencv-video2.4v5:armhf libopencv-videostab2.4v5:armhf libopenexr22:armhf libopenjp2-7:armhf libopenmpt-modplug1:armhf libopenmpt0:armhf libopus0:armhf liborc-0.4-0:armhf liborcus-0.11-0:armhf libossp-uuid16:armhf libp11-kit0:armhf libpackagekit-glib2-18:armhf libpagemaker-0.0-0:armhf libpam-chksshpwd:armhf libpam-modules:armhf libpam-modules-bin libpam-runtime libpam-systemd:armhf libpam0g:armhf libpango-1.0-0:armhf libpango1.0-0:armhf libpangocairo-1.0-0:armhf libpangoft2-1.0-0:armhf libpangox-1.0-0:armhf libpangoxft-1.0-0:armhf libpaper-utils libpaper1:armhf libparted2:armhf libpciaccess0:armhf libpcre16-3:armhf libpcre3:armhf libpcsclite1:armhf libpentaho-reporting-flow-engine-java libperl5.24:armhf libpgm-5.2-0:armhf libphonon4:armhf libphonon4qt5-4:armhf libpipeline1:armhf libpisock9 libpixie-java libpixman-1-0:armhf libplasma3 libplist3:armhf libplymouth4:armhf libpng-dev:armhf libpng-tools libpng12-0:armhf libpng16-16:armhf libpolkit-agent-1-0:armhf libpolkit-backend-1-0:armhf libpolkit-gobject-1-0:armhf libpolkit-qt-1-1:armhf libpolkit-qt5-1-1:armhf libpoppler-glib8:armhf libpoppler-qt5-1:armhf libpoppler64:armhf libpopt0:armhf libportaudio2:armhf libportmidi0:armhf libpostproc54:armhf libpq5:armhf libprocps6:armhf libprotobuf-lite10:armhf libproxy-tools libproxy1v5:armhf libpsl5:armhf libpulse-mainloop-glib0:armhf libpulse0:armhf libpulsedsp:armhf libpython-all-dev:armhf libpython-dev:armhf libpython-stdlib:armhf libpython2.7:armhf libpython2.7-dev:armhf libpython2.7-minimal:armhf libpython2.7-stdlib:armhf libpython3-dev:armhf libpython3-stdlib:armhf libpython3.5:armhf libpython3.5-dev:armhf libpython3.5-minimal:armhf libpython3.5-stdlib:armhf libqca2:armhf libqca2-plugins:armhf libqmi-glib5:armhf libqmi-proxy libqt4-dbus:armhf libqt4-declarative:armhf libqt4-designer:armhf libqt4-network:armhf libqt4-opengl:armhf libqt4-qt3support:armhf libqt4-script:armhf libqt4-sql:armhf libqt4-sql-mysql:armhf libqt4-svg:armhf libqt4-xml:armhf libqt4-xmlpatterns:armhf libqt5concurrent5:armhf libqt5core5a:armhf libqt5dbus5:armhf libqt5gui5:armhf libqt5network5:armhf libqt5printsupport5:armhf libqt5qml5:armhf libqt5quick5:armhf libqt5script5:armhf libqt5sql5:armhf libqt5sql5-mysql:armhf libqt5sql5-sqlite:armhf libqt5svg5:armhf libqt5widgets5:armhf libqt5x11extras5:armhf libqt5xml5:armhf libqtcore4:armhf libqtdbus4:armhf libqtgui4:armhf libqtwebkit4:armhf libquicktime2:armhf libraptor2-0:armhf librarian0 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0 librasqal3:armhf libraw1394-11:armhf libraw15:armhf librdf0:armhf libreadline5:armhf libreadline6:armhf libreadline7:armhf librelaxng-datatype-java libreoffice libreoffice-avmedia-backend-gstreamer libreoffice-base libreoffice-base-core libreoffice-base-drivers libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw libreoffice-gtk libreoffice-gtk2 libreoffice-help-en-gb libreoffice-impress libreoffice-java-common libreoffice-l10n-en-gb libreoffice-librelogo libreoffice-math libreoffice-nlpsolver libreoffice-ogltrans libreoffice-pdfimport libreoffice-pi libreoffice-report-builder libreoffice-report-builder-bin libreoffice-script-provider-bsh libreoffice-script-provider-js libreoffice-script-provider-python libreoffice-sdbc-hsqldb libreoffice-sdbc-postgresql libreoffice-style-galaxy libreoffice-style-tango libreoffice-systray libreoffice-wiki-publisher libreoffice-writer librepository-java libresid-builder0c2a librest-0.7-0:armhf librevenge-0.0-0:armhf librsvg2-2:armhf librsvg2-common:armhf librtaudio5a:armhf librtimulib-dev librtimulib-utils librtimulib7 librtmp1:armhf librubberband2:armhf libsac-java libsac-java-gcj libsamplerate0:armhf libsane:armhf libsane-common libsane-extras:armhf libsane-extras-common libsasl2-2:armhf libsasl2-modules:armhf libsasl2-modules-db:armhf libsaxonhe-java libsbc1:armhf libsdl-image1.2:armhf libsdl-mixer1.2:armhf libsdl-ttf2.0-0:armhf libsdl1.2debian:armhf libsdl2-2.0-0:armhf libseccomp2:armhf libsecret-1-0:armhf libsecret-common libselinux1:armhf libsemanage-common libsemanage1:armhf libsensors4:armhf libsepol1:armhf libserd-0-0:armhf libserializer-java libservlet3.1-java libshine3:armhf libshout3:armhf libsidplay2 libsigc++-1.2-5c2 libsigc++-2.0-0v5:armhf libsigsegv2:armhf libslang2:armhf libsm6:armhf libsmartcols1:armhf libsmbclient:armhf libsnappy1v5:armhf libsndfile1:armhf libsndio6.1:armhf libsodium18:armhf libsolid4 libsombok3:armhf libsoprano4 libsord-0-0:armhf libsoundtouch1:armhf libsoup-gnome2.4-1:armhf libsoup2.4-1:armhf libsox-fmt-alsa:armhf libsox-fmt-base:armhf libsox2:armhf libsoxr0:armhf libspandsp2:armhf libspectre1:armhf libspeex1:armhf libspeexdsp1:armhf libsqlite3-0:armhf libsratom-0-0:armhf libsrtp0 libss2:armhf libssh-gcrypt-4:armhf libssh2-1:armhf libssl1.0.2:armhf libssl1.1:armhf libstartup-notification0:armhf libstdc++-6-dev:armhf libstdc++6:armhf libsuitesparseconfig4:armhf libswresample2:armhf libswscale4:armhf libsysfs2:armhf libsystemd0:armhf libtag1v5:armhf libtag1v5-vanilla:armhf libtalloc2:armhf libtasn1-6:armhf libtcl8.6:armhf libtdb1:armhf libtevent0:armhf libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libthai-data libthai0:armhf libtheora0:armhf libthreadweaver4 libtiff5:armhf libtimedate-perl libtinfo5:armhf libtinyxml2-4:armhf libtirpc1:armhf libtk8.6:armhf libtool libtwolame0:armhf libtxc-dxtn-s2tc:armhf libubsan0:armhf libudev0:armhf libudev1:armhf libudisks2-0:armhf libumfpack5:armhf libunique-1.0-0 libunistring0:armhf libupnp6 libupower-glib3:armhf liburi-perl libusageenvironment3:armhf libusb-0.1-4:armhf libusb-1.0-0:armhf libusbmuxd4:armhf libustr-1.0-1:armhf libutempter0:armhf libuuid1:armhf libv4l-0:armhf libv4l2rds0:armhf libv4lconvert0:armhf libva-drm1:armhf libva-wayland1:armhf libva-x11-1:armhf libva1:armhf libvdpau-va-gl1:armhf libvdpau1:armhf libvisio-0.1-1:armhf libvisual-0.4-0:armhf libvlc-bin:armhf libvlc5:armhf libvlccore9:armhf libvo-aacenc0:armhf libvo-amrwbenc0:armhf libvorbis0a:armhf libvorbisenc2:armhf libvorbisfile3:armhf libvpx4:armhf libvte-common libvte9 libwacom-common libwacom2:armhf libwavpack1:armhf libwayland-client0:armhf libwayland-cursor0:armhf libwayland-egl1-mesa:armhf libwayland-server0:armhf libwbclient0:armhf libwebkit2gtk-4.0-37:armhf libwebkitgtk-3.0-0:armhf libwebp6:armhf libwebpdemux2:armhf libwebpmux2:armhf libwebrtc-audio-processing1:armhf libwildmidi-config libwildmidi2:armhf libwmf0.2-7:armhf libwnck-3-0:armhf libwnck-3-common libwnck-common libwnck22:armhf libwpd-0.10-10:armhf libwpg-0.3-3:armhf libwps-0.4-4:armhf libwrap0:armhf libwww-perl libwww-robotrules-perl libwxbase3.0-0v5:armhf libwxgtk3.0-0v5:armhf libx11-6:armhf libx11-data libx11-xcb1:armhf libx264-148:armhf libx265-95:armhf libxapian30:armhf libxau6:armhf libxaw7:armhf libxcb-dri2-0:armhf libxcb-dri3-0:armhf libxcb-glx0:armhf libxcb-icccm4:armhf libxcb-image0:armhf libxcb-keysyms1:armhf libxcb-present0:armhf libxcb-randr0:armhf libxcb-render-util0:armhf libxcb-render0:armhf libxcb-shape0:armhf libxcb-shm0:armhf libxcb-sync1:armhf libxcb-util0:armhf libxcb-xfixes0:armhf libxcb-xinerama0:armhf libxcb-xkb1:armhf libxcb-xv0:armhf libxcb1:armhf libxcomposite1:armhf libxcursor1:armhf libxdamage1:armhf libxdmcp6:armhf libxerces2-java libxext6:armhf libxfce4util-bin libxfce4util-common libxfce4util7:armhf libxfconf-0-2 libxfixes3:armhf libxfont1:armhf libxfont2:armhf libxft2:armhf libxi6:armhf libxinerama1:armhf libxkbcommon-x11-0:armhf libxkbcommon0:armhf libxkbfile1:armhf libxklavier16:armhf libxml-commons-external-java libxml-commons-resolver1.1-java libxml-java libxml2:armhf libxml2-utils libxmlbeans-java libxmu6:armhf libxmuu1:armhf libxom-java libxpm4:armhf libxpp2-java libxpp3-java libxrandr2:armhf libxrender1:armhf libxres1:armhf libxshmfence1:armhf libxslt1.1:armhf libxss1:armhf libxt6:armhf libxtables12:armhf libxtst6:armhf libxv1:armhf libxvidcore4:armhf libxxf86dga1:armhf libxxf86vm1:armhf libyajl2:armhf libyelp0:armhf libzbar0:armhf libzen0v5:armhf libzip4:armhf libzmq5:armhf libzvbi-common libzvbi0:armhf lightdm lightdm-gtk-greeter linux-base linux-libc-dev:armhf locales login logrotate lp-solve lsb-base lsb-release lua5.1 luajit lxappearance lxappearance-obconf lxde lxde-common lxde-core lxde-icon-theme lxhotkey-core lxhotkey-gtk lxinput lxmenu-data lxpanel lxpanel-data lxplug-bluetooth lxplug-ejecter lxplug-network lxplug-ptbatt lxplug-volume lxpolkit lxrandr lxsession lxsession-data lxsession-edit lxsession-logout lxtask lxterminal m4 make makedev man-db manpages manpages-dev marble-data mariadb-common mawk mediainfo mediainfo-gui melt menu-xdg mesa-utils mesa-va-drivers:armhf mesa-vdpau-drivers:armhf mime-support minidlna mlock modemmanager mount mountall multiarch-support mysql-common nano ncdu ncurses-base ncurses-bin ncurses-term net-tools netbase netcat-openbsd netcat-traditional netpbm netsurf-common netsurf-gtk nfs-common nodered ntrack-module-libnl-0 nuscratch obconf omxplayer openbox openbox-lxde-session openresolv openshot openshot-doc openssh-client openssh-server openssh-sftp-server openssl oracle-java8-jdk oxygen-icon-theme p7zip p7zip-full packagekit parted passwd patch paxctld pcmanfm perl perl-base perl-modules-5.24 perl-openssl-defaults:armhf phonon:armhf phonon-backend-gstreamer:armhf phonon-backend-gstreamer-common:armhf phonon4qt5:armhf phonon4qt5-backend-vlc:armhf pi-bluetooth pi-greeter pi-language-support pi-package pi-package-data pi-package-session piclone pigpio pimixer pinentry-curses pipanel pishutdown piwiz pkg-config plasma-scriptengine-javascript plymouth plymouth-themes po-debconf point-rpi policykit-1 poppler-data pprompt procps psmisc pulseaudio pulseaudio-utils pypy pypy-lib:armhf python python-all python-all-dev python-apt-common python-automationhat python-blinker python-blinkt python-buttonshim python-cairo python-cap1xxx python-cffi-backend python-chardet python-click python-colorama python-colorzero python-crypto python-cryptography python-dbus python-dev python-drumhat python-enum34 python-envirophat python-explorerhat python-flask python-fourletterphat python-gi python-glade2 python-gobject-2 python-gpiozero python-gtk2 python-httplib2 python-idna python-imaging python-ipaddress python-itsdangerous python-jinja2 python-jwt python-keyring python-keyrings.alt python-markupsafe python-microdotphat python-minimal python-mlt python-mote python-motephat python-numpy python-oauthlib python-openssl python-pantilthat python-phatbeat python-pianohat python-picamera python-picraft python-piglow python-pigpio python-pil:armhf python-pip python-pip-whl python-pkg-resources python-pyasn1 python-pygame python-pygoocanvas python-pyinotify python-rainbowhat python-requests python-requests-oauthlib python-rpi.gpio python-rtimulib python-scrollphat python-scrollphathd python-secretstorage python-sense-hat python-serial python-setuptools python-simplejson python-six python-skywriter python-smbus:armhf python-sn3218 python-spidev python-talloc python-tk python-touchphat python-twython python-unicornhathd python-urllib3 python-werkzeug python-wheel python-xdg python2.7 python2.7-dev python2.7-minimal python3 python3-apt python3-automationhat python3-blinker python3-blinkt python3-buttonshim python3-cap1xxx python3-cffi-backend python3-chardet python3-click python3-colorama python3-colorzero python3-crypto python3-cryptography python3-dbus python3-dev python3-drumhat python3-envirophat python3-explorerhat python3-flask python3-fourletterphat python3-gi python3-gpiozero python3-idna python3-itsdangerous python3-jinja2 python3-jwt python3-keyring python3-keyrings.alt python3-markupsafe python3-microdotphat python3-minimal python3-mote python3-motephat python3-numpy python3-oauthlib python3-openssl python3-pantilthat python3-pgzero python3-phatbeat python3-pianohat python3-picamera python3-picraft python3-piglow python3-pigpio python3-pil:armhf python3-pip python3-pkg-resources python3-pyasn1 python3-pygame python3-pyinotify python3-rainbowhat python3-requests python3-requests-oauthlib python3-rpi.gpio python3-rtimulib python3-scrollphat python3-scrollphathd python3-secretstorage python3-sense-hat python3-serial python3-setuptools python3-simplejson python3-six python3-skywriter python3-smbus:armhf python3-sn3218 python3-spidev python3-tk:armhf python3-touchphat python3-twython python3-unicornhathd python3-uno python3-urllib3 python3-venv python3-werkzeug python3-wheel python3-xdg python3.5 python3.5-dev python3.5-minimal python3.5-venv qdbus qjackctl qml-module-qtgraphicaleffects:armhf qml-module-qtquick-controls:armhf qml-module-qtquick-layouts:armhf qml-module-qtquick-window2:armhf qml-module-qtquick2:armhf qpdfview qpdfview-djvu-plugin qpdfview-ps-plugin qpdfview-translations qt-at-spi:armhf qt5-gtk-platformtheme:armhf qt5-style-plugins:armhf qt5ct qtchooser qtcore4-l10n qttranslations5-l10n rarian-compat raspberrypi-artwork raspberrypi-bootloader raspberrypi-kernel raspberrypi-net-mods raspberrypi-sys-mods raspberrypi-ui-mods raspbian-archive-keyring raspi-config raspi-copies-and-fills raspi-gpio rc-gui rdesktop read-edid readline-common realvnc-vnc-server recordmydesktop rename rfkill rp-prefapps rpcbind rpd-icons rpd-plym-splash rpd-wallpaper rpi-chromium-mods rpi-update rsync rsyslog rtkit samba-common samba-libs:armhf sane-utils scrot sed sense-hat sensible-utils sgml-base sgml-data shared-mime-info sonnet-plugins soprano-daemon sound-theme-freedesktop squeak-vm ssh ssh-import-id strace sudo swh-plugins systemd systemd-sysv sysvinit-utils tar tasksel tasksel-data tcpd timidity tk8.6-blt2.5 traceroute tree triggerhappy tzdata ucf udev udisks2 uno-libs3 unrar unzip update-inetd upower ure usb-modeswitch usb-modeswitch-data usbutils util-linux uuid v4l-utils va-driver-all:armhf vdpau-driver-all:armhf vim-common vim-tiny vlc vlc-bin vlc-data vlc-l10n vlc-plugin-base:armhf vlc-plugin-notify:armhf vlc-plugin-qt:armhf vlc-plugin-samba:armhf vlc-plugin-skins2:armhf vlc-plugin-video-output:armhf vlc-plugin-video-splitter:armhf vlc-plugin-visualization:armhf wamerican wbritish wget whiptail wireless-regdb wireless-tools wiringpi wolframscript wpasupplicant x11-common x11-utils x11-xkb-utils x11-xserver-utils xarchiver xauth xcompmgr xdg-user-dirs xdg-utils xfconf xfonts-100dpi xfonts-encodings xfonts-utils xinit xinput xkb-data xml-core xserver-common xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-libinput xserver-xorg-video-fbdev xserver-xorg-video-fbturbo xxd xz-utils yelp yelp-xsl zenity zenity-common zip zlib1g:armhf zlib1g-dev:armhf
Use this command to install the list of software :
sudo apt-get install $(cat /home/pi/pkglist.txt | awk '{print $1}')

Reboot the Pi

Play the same MP3 file as earlier, and note that there is dropout at the start of play, and additional (random?) dropout and clicks throughout.

Revert back to previous 4.14.98 kernel :

sudo rpi-update a08ece3d48c3c40bf1b501772af9933249c11c5b

Reboot

Play the same MP3 file using VLC. Note that there is brief dropout at start of file, but that continued playback is now without problem.

@XECDesign
Copy link
Contributor

And if you remove pulseaudio?

@blue-smoke
Copy link
Author

And if you remove pulseaudio?

It works :) Audio is fine now under 4.19.42.

I hadn't knowingly installed pulseaudio, I don't know where it came from (or what it does?)

Thanks for the quick response

@XECDesign
Copy link
Contributor

It's listed as a recommended package of some software, so it will sometimes get pulled in automatically when you install other things.

@popcornmix
Copy link
Collaborator

popcornmix commented May 21, 2019

Pulseaudio is generally undesirable if you don't need it (it's quite heavyweight, handling audio resampling/mixing/conversion).

But I'm still curious if the kernel made things worse.
You say the last 4.14 kernel is fine (Hexxeh/rpi-firmware@a08ece3).
Is the first 4.19 kernel good or bad (Hexxeh/rpi-firmware@152b6b8).

You can test with
sudo rpi-update a08ece3d48c3c40bf1b501772af9933249c11c5b

@blue-smoke
Copy link
Author

The new kernel has made things worse when pulseaudio is installed.

Version MP3 dropouts in 1st 2 secs MP3 dropouts & clicks rdp sound ok rdp sound bad
4.14.98-v7+ #1200 Y Y
4.19.23-v7+ #1202 Y Y
4.19.42-v7+ #1218 Y Y Y

With pulseaudio removed, all kernel versions above perform fine, there are no audio dropouts AT ALL when playing mp3, and rdp sound is good.

notes : MP3 dropouts in 1st 2 secs means that there are 2, 3 or 4 brief dropouts when the file starts to play. After this playback is unaffected

MP3 dropouts and clicks means that there are additional dropouts throughout the playback, and there are brief clicks or pops that resemble a vinyl record

RDP sound bad means that using rdesktop to remotely access a Windows PC on the Pi has strangely distorted sound. Recycle bin empty noise sounds like a buzzing insect, default windows ping sounds like a scifi effect!

Let me know if there are further tests I can do.

@popcornmix
Copy link
Collaborator

Okay, so something got worse between 1202 (4.19.23) and 1218 (4.19.42).
Can you confirm the version that made it worse?

4.19.37 (Hexxeh/rpi-firmware@6cf2788) is perhaps the most likely update as it involved bringing in some upstream alsa fixes.

Can you check if that had the bad audio and whether the previous build (Hexxeh/rpi-firmware@4bfbd6d) was good?

@blue-smoke blue-smoke changed the title HMDI audio dropouts / distortion under certain scenarios in kernel 4.19 HDMI audio dropouts / distortion under certain scenarios in kernel 4.19 May 22, 2019
@blue-smoke
Copy link
Author

Version MP3 dropouts in 1st 2 secs MP3 dropouts & clicks rdp sound ok rdp sound bad
4.14.98-v7+ #1200 Y Y
4.19.23-v7+ #1202 Y Y
4.19.36-v7+ #1213 Y did not test did not test
4.19.37-v7+ #1214 NO SOUND NO SOUND did not test did not test
4.19.37-v7+ #1215 Y Y did not test did not test
4.19.42-v7+ #1218 Y Y Y

With 4.19.37 1214 there was no sound at all, and the volume control had a red X on it.
So I tried the next commit, taking me to 4.19.37 1215 and it's there that the mp3 playback gets the crackles and pops and far more dropouts.

The Windows PC isn't immediately available today so I didn't test the rdesktop sound for these 2 new tests.

@blue-smoke
Copy link
Author

Version MP3 dropouts in 1st 2 secs MP3 dropouts & clicks rdp sound ok rdp sound bad
4.14.98-v7+ #1200 Y Y
4.19.23-v7+ #1202 Y Y
4.19.36-v7+ #1213 Y Y
4.19.37-v7+ #1214 NO SOUND NO SOUND did not test did not test
4.19.37-v7+ #1215 Y Y Y
4.19.42-v7+ #1218 Y Y Y

I've re-run the tests of 1213, 1215 and 1218, using rdesktop to remotely connect to a Windows PC. The table above is updated.

So, it seems the sound problem got worse between 1213 and 1215 when using Raspbian with Pulseaudio installed.

The rdesktop sound is very distorted 1215 onwards when Pulseaudio is present.

@ghost
Copy link

ghost commented Jul 22, 2019

I have encountered a similar issue, but a much simpler scenario, which may help troubleshooting. Raspberry Pi B running Raspbian Lite Stretch, using 'aplay' to output notifications via the 3.5mm jack. Ran apt-get upgrade and updated to the 4.19 kernel tree, immediately started getting audio truncation issues (1-2 seconds of clip dropped on playback). Did some troubleshooting, and reverting to kernel 4.19.34 resolves the issues for me. Excluding kernel updates at the moment until this is fixed.

Let me know if there's anything I can do to assist in resolving this issue.

@dimitry-ishenko
Copy link

dimitry-ishenko commented Aug 3, 2019

Sorry for dumb question, but what do the numbers 1202, 1214, etc refer to? They link to PRs from 2015, which doesn't make sense.

I am also experiencing crackling when playing audio through HDMI with pulseaudio and would like to try one of the kernels. If I understand it correctly, running
sudo rpi-update c50c65e52bad69e8fa7d6576d9e2399eade7faf6
should give me the 4.19.36 kernel, which works well for @blue-smoke?

@pelwell
Copy link
Contributor

pelwell commented Aug 3, 2019

Sorry for dumb question, but what do the numbers 1202, 1214, etc refer to? They link to PRs from 2015, which doesn't make sense.

They are kernel build numbers. Each kernel build is counted, and although the count resets when you move to a new directory or computer we try to adjust them to make a single sequence.

@sakaki-
Copy link

sakaki- commented Aug 27, 2019

Just a quick question / possible workaround: per Darksky's suggestion on the Manjaro forum here, do the audio issues still occur under pulseaudio if you set tsched=0 in /etc/pulse/default.pa as follows (and reboot)?

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect tsched=0
.else

Best, sakaki

@dimitry-ishenko
Copy link

In my case I had to manually add my audio device, as pulse wasn't detecting it. I had initially set number of channels to 6 (my system is 5.1) and after setting tsched=0 still had dropouts. When I changed the channels to 8, it magically fixed the problem. Here is what I ended up doing:

load-module module-alsa-sink name=HDMI device=hw:0,1 channels=8 tsched=0

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect tsched=0
.else

@ghost
Copy link

ghost commented Aug 28, 2019

In my case, I’m running Raspbian Lite, so pulse is not even installed, and I’m getting stutter and truncated audio just using aplay on the command line. This definitely points to a kernel level / ALSA issue in my case. On that note, I updated to the latest kernel earlier this week on my test system and the issue is still not resolved.

@ghost
Copy link

ghost commented Sep 1, 2019

As this issue is still open, did more testing this weekend and confirmed the ALSA 5.1 kernel "back ports" in Raspbian kernel 4.19.37 are the culprit (at least for aplay on the command line - sound is perfect right up to 4.19.36+ on all my systems). Looking at the mainline Linux kernel, there are plenty of additional ALSA fixes in 5.2. Not being a kernel expert, nothing in the changelog seems like an obvious fix to this issue, so hoping someone with more knowledge of the ALSA code can look at it...

@dimitry-ishenko
Copy link

@bftsystems have you tried setting it to 8 channels (7.1) to see if that makes a difference?

@ghost
Copy link

ghost commented Sep 1, 2019

@dimitry-ishenko I'm running Raspbian-Lite, so pulseaudio isn't even installed. Since kernel 4.19.37 in May, I've been having clipping issues using plain old 'aplay' from the terminal. Only resolution so far has been to roll-back to 4.19.36. I've actually downloaded the kernel code and am building the kernel from source with the alsa fixes I found in the Linux 5.2 kernel, and will report back...

@dimitry-ishenko
Copy link

@bftsystems I meant aplay -c 8 ...

@ghost
Copy link

ghost commented Sep 2, 2019

@dimitry-ishenko I tried that, and it didn't work. Interesting update though. I downloaded a copy or the latest kernel (4.19.69) from git, and the most recent official raspbian kernel source files which worked for me (linux-raspberrypi-kernel_1.20190401-1). I pulled the bcm2835-audio source files from the old kernel (everything under 'drivers/staging/vc04_services/bcm2835-audio/') and replaced the files in the new kernel. I rebuilt and reinstalled this new kernel on my 3B, and here's the thing, after rebooting, the sound is still "clipped" when played using aplay, so these changes don't seem to have caused the issue.

I looked into the change logs further, and noticed there was a further commit on May 2nd to fix the audio module not loading properly (issue labeled as 'Revert staging: bcm2835-audio: Drop DT dependency'). I reverted these changes as well, rebooted, and now my sound is working PERFECTLY under kernel 4.19.69. So, it seems something in this DT dependency fix to the firmware blobs is actually what is causing the audio issues, not the back-ported alsa patches in kernel 4.19.36.

Not sure where to take this from here, or who to report this issue to get attention on it. Any thoughts???

@dimitry-ishenko
Copy link

@bftsystems could you point me to that commit? I am no kernel expert, but I'd like to take a peek

@ghost
Copy link

ghost commented Sep 2, 2019

@dimitry-ishenko Well, I have good news and bad news. To confirm my findings, I downloaded a fresh copy of kernel 4.19.69, and reverted the ALSA code changes from Raspbian pull request #2948 (#2948). But to my surprise, after rebuilding the kernel, this fixed the sound issues without any additional changes. When I did this yesterday, it didn't fix the audio issues, so I must have missed something in my first attempt.

The good news is that this confirms the sound issues are introduced by one of the patches in PR #2948. Now we just need to review the individual commits in PR #2948 and identify which is causing the issue.

@dimitry-ishenko
Copy link

@bftsystems I would try running git bisect to see if you can nail it the exact commit. And then go from there. There are 44 commits in the PR, so should be able to hit it in around 6 hops.

@ghost
Copy link

ghost commented Sep 4, 2019

@dimitry-ishenko Git bisect...where have you been all my life? Thanks for the tip. After about 5 tries, I was able to isolate commit 'bcc5def6f0e80412edc624649c11e6f4dcf6643c' (bcm2835-audio: Operate non-atomic PCM ops) as the culprit. Unfortunately, it's the biggest commit in the group and makes a bunch of code changes which can't be reverted without affecting newer commits. Should I submit an issue against this specific commit, or contact the author directly?

@pelwell
Copy link
Contributor

pelwell commented Sep 4, 2019

What do you think, @tiwai?

@dimitry-ishenko
Copy link

dimitry-ishenko commented Sep 4, 2019

Well at least now we know who the culprit is... 😉

@ghost
Copy link

ghost commented Sep 11, 2019

@pelwell @dimitry-ishenko @tiwai On a hunch, I have confirmed the issue seems to be in the new draining logic. I changed the code to bypass the new draining logic (see code change below) and this resolves the issue for me. WAV files played via aplay on the command line now play successfully without being truncated before the end of the sound clip.

case SNDRV_PCM_TRIGGER_DRAIN:
    alsa_stream->draining = true;
    /* return bcm2835_audio_drain(alsa_stream); */
    return 0;

I commented out return bcm2835.. and restored the return 0; code to skip the new draining logic. As mentioned, this resolves the issue for me, not sure what else this would break for other folks.

@JamesH65
Copy link
Contributor

JamesH65 commented Sep 11, 2019

@bftsystems Since you are building kernels, and have a test setup, can you try, in drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c, the following change (you'll need to remove your change commenting out the call)

int bcm2835_audio_drain(struct bcm2835_alsa_stream *alsa_stream)
{
	struct vc_audio_msg m = {
		.type = VC_AUDIO_MSG_TYPE_STOP,
		.stop.draining = 1,  **<<<<<<<< change this to a 0.**
	};

	return bcm2835_audio_send_msg(alsa_stream->instance, &m, false);
}

Note, this is not a fix, as this I think needs to be changed in firmware, but should indicate a smoking gun.

@ghost
Copy link

ghost commented Sep 11, 2019

@JamesH65 James, I reverted my code changes in bcm2835-pcm.c and applied the changes you suggested. The issue is back, sound is once again clipped/truncated using aplay. I hope that gives you the information you were looking for...

@tiwai
Copy link
Contributor

tiwai commented Sep 11, 2019

It implies that the chip (firmware) doesn't behave as expected regarding the draining.
The simplest workaround would be to remove SNDRV_PCM_INFO_TRIGGER_DRAIN from snd_bcm2835_playback_hw.info and snd_bcm2835_playback_spdif_hw.info flags.

@popcornmix
Copy link
Collaborator

popcornmix commented Sep 11, 2019

@tiwai I guess the question is what is the expected behaviour of the call?

The firmware code has audioplus which is quite an advanced sound layer that accepts inputs from multiple clients (there may be up to 8 alsa clients, plus openmax/mmal audio_render clients) and handles resampling and mixing together, plus dma to hdmi or pwm device.

The audioplus dma buffer allows up to a few hundred milliseconds of audio data (after the resampling and mixing). Once submitted to audioplus you can't retract your samples without flushing other clients audio (as it's already been mixed).

audioserver is what the alsa driver talks to (but not openmax/mmal). To reduce the amount of unretractable audio, it has its own queue of audio samples from each client and only submits them to audioplus when there is less than 50ms of latency on that channel.

VC_AUDIO_MSG_TYPE_STOP causes audioserver to stop pushing audio from its queue to audioplus. If .stop.draining = 0 then it also discards its current queue. As said before it can't retract the (up to) 50ms of audio already submitted to audioplus.

[edit: correct polarity of stop.draining in description]

@ghost
Copy link

ghost commented Sep 12, 2019

@popcornmix Alright, last update on this today. I reverted all my code changes and only removed the SNDRV_PCM_INFO_DRAIN_TRIGGER flag as suggested by @tiwai, and the problem is resolved (as expected). So where do we go from here? I have confirmed this issue on an RPIB, W and 3B+, so it is not hardware specific. Should a commit be submitted to have the DRAIN_TRIGGER flag removed until a permanent fix is available? I'm no kernel developer, so looking to the experts for direction on this one...

@tiwai
Copy link
Contributor

tiwai commented Sep 12, 2019

Yes, the driver code needs the fix so that the existing devices work. I'm going to submit the fix to upstream.
Once when the firmware gets some updates, we may consider restoring the feature, but I don't think it'd be needed. After all, the drain-trigger is merely a would-be-nice feature for the device that supports such behavior.

@popcornmix
Copy link
Collaborator

@tiwai can you ping when you have submitted the fix upstream?
I'll cherry pick it to this tree.

fengguang pushed a commit to 0day-ci/linux that referenced this issue Sep 16, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: raspberrypi/linux#2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
popcornmix pushed a commit that referenced this issue Sep 24, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: #2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
popcornmix added a commit to raspberrypi/firmware that referenced this issue Sep 24, 2019
kernel: staging: bcm2835-audio: Fix draining behavior regression
See: raspberrypi/linux#2983

kernel: configs: Update bcm2711 arm64 USB options to match arm
See: raspberrypi/linux#3254

kernel: configs: Enable CONFIG_NET_VRF=m
See: raspberrypi/linux#3253

firmware: platform: Switch to divide by one when arm_freq exceeds 2GHz

firmware: Add EMMC support to 2711 Arasan EMMC driver

firmware: arm_loader: Use /memory@0 if found
See: raspberrypi/linux#3244

firmware: bootloader_state: Fix length for bootloader_config

firmware: arasan_emmc: Fix STB_GPIOOVERRIDE for MMC1 in network boot
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue Sep 24, 2019
kernel: staging: bcm2835-audio: Fix draining behavior regression
See: raspberrypi/linux#2983

kernel: configs: Update bcm2711 arm64 USB options to match arm
See: raspberrypi/linux#3254

kernel: configs: Enable CONFIG_NET_VRF=m
See: raspberrypi/linux#3253

firmware: platform: Switch to divide by one when arm_freq exceeds 2GHz

firmware: Add EMMC support to 2711 Arasan EMMC driver

firmware: arm_loader: Use /memory@0 if found
See: raspberrypi/linux#3244

firmware: bootloader_state: Fix length for bootloader_config

firmware: arasan_emmc: Fix STB_GPIOOVERRIDE for MMC1 in network boot
@popcornmix
Copy link
Collaborator

I've cherry-picked @tiwai's patch and it is in latest rpi-update kernel.
Can any users with issues test it and report back?

@ghost
Copy link

ghost commented Sep 25, 2019

Just ran rpi-update and rebooted. Everything working perfect, no sound issues to report. Here's the output of uname -a for confirmation.

Linux rpi3 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l GNU/Linux

pelwell pushed a commit that referenced this issue Sep 25, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: #2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
pelwell pushed a commit that referenced this issue Sep 25, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: #2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
popcornmix pushed a commit that referenced this issue Oct 4, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: #2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
popcornmix pushed a commit that referenced this issue Oct 4, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: #2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
popcornmix pushed a commit that referenced this issue Oct 11, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: #2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
popcornmix pushed a commit that referenced this issue Oct 11, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: #2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
@blue-smoke
Copy link
Author

I'm a bit late coming back to this, sorry. The original test Pi I was using has been repurposed, and I've been away.

So, to test the updates I installed the latest Raspbian with desktop on a Pi3B+ and let it update so it's running latest stock releases.

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l GNU/Linux

MP3 playback perfect
install rdesktop
Use rdesktop to connect to Win 7 box. Sound ok - Win 7 Sample music "Kalimba - Mr Scruff" plays OK via remote desktop.

install pulseaudio
reboot

mp3 playback stutter at start for 1-2 seconds then playback is ok
rdesktop sound very distorted - sample music on Win7 box is unlistenable

So at this stage, things are improved with 4.19.75 #1270 . The MP3 playback, which previously was stuttering and popping, is now just briefly stuttering as it begins playing, then settles down. This is how it always used to be with Pulseaudio installed.

BUT the rdesktop sound is still very distorted. Playing the Win7 sample music is unlistenable. It's metallic (not simply low bitrate sounding, just.. weird)

I then tried rpi-update

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.79-v7+ #1273 SMP Fri Oct 11 18:13:16 BST 2019 armv7l GNU/Linux

mp3 playback stutter at start for 1-2 seconds then playback is ok (as before)
But a new problem - rdesktop screen corrupted and unusable.

I rebooted the Windows 7 box, still the corrupted screen with rdekstop from the pi with 4.19.79 #1273

When I reverted back with

pi@raspberrypi:~ $ sudo apt-get install --reinstall raspberrypi-bootloader raspberrypi-kernel


pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.75-v7+ #1270 SMP Tue Sep 24 18:45:11 BST 2019 armv7l GNU/Linux

mp3 playback stutter at start (as before)
rdesktop screen now OK, sound still distorted (as before)

And finally, removing pulseaudio fixes all the sound issues.

So..

MP3 playback is better with the current kernel + pulseaudio
rdesktop still has distorted sound with current kernel + pulseaudio
removing / not installing pulseaudio makes mp3 playback and rdesktop sound perfect
and something in 4.19.79 #1273 breaks rdesktop and the display is corrupted

Whissi pushed a commit to Whissi/linux-stable that referenced this issue Oct 17, 2019
commit 2eed19b upstream.

The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: raspberrypi/linux#2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/r/20190914152405.7416-1-tiwai@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
damentz pushed a commit to zen-kernel/zen-kernel that referenced this issue Oct 17, 2019
commit 2eed19b upstream.

The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: raspberrypi/linux#2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/r/20190914152405.7416-1-tiwai@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
brauner pushed a commit to brauner/ubuntu-eoan that referenced this issue Oct 22, 2019
BugLink: https://bugs.launchpad.net/bugs/1848750

commit 2eed19b99c8e95ff87afe6c140ed895c3fac5937 upstream.

The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: raspberrypi/linux#2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/r/20190914152405.7416-1-tiwai@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Connor Kuehl <connor.kuehl@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
jackpot51 pushed a commit to pop-os/linux that referenced this issue Oct 24, 2019
BugLink: https://bugs.launchpad.net/bugs/1848750

commit 2eed19b upstream.

The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: raspberrypi/linux#2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/r/20190914152405.7416-1-tiwai@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Connor Kuehl <connor.kuehl@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
pelwell pushed a commit that referenced this issue Oct 29, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: #2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
starnight pushed a commit to endlessm/linux that referenced this issue Nov 13, 2019
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: raspberrypi/linux#2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/r/20190914152405.7416-1-tiwai@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
haokexin pushed a commit to haokexin/linux that referenced this issue Nov 26, 2019
commit 2eed19b upstream.

The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a7 ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: raspberrypi/linux#2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/r/20190914152405.7416-1-tiwai@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
phhusson pushed a commit to phhusson/dkms-rpi-codec that referenced this issue Jun 26, 2020
The PCM draining behavior got broken since the recent refactoring, and
this turned out to be the incorrect expectation of the firmware
behavior regarding "draining".  While I expected the "drain" flag at
the stop operation would do processing the queued samples, it seems
rather dropping the samples.

As a quick fix, just drop the SNDRV_PCM_INFO_DRAIN_TRIGGER flag, so
that the driver uses the normal PCM draining procedure.  Also, put
some caution comment to the function for future readers not to fall
into the same pitfall.

Fixes: d7ca3a71545b ("staging: bcm2835-audio: Operate non-atomic PCM ops")
BugLink: raspberrypi/linux#2983
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Stefan Wahren <wahrenst@gmx.net>
Link: https://lore.kernel.org/r/20190914152405.7416-1-tiwai@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
@rogergithubbing
Copy link

Hello, I don't know if the problems described in this forum could have the same origin (I'd made the latests posts there explaining that I have the same problem as the initial posting person):

https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=256402&p=1769475#p1769475

In any case, what could be done to fix the issue described in the included link ? I'm very confused about this problem. How can I uninstall 'pulseaudio' to check if this fixes the issue ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants