[HowTo] set up the audio card in Samsung Galaxy Book

Difficulty: ★☆☆☆☆

This [HowTo] has been extensively tested on the Galaxy Book FLEX but should work on the ION and hopefully other models too.
The instructions have a script (TO912.sh) with important verbs and then some services to auto-load it on boot and keep it alive.

  1. Check and make sure your active kernel is 5.8.18 or higher (lower Kernel may work, but I only tested on 5.4.72 which failed)

  2. Install sof-firmware:

    sudo pamac install sof-firmware
    
  3. Install alsa-tools

    sudo pacman -S alsa-tools
    
  4. Get snd_soc_skl_hda_dsp to load:

    sudo nano /etc/modprobe.d/sof.conf
    

    add the following line, then save and exit:
    options snd slots=snd_soc_skl_hda_dsp

  5. Blacklist snd-hda-intel:

    sudo nano /etc/modprobe.d/blacklist.conf
    

    add the following line, then save and exit:
    snd-hda-intel

  6. Rename alsa-base to backup

    sudo mv /etc/modprobe.d/alsa-base.conf /etc/modprobe.d/alsa-base.conf.backup
    
  1. Create a file `TO912.sh and place hda-verb commands:
    Copy the contents of https://pastebin.com/raw/zsXp2vz6, then run this terminal command:

    sudo nano TO912.sh
    

    Paste the copied contents to this file, save and exit.

  2. Move the TO912.sh script and place it in /home/$USER/scripts
    (Create the folder /home/$USER/scripts if it does not exist)

  1. Set script permissions as read, write, executable for all:

    chmod a+rwx /home/$USER/scripts/TO912.sh
    
  1. create and edit ionsound.service file

    sudo nano /etc/systemd/system/ionsound.service
    

    add the following text, then save and exit:

    [Unit]
    Description=Custom Sound
    
    [Service]
    Type=idle
    ExecStart=/home/YOURUSER/scripts/TO912.sh
    
    [Install]
    WantedBy=multi-user.target
    
  2. set file permissions to allow everyone to read:

    sudo chmod a+r /etc/systemd/system/ionsound.service
    
  3. create and edit the ionsoundsleep.service file

    sudo nano /etc/systemd/system/ionsoundsleep.service
    

    add the following text, then save and exit:

    [Unit]
    Description=Custom Sound Sleep Fix
    
    [Service]
    Type=idle
    ExecStart=/home/YOURUSER/scripts/TO912.sh
    
    [Install]
    WantedBy=suspend.target
    
  4. set file permissions to allow everyone to read:

    sudo chmod a+r /etc/systemd/system/ionsoundsleep.service
    
  5. activate both new services:

    sudo systemctl daemon-reload
    sudo systemctl enable ionsound.service
    sudo systemctl enable ionsoundsleep.service
    
  6. Turn off PulseAudio:

    sudo nano /etc/pulse/default.pa
    

    find the following line:
    load-module module-suspend-on-idle

    and change it to (comment it out):

    ###load-module module-suspend-on-idle

  7. reboot

  8. Launch alsamixer in the terminal and modify volumes:

    alsamixer
    
    • press F6,
    • ensure the sof-hda-dsp sound card is listed,
    • select it
    • increase the volume in all the columns,
    • ensure the db Gain (displayed at the top left corner) never exceeds 0.00
  9. click the speaker icon in the systray and ensure the speaker is not muted, unmute it if it is

    • right click the speaker icon in the systray
    • click Configure Audio Volume
    • click Audio
    • click advanced
    • ensure the Output drop-down has Smart Sound Technology AUdio Controller Speaker + Headphone
  10. Test the sound


References:

Special thanks:

  • MrEen from the Mint forums, jhubuntu20 from the Ubuntu forums, @bogdancovaciu from here.
  • Also big thanks to Mike Pozulp from kernel.org forum, especially for creating the kernel patch/quirk for the headsets of these models.
3 Likes

I want to THANK YOU for this Guide and CONFIRM this DOES work for the Samsung Galaxy Book Ion (15.6") - NP950XCJ-K01US

Here are a few notes for the Galaxy Book Ion 15.6":

  • alsa-base.conf is located here with the following filename: /usr/share/alsa/alsa.conf

  • the sound output device name - Speaker - sof-hda-dsp

Thank you AGAIN, you are an AWESOME human! I was one click away from returning this beautiful computer when I found your post and decided to give it one last try.

1 Like

Yes, I totally feel you. I have been trying to solve this for months!

I am not an expert myself so I hope one of the linux experts here (or anywhere really) can take the hda-verb commands (https://pastebin.com/raw/zsXp2vz6) and make them a kernel patch to make this card work out of the box on future kernels.

1 Like

trying this on the samsung pen 9 15 inch (nvidia) and unfortunately it doesn’t work, it seems that “options snd slots=snd_soc_skl_hda_dsp” fails to load, so /dev/snd/ doesn’t have “hwC0D0” in it.

i was hoping theyd be similar enough, i wanna help get this working if i could!