Another laptop, another Linux distro, same old issues… this time the solution was found in an obscure Bugzilla report in the Kernel.org website.
In comment 94 a user published a script that’s completely voodoo to me, but (thanks to another post on reddit or something) I could make it work. To not forget (and maybe help some other poor soul, here’s what to do.
Install alsa-tools
( sudo apt install alas-tools
)
Then download the script from the comment. You then have to open it in a text editor of your choice, and you will need to replace all the hwC2D0
names by the correct one for you. In my case (and apparently in the case of most Razer Blade laptops) it’s hwC1D0
Then run the script ( sh RB14_2023_enable_internal_speakers_ver2.sh
)
If you want to make sure hwC1D0
is correct for you, you need to run the following command in a terminal: aplay -l
It should output something like this:
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) []
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 3: HDMI1 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 4: HDMI2 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 5: HDMI3 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sofhdadsp [sof-hda-dsp], device 31: HDA Analog Deep Buffer (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
You want to locate the line that has HDA Analog
in it. This line contains a card number and a device number, and this gives you the correct name: hw
and C
followed by the card number (1
in the example above), and D
followed by the device number (0
in the example above) which gives hwC1D0
.
And here is the script (renamed to .txt
because WordPress is a piece of shit that won’t let me upload a .sh
file…) in case the link to it dies in the futur (already edited with the correct name)