When a fresh Arch Linux installation on a ThinkPad L14 reports no sound cards, the issue usually stems from missing firmware, disabled kernel modules, or incorrect PulseAudio/PipeWire configuration. By verifying hardware detection with lspci, installing necessary firmware packages, and ensuring the audio daemon is running, you can restore full audio functionality without needing complex driver recompilation.
Verifying Hardware Detection
The first step in troubleshooting audio issues is to confirm that the operating system recognizes the physical hardware. ThinkPad L14 models typically utilize Intel High Definition Audio (HDA) controllers or newer Realtek codecs. You should open a terminal and run the commandlspci | grep -i audio. If this command returns output listing an audio device, your kernel is successfully detecting the hardware at the PCI level. However, if the list is empty or does not show an audio controller, there may be a deeper BIOS or kernel parameter issue.
It is also important to check for HDMI/DisplayPort audio outputs, as these are often grouped under the same PCI ID but serve different functions. Run lspci | grep -i multimedia to see if any related devices are present. In many cases, the audio controller is detected, but the software stack fails to initialize it due to missing components. If you previously dual-booted Windows 10 on this machine, ensure that Fast Startup is disabled in Windows, as this feature can lock the audio hardware in a low-power state that prevents Linux from initializing it properly. For more details on managing dual-boot environments, you might find Dual Booting Windows 10 and Arch Linux helpful for understanding how OS interactions affect hardware states.
Installing Required Firmware and Modules
Arch Linux follows a minimal installation philosophy, meaning essential firmware files are not included by default. Modern audio codecs, particularly those found in ThinkPads, often require proprietary or non-free firmware blobs to operate correctly. You must install thelinux-firmware package if it was not selected during the initial setup. Use the command pacman -S linux-firmware to ensure all standard firmware files are present on your system. Without this package, the kernel drivers may load but fail to bind to the hardware because they cannot find the necessary microcode.
Additionally, verify that the correct kernel modules are loaded. For Intel HDA audio, the module is typically snd_hda_intel. Check if it is active by running lsmod | grep snd_hda_intel. If the module is not listed, you may need to manually load it using modprobe snd_hda_intel. To make this persistent across reboots, add the module name to the MODULES array in /etc/mkinitcpio.conf and regenerate your initramfs image. This ensures that the audio driver is available early in the boot process, preventing the "No Sound Cards Found" error before user-space services even start.
Configuring the Audio Daemon
Once the hardware and drivers are confirmed, the next layer of abstraction is the audio server. Arch Linux has largely transitioned from PulseAudio to PipeWire as the default sound server, although PulseAudio is still supported via compatibility layers. Ensure that the appropriate service is installed and enabled. For PipeWire, installpipewire, pipewire-pulse, and wireplumber. Then, enable the services with systemctl --user enable pipewire.service pipewire-pulse.service wireplumber.service.
If you prefer to stick with PulseAudio, install pulseaudio and its Bluetooth support module if needed. Start the service with systemctl --user enable --now pulseaudio.service. After enabling the service, use pactl info to verify that the sink (output device) is recognized. If pactl info shows no sinks, the problem lies in the kernel-level driver rather than the user-space daemon. You can also use alsamixer to check if the channels are muted or set to zero volume, which is a common oversight after a fresh install.
BIOS and Kernel Parameters
In rare cases, specific ThinkPad models require kernel parameters to correctly initialize audio hardware. Check the Arch Wiki for your specific model number, as some generations of L14 laptops have known issues with thesnd_hda_intel driver. Common parameters include index=1 or model=lenovo appended to the kernel line in your bootloader configuration. These parameters tell the driver how to map the codec pins correctly.
You can test these parameters temporarily by editing the kernel command line in GRUB or systemd-boot and adding the proposed flags. If audio works after rebooting with these flags, make the change permanent by updating your bootloader configuration file. Additionally, ensure that your BIOS is up to date. Lenovo frequently releases BIOS updates that fix hardware compatibility issues, including audio and WiFi problems. A outdated BIOS can prevent the OS from seeing certain hardware features entirely.
Frequently Asked Questions
Why does my sound work in Windows but not Arch?
Windows Fast Startup leaves the hardware in a hibernated state that Linux cannot wake up. Disable Fast Startup in Windows power settings and perform a full shutdown before booting into Arch. This allows the Linux kernel to take full control of the audio codec during initialization.How do I know if PipeWire is actually running?
Check the status of the user services by runningsystemctl --user status pipewire. If the service is active and running, verify that WirePlumber is also active, as it manages the session routing. You can also check the audio settings in your desktop environment to see if PipeWire is listed as the backend.
What if lspci shows no audio device at all?
This indicates a failure at the PCI enumeration level, often caused by BIOS settings or kernel bugs. Enter your BIOS setup and ensure that HD Audio Controller is enabled. If it is already enabled, try addingacpi_osi=! acpi_osi="Windows 2009" to your kernel parameters to force ACPI compatibility.
Can I use ALSA directly without PulseAudio or PipeWire?
Yes, ALSA is built into the kernel and works independently of user-space daemons. You can test basic audio playback using theaplay command with a sample WAV file. If aplay works but GUI applications do not, the issue is isolated to your audio server configuration, not the kernel driver.
Do I need to reinstall the kernel headers?
Generally, no. Thelinux package includes the necessary headers for most standard operations. Reinstalling headers is only required if you are compiling out-of-tree kernel modules, such as specific NVIDIA drivers or custom wireless drivers. For audio, standard DKMS modules are rarely needed unless you are using a very specialized USB audio interface.