Laptop's Built-In Audio Devices are not working in Fedora but in Windows they do

I’m currently using Fedora 36 as main OS alongside with Windows 10. I frequently use external audio devices (USB Audio Monitor) and they work fine, but the Laptop’s Built-In Audio isn’t responding. After a few more testing I realized there is something wrong in Fedora (specifically pipewire) because all the audio devices work fine in Windows.
Here is the output of arecord -l

**** List of CAPTURE Hardware Devices ****
card 0: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC294 Analog [ALC294 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

USB Audio CODEC works fine, but HDA Intel PCH (Laptop’s Integrated Sound Card) doesn’t recieve input nor deliver output. I leave here my system info:

[user@pc ~]$ inxi -Fzx

System:
  Kernel: 5.18.5-200.fc36.x86_64 arch: x86_64 bits: 64 compiler: gcc
    v: 2.37-27.fc36 Desktop: GNOME v: 42.2
    Distro: Fedora release 36 (Thirty Six)
Machine:
  Type: Laptop System: ASUSTeK product: VivoBook 15_ASUS Laptop X542UF v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: X542UF v: 1.0 serial: <superuser required>
    UEFI: American Megatrends v: X542UF.306 date: 05/22/2019
Battery:
  ID-1: BAT0 charge: 26.7 Wh (99.3%) condition: 26.9/38.0 Wh (70.9%)
    volts: 7.7 min: 7.7 model: ASUSTeK ASUS Battery status: not charging
CPU:
  Info: quad core model: Intel Core i5-8250U bits: 64 type: MT MCP
    arch: Coffee Lake rev: A cache: L1: 256 KiB L2: 1024 KiB L3: 6 MiB
  Speed (MHz): avg: 3400 high: 3401 min/max: 400/3400 cores: 1: 3401
    2: 3400 3: 3401 4: 3401 5: 3400 6: 3400 7: 3400 8: 3401 bogomips: 28800
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel UHD Graphics 620 vendor: ASUSTeK driver: i915 v: kernel
    bus-ID: 00:02.0
  Device-2: NVIDIA GM108M [GeForce MX130] vendor: ASUSTeK driver: nvidia
    v: 510.68.02 arch: Maxwell bus-ID: 01:00.0
  Device-3: IMC Networks USB2.0 VGA UVC WebCam type: USB driver: uvcvideo
    bus-ID: 1-6:5
  Display: x11 server: X.Org v: 1.20.14 with: Xwayland v: 22.1.2 driver: X:
    loaded: modesetting,nvidia unloaded: fbdev,nouveau,vesa gpu: i915
    resolution: 1: 1366x768~60Hz 2: 1366x768~60Hz
  OpenGL: renderer: NVIDIA GeForce MX130/PCIe/SSE2
    v: 4.6.0 NVIDIA 510.68.02 direct render: Yes
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 00:1f.3
  Device-2: Texas Instruments PCM2902 Audio Codec type: USB
    driver: hid-generic,snd-usb-audio,usbhid bus-ID: 1-1:2
  Sound Server-1: ALSA v: k5.18.5-200.fc36.x86_64 running: yes
  Sound Server-2: PulseAudio v: 15.0 running: no
  Sound Server-3: PipeWire v: 0.3.52 running: yes
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: ASUSTeK driver: r8169 v: kernel port: d000 bus-ID: 02:00.0
  IF: enp2s0 state: down mac: <filter>
  Device-2: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter
    vendor: AzureWave driver: ath10k_pci v: kernel bus-ID: 03:00.0
  IF: wlp3s0 state: up mac: <filter>
Bluetooth:
  Device-1: IMC Networks type: USB driver: btusb v: 0.8 bus-ID: 1-8:6
  Report: rfkill ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
    rfk-block: hardware: no software: yes address: see --recommends
Drives:
  Local Storage: total: 1.39 TiB used: 28.47 GiB (2.0%)
  ID-1: /dev/sda vendor: Seagate model: ST1000LM035-1RK172 size: 931.51 GiB
  ID-2: /dev/sdb vendor: Samsung model: SSD 860 EVO M.2 500GB
    size: 465.76 GiB
  ID-3: /dev/sdc type: USB vendor: SanDisk model: Ultra size: 28.97 GiB
Partition:
  ID-1: / size: 464.76 GiB used: 28.23 GiB (6.1%) fs: btrfs dev: /dev/sdb2
  ID-2: /boot size: 973.4 MiB used: 206.3 MiB (21.2%) fs: ext4
    dev: /dev/sdb1
  ID-3: /boot/efi size: 96 MiB used: 38.9 MiB (40.5%) fs: vfat
    dev: /dev/sda1
  ID-4: /home size: 464.76 GiB used: 28.23 GiB (6.1%) fs: btrfs
    dev: /dev/sdb2
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 62.0 C pch: 55.5 C mobo: N/A gpu: nvidia
    temp: 59 C
  Fan Speeds (RPM): cpu: 3500
Info:
  Processes: 725 Uptime: 3h 34m Memory: 15.41 GiB used: 2.79 GiB (18.1%)
  Init: systemd runlevel: 5 Compilers: gcc: 12.1.1 Packages: N/A
  note: see --pkg Shell: Bash v: 5.1.16 inxi: 3.3.16

EDIT: I tried switching to pulseaudio, however the problem still persisted.

I leave above my system specifications.

@hina18 @archerallstars found this UPDATE: in the end, the only way to make the sound out of my HDMI is to use the HDaudio legacy driver by adding the options snd-intel-dspcfg dsp_driver=1 in the /etc/modprobe.d/snd-intel.conf file. Then running sudo dracut --force and reboot. (Fedora 36: no sound coming out of HDMI, Intel i5 8250U, setting intel_iommu=on,igfx_off in grub doesn't help - #7 by archerallstars)
Maybe that is some help?

1 Like

You put a smile on my face. I read that the solution poster originally said that in the long run this might be a ‘poison’, but for now I’m glad it solved a problem I was trying to fix for more than 3 days.

1 Like

I do not see snd-intel.conf file in the path /etc/modprobe.d/snd-intel.conf. What should I do?

The user makes a configuration file if it doesn’t exist.
This method requires root, sudo doesn’t work:

echo "options snd-intel-dspcfg dsp_driver=1" >> /etc/modprobe.d/snd-intel.conf

Did you try that as

sudo echo "options snd-intel-dspcfg dsp_driver=1" >> /etc/modprobe.d/snd-intel.conf

It works for me.

@computersavvy
This is why it doesn’t work on any of my linux installs:
The construction sudo echo “something” >> file returns Permission denied because the redirection >> that prints to file is executed not by sudo echo, but by the current user’s shell that is not running as root.

[rj@rawhide ~]$ sudo echo "options snd-intel-dspcfg dsp_driver=1" >> /etc/modprobe.d/snd-intel.conf 
bash: /etc/modprobe.d/snd-intel.conf: Permission denied
echo "options snd-intel-dspcfg dsp_driver=1" | sudo tee /etc/modprobe.d/snd-intel.conf 
sudo bash -c 'echo "options snd-intel-dspcfg dsp_driver=1" > /etc/modprobe.d/snd-intel.conf'