pop-os / pop

A project for managing all Pop!_OS sources
https://system76.com/pop
2.47k stars 87 forks source link

Dell XPS 9700 (2020) - no sound #1116

Open dodalovic opened 4 years ago

dodalovic commented 4 years ago
NAME="Pop!_OS"
VERSION="20.04 LTS"
ID=pop
ID_LIKE="ubuntu debian"
PRETTY_NAME="Pop!_OS 20.04 LTS"
VERSION_ID="20.04"
HOME_URL="https://system76.com/pop"
SUPPORT_URL="http://support.system76.com"
BUG_REPORT_URL="https://github.com/pop-os/pop/issues"
PRIVACY_POLICY_URL="https://system76.com/privacy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
LOGO=distributor-logo-pop-os

Issue/Bug Description:

Currently, I can only see some Dummy output in my sound devices list. I'm up to date with all the latest updates.

Please, let me know which kind of input I can provide from my side.

Many thanks, hopefully we get this resolved :)

cfindlayisme commented 4 years ago

What's the output of the command lspci ?

I have a XPS 15 7590 and the output shows me: 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)

I presume yours shows audio somewhere in there as well?

dodalovic commented 4 years ago
~ lspci

00:00.0 Host bridge: Intel Corporation 10th Gen Core Processor Host Bridge/DRAM Registers (rev 02)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 02)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics (rev 05)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 02)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Comet Lake PCH Thermal Controller
00:13.0 Serial controller: Intel Corporation Device 06fc
00:14.0 USB controller: Intel Corporation Comet Lake USB 3.1 xHCI Host Controller
00:14.2 RAM memory: Intel Corporation Comet Lake PCH Shared SRAM
00:14.3 Network controller: Intel Corporation Wi-Fi 6 AX201
00:15.0 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH Serial IO I2C Controller #0
00:15.1 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH Serial IO I2C Controller #1
00:16.0 Communication controller: Intel Corporation Comet Lake HECI Controller
00:1b.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #17 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Device 06b8 (rev f0)
00:1c.4 PCI bridge: Intel Corporation Device 06bc (rev f0)
00:1d.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #9 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device 068e
00:1f.3 Multimedia audio controller: Intel Corporation Comet Lake PCH cAVS
00:1f.4 SMBus: Intel Corporation Comet Lake PCH SMBus Controller
00:1f.5 Serial bus controller [0c80]: Intel Corporation Comet Lake PCH SPI Controller
02:00.0 Non-Volatile memory controller: Toshiba Corporation Device 011a
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5260 PCI Express Card Reader (rev 01)
04:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
05:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
05:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
05:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
05:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
06:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] (rev 06)
3a:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] (rev 06)
6e:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
6f:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
6f:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
6f:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
6f:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
70:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] (rev 06)
a4:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] (rev 06)
cfindlayisme commented 4 years ago

What do you get from running:

dmesg | grep snd

I'm wondering if it's getting the kernel module loaded at all, and if it's having any issues if it is loading.

For example, mine shows this:

[  232.964096] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[  232.965944] snd_hda_intel 0000:00:1f.3: enabling device (0000 -> 0002)
[  232.966463] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[  233.015976] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC3266: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[  233.015978] snd_hda_codec_realtek hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[  233.015979] snd_hda_codec_realtek hdaudioC0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[  233.015980] snd_hda_codec_realtek hdaudioC0D0:    mono: mono_out=0x0
[  233.015981] snd_hda_codec_realtek hdaudioC0D0:    inputs:
[  233.015992] snd_hda_codec_realtek hdaudioC0D0:      Headset Mic=0x18
[  233.015993] snd_hda_codec_realtek hdaudioC0D0:      Headphone Mic=0x1a
[  233.015995] snd_hda_codec_realtek hdaudioC0D0:      Internal Mic=0x12

And you can see the different ins/outs. If yours isn't detecting these properly then we should see some sort of error here I'd think.

EDIT: Fixed code blocks, did quotes by mistake

dodalovic commented 4 years ago
➜  ~ dmesg | grep snd
[   12.904613] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   12.910119] snd_hda_intel 0000:00:1f.3: enabling device (0000 -> 0002)
[   12.911914] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
➜  ~ 
cfindlayisme commented 4 years ago

So it definitely seems to be having an issue loading an actual module codec and it extends into other distros from what I'm seeing from some searches for the 9700s, not specific to Pop. The Realtek ALC711-CG card is the issue. The stuff isn't up to date in the mainline kernel branches at this time.

I figured it would use the same realtek codec modules as my same year XPS 15 but it appears not. But that's the showstopper there as shown between our two dmesg | grep snd outputs.

One guy there seems to have a fix for it for Ubuntu but it does involve compiling some more bleeding-edge stuff. See https://blog.fts.scot/2020/07/04/dell-xps-2020-how-to-get-audio-working-on-linux/

Sorry I couldn't be of more help!

gabrielspadon commented 4 years ago

I made a bundle that I used in my XPS 9700. Let me know if you have any problems.

The packages I'm using come from https://blog.fts.scot/2020/07/04/dell-xps-2020-how-to-get-audio-working-on-linux/. But there are other few workarounds that I applied to this problem.

sound-fix.zip

dodalovic commented 4 years ago

