I’ve looked through hundreds of threads and the problem finally got solved.
First, i check error with sudo dmesg to find that whether needed firmware is missing.If missing, just using sudo apt install.
Then in my case, I needed to add the following boot parameter to grub: “snd-intel-dspcfg.dsp_driver=0”.
That’s open /etc/default/grub with text editor , maybe vim or any other one. Find GRUB_CMDLINE_LINUX_DEFAULT= “”
Then add snd-intel-dspcfg.dsp_driver=1 into “”
After modifying: GRUB_CMDLINE_LINUX_DEFAULT=“snd-intel-dspcfg.dsp_driver=1”
save and quit. (you may find other threads told you to add snd-intel-dspcfg.dsp_driver=0, in my case, it doesn’t matter i set that to 1 or 0)
Typde in terminal “sudo update-grub”, Then reboot. You’ll find Hardware be detected, but be disabled.
Don’t worry, that’s almost done.
At last, “sudo vi /etc/modprobe.d/alsa-base.conf”(yes, this file may not exist and you should create it), type “options snd-hda-intel dmic_detect=0” into it(If you use intel sound card, others just substitute “snd-hda-intel dmic” with the sound card be detected), save and quit. After rebooting everything will be fine.
Attention: I’m just a beginner and i cannot guarantee that work well on your machine.(Mine is yoga c740)