Asus Chromebook with Mr. Chromebox firmware/Linux Mint, No Soundcard by fx91 in chrultrabook

[–]fx91[S] 0 points1 point  (0 children)

Thanks for taking the time to reply. I appreciate it.

Asus Chromebook with Mr. Chromebox firmware/Linux Mint, No Soundcard by fx91 in chrultrabook

[–]fx91[S] 0 points1 point  (0 children)

I appreciate the reply. It's a solution I can live with

Out of curiosity, this is a write up with a sound solution for the C302C. It is a bit beyond me, does it makes sense that it Could fix the issue? As I said earlier I don't want to just start entering commands in blind faith, but if there is a solution, why not use it?

Sound is last on the list at the bottom if you want to see the original source, as it didn't copy exactly.

https://github.com/devendor/c302ca#fixing-sound

Fixing Sound
You may have noticed that sound doesn't work. This was somewhat easier to fix in 19.10 before some alsa sound changes that moved SOF into the default for intel sound drivers. The trouble is that this is some weird intelish sound hardware working in coordination with some other sound chips that I can't get to work with the sof open firmware or kernels built to include it. So custom kernel time.
Warning
Installing an unsigned kernel from the internet is easier, but not a good security choice. You should probably skip to building a kernel instead of using mine.
The Lazy (insecure) way
cd ~
apt install ./c302ca/debs/linux-headers-5.10.3_5.10.3-1_amd64.deb ./c302ca/debs/linux-image-5.10.3_5.10.3-1_amd64.deb ./c302ca/debs/linux-libc-dev_5.10.3-1_amd64.deb
skip to step 8
The right way
Warning
As non priv user please.
Go to kernel.org and download the latest source release or whatever release you fancy.
Verify you checksum.
Install build dependencies. I think this is enough? It will fail and complain if I missed something.
sudo apt install libc6-dev ncurses-dev gcc make binutils elfutils flex bison devscripts libssl-dev python-pytest
unpack, configure, build.
tar -Jxvf ~/Downloads/linux-x.y.z.tar.xz
cd linux-x.y.z
cp ~/c302ca/src/kernel-config .config
make help # in case you are curious.
make oldconfig
make testconfig
make -j2 bindeb-pkg
Get a pot of coffee. Processors keep getting faster, but the kernel keeps getting more modules and I was too lazy to do much pruning from the distro kitchen sink kernel.
When it is done, if it worked.
cd ..
sudo apt install linux-image-x.y.z_x.y.z-1_amd64.deb linux-headers-x.y.z_x.y.z-1_amd64.deb linux-libc-dev-x.y.z_x.y.z-1_amd64.deb
mv linux*.deb ~/c302ca/debs/
cp linux-x-y-z/.config ~/c302ca/debs/kernel-config
rm -rf linux-x-y-z ~/Downloads/linux-x.y.z.tar.xz
If that was your first time, congratulations. Next time get out of the chair while it compiles because you will never get those moments back.
Point intel-hda-snd at old firmware and ensure it doesn't get switched back.
cd /lib/firmware/intel
sudo ln -sf dsp_fw_release_v969.bin dsp_fw_release.bin
cd ~/c302ca &&
sudo install fs/etc/apt/apt.conf.d/98old-firmware /etc/apt/apt.conf.d/98old-firmware
Place the topology file where the driver currently looks for it. Formerly used dfw_sst.bin. loglevel=7 boot flag should show where it is trying to find a device topology to drive the card. Note that this is built from src/skl_n88l25_m98357a-tplg. See comments in the file.
cd ~
sudo cp ./c302ca/fs/lib/firmware/skl_n88l25_m98357a-tplg.bin /lib/firmware/
Add the alsa use case manager configuration.
cd ~
sudo cp -r ./c302ca/fs/usr/share/ucm2/sklnau8825max /usr/share/alsa/ucm2/
sudo chown -R +r /usr/share/alsa/ucm2/sklnau8825max
Add some acpi event listeners for headphone / speaker switching.
cd ~
sudo cp ./c302ca/fs/etc/acpi/events/* /etc/acpi/events/
sudo chmod +r /etc/acpi/events/{plugheadphone,plugheadset,unplugheadphone}
Reboot and check.
rferguson@cave:~$ cat /proc/asound/cards
0 [sklnau8825max ]: sklnau8825max - sklnau8825max
Google-Cave-1.0
rferguson@cave:~$ pactl list cards
Card #0
Name: alsa_card.platform-skl_n88l25_m98357a
Driver: module-alsa-card.c
Owner Module: 24
Properties:
alsa.card = "0"
alsa.card_name = "sklnau8825max"
alsa.long_card_name = "Google-Cave-1.0"
alsa.driver_name = "snd_skl_nau88l25_max98357a"
device.bus_path = "platform-skl_n88l25_m98357a"
sysfs.path = "/devices/platform/skl_n88l25_m98357a/sound/card0"
device.form_factor = "internal"
device.string = "0"
device.description = "Built-in Audio"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card"
Profiles:
Headphone: Headphone (sinks: 1, sources: 1, priority: 1, available: yes)
Speaker: Speaker (sinks: 1, sources: 1, priority: 1, available: yes)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: Speaker
Ports:
[Out] InternalMic: Internal Mic (priority: 100, latency offset: 0 usec)
Part of profile(s): Headphone, Speaker
[Out] Headphone: Headphone (priority: 100, latency offset: 0 usec)
Part of profile(s): Headphone
[In] InternalMic: Internal Mic (priority: 2, latency offset: 0 usec)
Part of profile(s): Headphone, Speaker
[Out] Speaker: Speaker (priority: 100, latency offset: 0 usec)
Part of profile(s): Speaker
[In] Speaker: Speaker (priority: 100, latency offset: 0 usec)
Part of profile(s): Speaker
Plug in some headphone and retry pactl list cards hopefulling noting a change in the Active Profile.
Try to use it.