The Asus N551 comes equipped with an external subwoofer, like a few other similar models.
Needless to say, the subwoofer doesn’t work in Linux out of the box.
Apparently, BIOS setup of the snd-hda-intel driver is only basic and the subwoofer amplifier is not connected to any codec output.
Searching the Net for a solution, I found a number of “fixes”, mainly in Arch or *buntu forums, but none worked satisfactorily in OpenSUSE (Tumbleweed, actually), maybe because of distribution, model or BIOS dependent details.
So I tweaked the fix found here and did what follows (with root privileges).
- Create file /etc/modprobe.d/50-asus-n551-hda-fix.conf which contains:
options snd-hda-intel patch=asus-n551-hda-fix.fw,asus-n551-hda-fix.fw
- Create file /lib/firmware/asus-n551-hda-fix.fw which contains:
[codec]
0x10ec0668 0x104313bf 0
[model]
asus-mode8
[pincfg]
0x1a 0x90170150
The first block addresses the Realtek ALC668 codec that drives the internal speakers.
The second identifies the correct setup for the sound board in the N551 (activating also the internal “capture” microphone, by the way).
The third connects the subwoofer jack to the “internal speaker” output of the codec.
- Reboot and have a lot of fun with OpenSUSE, the N551 with subwoofer and your favourite music!
The subwoofer acts as a “Right speaker” in Stereo mode, as a “Subwoofer” in 2.1 mode (but you need a genuine 2.1 source, the codec won’t synthesise it for you), and as a “Rear Right speaker” in 4.0 mode.
This was tested with a N551JW, BIOS rev. 207, openSUSE 20150819 (Tumbleweed) (x86_64) with Gnome 3.16.2.
It should work with similar models (ASUS N550, N56, …) and other OS versions with recent kernel and alsa, but I can’t test.
If this is not the case, try installing hdajackretask and launch it from a terminal.
A GUI opens, choose “Realtek ALC 668” in the codec combo box.
Tick the option “Show unconnected pins”.
Scroll down to Pin ID: 0x1a
Tick Override
Choose “Internal speaker” in the combo box.
Push “Install boot override” (root password needed) and close the “Ok, now reboot…” prompt.
DO NOT REBOOT at this stage.
Look for file** /lib/firmware/hda-jack-retask.fw** and open it. It should contain something like:
[codec]
**0x10ec0668 0x104313bf 0** <<<<<<<<<
[pincfg]
0x12 0x99a30970
0x14 0x99130110
0x15 0x01214020
0x16 0x40000000
0x18 0x01a19840
0x19 0x411111f0
**0x1a 0x90170150** <<<<<<<<<<<<<<<<<
0x1b 0x411111f0
0x1d 0x40c6832d
0x1e 0x411111f0
0x1f 0x411111f0
Check the two highligthed lines and change file /lib/firmware/asus-n551-hda-fix.fw accordingly, if needed.
Before rebooting, be sure to push “Remove boot override” in hdajackretask (apparently this override scrambles something in the microphone setup, beyond connecting the subwoofer).
Reboot with your fingers crossed.
Maybe checking that no speaker is muted, with alsamixer for instance, avoids the obvious.
If still no joy, look out for a better fix and let us know…