@gabrielspadon Got errors, any clue? result.txt

gabrielspadon commented 4 years ago

@dodalovic That's a new one for me. Let you know if I figure it out.

dodalovic commented 4 years ago

@gabrielspadon Any idea how do I revert changes? :shrug: :disappointed:

gabrielspadon commented 4 years ago

These are default packages; you don't need to worry about it. But, if you want to be sure, just run: sudo apt-get install --reinstall linux-firmware alsa-base alsa-ucm-conf alsa-utils libasound2 linux-sound-base pulse pulseaudio pulseaudio-module-bluetooth pavucontrol

dodalovic commented 4 years ago

I'm getting this during the execution:

cp: cannot stat 'sof-soundwire/*': No such file or directory

I guess this line has some unmet expectancy:

sudo cp -r sof-soundwire/* /usr/share/alsa/ucm2/sof-soundwire/

@gabrielspadon

gabrielspadon commented 4 years ago

@dodalovic, try this instead:

git clone https://github.com/thesofproject/alsa-ucm-conf.git sudo cp -r alsa-ucm-conf/ucm2/sof-soundwire/* /usr/share/alsa/ucm2/sof-soundwire/

dodalovic commented 4 years ago

@gabrielspadon Nothing, still seeing just Dummy output as my output device. :shrug:

gabrielspadon commented 4 years ago

@dodalovic I just updated my Pop!_OS to the 20.10, which made my system lose the Audio Driver (as I expected). I followed the same steps I shared with you, and things are working just fine. Maybe you want to update your whole system and try again?

1) Update your whole system to 20.10 and after that (to be sure):

sudo apt update sudo apt upgrade -y sudo apt full-upgrade -y

Go to the Pop Shop and also install the updates you have over there.

In case you have an Nvidia GPU, which is not being detected by your system after the update, do the following:

sudo apt remove --purge *nvidia* sudo apt remove --purge *cuda* sudo apt remove --purge *cudnn* sudo** apt autoremove

Reboot!

system76-driver system76-driver-nvidia -y sudo apt install system76-cuda system76-cudnn-10.2 -y`

Reboot!

2) Download and unpack on a designated folder: sound-files.zip.

3) After that, run one line at a time:

sudo apt-get install --reinstall linux-firmware -y sudo apt-get install --reinstall alsa-base alsa-ucm-conf alsa-utils libasound2 linux-sound-base pulseaudio pulseaudio-module-bluetooth -y

systemctl --user restart pulseaudio

rm -r ~/.config/pulse

pulseaudio -k

sudo apt install --reinstall alsa-base alsa-utils pulseaudio linux-sound-base libasound2 pavucontrol

sudo dpkg -i ./soundwire-dkms_1.2.2_all.deb sudo apt-get install -f

sudo cp -vr sof-firmware-1.5.1-1-any.pkg/usr/ / sudo cp -vr alsa-ucm-conf/ucm2/sof-soundwire/* /usr/share/alsa/ucm2/sof-soundwire/

sudo alsa force-reload pulseaudio --start

Reboot!

In case you have any problem installing the apt packages, ignore any broken package and keep following the pipeline.

dodalovic commented 4 years ago
➜  sound-files sudo dpkg -i ./soundwire-dkms_1.2.2_all.deb
Selecting previously unselected package soundwire-dkms.
(Reading database ... 214210 files and directories currently installed.)
Preparing to unpack ./soundwire-dkms_1.2.2_all.deb ...
Unpacking soundwire-dkms (1.2.2) ...
Setting up soundwire-dkms (1.2.2) ...
Loading new soundwire-1.2.2 DKMS files...
First Installation: checking all kernels...
Building only for 5.8.0-7625-generic
Building for architecture amd64
Building initial module for 5.8.0-7625-generic
Error!  The /var/lib/dkms/soundwire/1.2.2/5.8.0-7625-generic/amd64/dkms.conf for module soundwire includes a BUILD_EXCLUSIVE directive which
does not match this kernel/arch.  This indicates that it should not be built.
Done.

@gabrielspadon OK? I ignored this, proceeded with the steps, until my system got frozen. After hard reboot - things haven't changed, still having just Dummy output

gabrielspadon commented 4 years ago

@dodalovic what is your kernel version? Have you updated to 20.10?

dodalovic commented 4 years ago
  ~ uname -a
Linux pop-os 5.8.0-7625-generic #26~1603126178~20.10~210fe73-Ubuntu SMP Tue Oct 20 01:12:15 UTC  x86_64 x86_64 x86_64 GNU/Linux

image

gabrielspadon commented 4 years ago

That is the problem, you are running at 5.8 and I'm running 5.6:

Linux POP-OS 5.6.0-1032-oem #33-Ubuntu SMP Fri Oct 16 12:04:33 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Try to downgrade it to 5.6 and do exactly as I did and you should get it working.

dodalovic commented 4 years ago

Thanks, @gabrielspadon for the clarification So, this basically has nothing to do with PopOS! ... Nevertheless, this is all embarrassing :shrug:

gabrielspadon commented 4 years ago

@dodalovic that is because our laptop is too new and drivers are not that generic :P But you made the right choices so far, as Pop is running smoothly with the new XPS. Just try to downgrade that Kernel version, and you should be fine!