Fixing Linux Sound/Audio on Asus Chromebook C423N (codename: RABBID) with Celeron N3350 Apollo Lake chipset, DA7219 codec, and MAX98357A amplifier

on blog at

Getting sound working on an Asus Chromebook C423N (codename: RABBID) is hard. It took me 2 weeks and probably a dozen hours of trial and error. The normal chromebook sound fix scripts by Wierdtree at chromebook-linux-audio will give you very threatening warnings if you try to use them with this hardware. And of course they don't work.

The fix: sound-fix-script_asus-Chromebook-C423N-RABBID-ApolloLake-DA7219-MAX98357A.sh.txt

# This script configures audio (speakers and microphone) for Asus Chromebook C423N (RABBID)
# with Apollo Lake chipset, DA7219 codec, and MAX98357A amplifier.
# Using the ALSA + pulseaudio software stack with intel-sof audio drivers.

# ** THIS SCRIPT CREATES AND INSTALLS A SERVICE SCRIPT TO RESTART PULSEAUDIO 12s AFTER DESKTOP LOGIN FOR REASONS OF TIMING BEING HARD **
# ** 	~/.config/systemd/user/rabbid-audio-user.service	- calls rabbid-audio-fix.sh restarts pulseaudio
# ** You might not like the unintended consequences of that. 
# ** I personally have no problems beyond the *ding* of new audio devices being found each boot.

#  The other files it creates are: 
/usr/local/bin/rabbid-audio-fix.sh	- bring up the kernel modules in the right order with pauses, unmutes
/etc/systemd/system/rabbid-audio-fix.service - actually calls rabbid-audio-fix.sh
/etc/pulse/default.pa.d/rabbid-audio.pa	- sets the RABBID specific audio hardware id paths as pulse input/output devices
/lib/firmware/intel/sof-tplg/		- INSTALLS, contents replaced, contains: sof-apl-da7219.tplg topology
/lib/firmware/intel/sof/*		- INSTALLS, contents replaced, contains: sof firmware
/etc/modprobe.d/inteldsp.conf		- points kernel snd module at ./intel/sof/ firmware forcing SOF driver for Apollo Lake audio

It uses the apt repos to install various needed packages. Then it downloads the currently newest build of the intel firmware and topology files, puts them in their appropriate debian-alike place, creates a .conf that points the kernel snd module at them, then two systemd services are created. One calls a script that brings up the kernel modules in a specific order with pauses between and then unmutes the created alsa devices and saves the alsaconf. An earlier created pulseaudio configuration uses hard coded RABBID-specific ALSA hardware device addresses for pulseaudio input and output devices then unmutes the newly created devices. Then the second systemd service script restarts the entire pulseaudio service 12 seconds after the desktop environment boots in. Because I couldn't find a more reliable way.

User beware with the script. It does seem to just work and continue to work on reboot for I think the best way to use it is as a guide; going through and doing it manually line by line.

Do not try to use RABBID or other chromebooks with windows. The only audio drivers are *paid* and sold by an operation called "coolstar". But if you pay the small amount like I did to buy them you find out it's no longer in operation. The coolstar patreon just takes one's money while their backend system is broken and the drivers are inaccessible for download.

[comment on this post] Append "/@say/your message here" to the URL in the location bar and hit enter.

[webmention/pingback] Did you respond to this post? What's the URL?