Creative Sound Blaster Z no sound under Fedora 33
I got myself an old Creative Sound Blaster Z to replace my build-in sound card, to amplify my sound experience, how-ever on first install I got myself into a pickle:
feb 24 22:54:52 technetium kernel: snd_hda_intel 0000:09:00.0: Direct firmware load for ctefx-desktop.bin failed with error -2 feb 24 22:54:52 technetium kernel: snd_hda_intel 0000:09:00.0: Direct firmware load for ctefx.bin failed with error -2
$ sudo lspci -v -s 09:00.0 09:00.0 Audio device: Creative Labs Sound Core3D [Sound Blaster Recon3D / Z-Series] (rev 01) Subsystem: Creative Labs SB1570 SB Audigy Fx Flags: bus master, fast devsel, latency 0, IRQ 39, IOMMU group 14 Memory at fca04000 (64-bit, non-prefetchable) [size=16K] Memory at fca00000 (64-bit, non-prefetchable) [size=16K] Capabilities:  Power Management version 3 Capabilities:  MSI: Enable- Count=1/1 Maskable+ 64bit+ Capabilities:  Express Endpoint, MSI 00 Capabilities:  Advanced Error Reporting Capabilities:  Virtual Channel Capabilities:  Device Serial Number 00-00-00-00-00-00-00-00 Capabilities:  Power Budgeting <?> Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel
Found a brilliant suggestion Raymond (back in 2016):
$ dnf provides /lib/firmware/ctefx.bin $ sudo dnf install alsa-firmware
Reboot the system and it was al working as expected.
Bonus tip if you want to switch between headphone and speaker output
If you STILL don't have sound, try opening alsamixer, selecting your card with F6, and toggling "HP/Speaker Auto Detect" with the 'm' key. This switch sets whether or not you want to manually select the output with the 'Output Select' control.
Output switch script
This will provide a shortcut to quickly switch between headphone and speaker output with (as bonus) an shortcut key for Gnome:
Create install directory if does not exists:
$ mkdir -p $HOME/bin
'Install' script audio-switch-output.sh script:
$ cat << 'EOF' > $HOME/bin/switch-audio-output.sh && chmod 755 $HOME/bin/switch-audio-output.sh #!/bin/sh # # Quickly switch between headphones and speakers # Tested on Creative Sound Blaster Z soundcard which is assumed to be card0 # cmd="amixer -c 0" if $cmd sget 'Output Select',0 | grep -q "Item0: 'Speakers'"; then $cmd -q sset 'Output Select',0 'Headphone' else $cmd -q sset 'Output Select',0 'Speakers' fi EOF
Warning: Be careful, this will override any existing custom gnome shortcut keys, use Gnome GUI Settings -> Keyboard Shortcuts.
Add shortcut to call script quickly:
$ cat <<EOF | DCONF_PROFILE=user dconf load /org/gnome/settings-daemon/plugins/media-keys/ [/] custom-keybindings=['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/'] [custom-keybindings/custom0] binding='<Primary><Alt>AudioMute' command='$HOME/bin/switch-audio-output.sh' name='Switch audio output' EOF