Finally completing transitioning to Linux 100%


Apr 5, 2021
Reaction score
I have been working on transitioning to Linux for a year and a half. I got sidetracked and it took longer than expected to get set up with mint as my daily driver. Well, now it's been 6+ months since I've needed to open the Chromebook for anything, so yesterday I wiped ChromeOS and installed mint on my Asus C302C. I've had little trouble, but a few issues have come up.

I am baby stepping here. I have very little ability to work with the terminal without tutorials. I decided to use developer mode and boot to Mint instead of pulling the write screw and using a 3rd party bios. Current issues are no sound, and I can't get Surfshark VPN working through the GUI. I have surfshark installed, but it will only work through the terminal. Not sure why it's not available in the app menu, it works perfectly on this machine (Dell) and I was no smarter when I installed it on here.

I found this thread on my specific machine and it goes through the sound issue, but it's a little advanced for me. I just wanted to see what others thought before plunking in a whole bunch of commands I don't understand.

I also don't have screen rotate or tablet mode, but that is low priority. I would like to get that sorted, but not before sound.

If I use the below commands, or others from the link, should I expect it will work the same regardless of my booting through developer mode vs overwriting bios? I assume it's linux no matter how one loads it?

From link----

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.
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

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
As non priv user please.

  1. Go to
  2. and download the latest source release or whatever release you fancy.
  3. Verify you checksum.
  4. 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
  5. unpack, configure, build.
    tar -Jxvf [COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]/Downloads/linux-x.y.z.tar.xz
    [COLOR=var(--color-prettylights-syntax-constant)]cd[/COLOR] linux-x.y.z
    cp [COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]/c302ca/src/kernel-config .config
    make [COLOR=var(--color-prettylights-syntax-constant)]help[/COLOR] [COLOR=var(--color-prettylights-syntax-comment)][COLOR=var(--color-prettylights-syntax-comment)]#[/COLOR] in case you are curious.[/COLOR]
    make oldconfig
    make testconfig
    make -j2 bindeb-pkg
  6. 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.
  7. When it is done, if it worked.
    [COLOR=var(--color-prettylights-syntax-constant)]cd[/COLOR] ..
    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[COLOR=var(--color-prettylights-syntax-keyword)]*[/COLOR].deb [COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]/c302ca/debs/
    cp linux-x-y-z/.config [COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]/c302ca/debs/kernel-config
    rm -rf linux-x-y-z [COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]/Downloads/linux-x.y.z.tar.xz
  8. 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.
  9. Point intel-hda-snd at old firmware and ensure it doesn't get switched back.
    [COLOR=var(--color-prettylights-syntax-constant)]cd[/COLOR] /lib/firmware/intel
    sudo ln -sf dsp_fw_release_v969.bin dsp_fw_release.bin
    [COLOR=var(--color-prettylights-syntax-constant)]cd[/COLOR] [COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]/c302ca [COLOR=var(--color-prettylights-syntax-keyword)]&&[/COLOR]
    sudo install fs/etc/apt/apt.conf.d/98old-firmware /etc/apt/apt.conf.d/98old-firmware
  10. 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.
    [COLOR=var(--color-prettylights-syntax-constant)]cd[/COLOR] [COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]
    sudo cp ./c302ca/fs/lib/firmware/skl_n88l25_m98357a-tplg.bin /lib/firmware/
  11. Add the alsa use case manager configuration.
[COLOR=var(--color-fg-muted)][COLOR=var(--color-prettylights-syntax-constant)]cd[/COLOR] [COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]
sudo cp -r ./c302ca/fs/usr/share/ucm2/sklnau8825max /usr/share/alsa/ucm2/
sudo chown -R +r /usr/share/alsa/ucm2/sklnau8825max[/COLOR]

  1. Add some acpi event listeners for headphone / speaker switching.
[COLOR=var(--color-fg-muted)][COLOR=var(--color-prettylights-syntax-constant)]cd[/COLOR] [COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]
sudo cp ./c302ca/fs/etc/acpi/events/[COLOR=var(--color-prettylights-syntax-keyword)]*[/COLOR] /etc/acpi/events/
sudo chmod +r /etc/acpi/events/{plugheadphone,plugheadset,unplugheadphone}[/COLOR]
  1. Reboot and check.
[COLOR=var(--color-fg-muted)][email protected]:[COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]$ cat /proc/asound/cards
0 [sklnau8825max ]: sklnau8825max - sklnau8825max
[email protected]:[COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]$ pactl list cards

Card [COLOR=var(--color-prettylights-syntax-comment)][COLOR=var(--color-prettylights-syntax-comment)]#[/COLOR]0[/COLOR]
Name: alsa_card.platform-skl_n88l25_m98357a
Driver: module-alsa-card.c
Owner Module: 24
alsa.card = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]0[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
alsa.card_name = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]sklnau8825max[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
alsa.long_card_name = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]Google-Cave-1.0[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
alsa.driver_name = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]snd_skl_nau88l25_max98357a[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
device.bus_path = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]platform-skl_n88l25_m98357a[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
sysfs.path = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]/devices/platform/skl_n88l25_m98357a/sound/card0[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
device.form_factor = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]internal[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
device.string = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]0[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
device.description = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]Built-in Audio[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
module-udev-detect.discovered = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]1[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
device.icon_name = [COLOR=var(--color-prettylights-syntax-string)][COLOR=var(--color-prettylights-syntax-string)]"[/COLOR]audio-card[COLOR=var(--color-prettylights-syntax-string)]"[/COLOR][/COLOR]
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
[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[/COLOR]
  1. Plug in some headphone and retry pactl list cards hopefulling noting a change in the Active Profile.
  2. Try to use it.



Apr 5, 2021
Reaction score
I have a Dell fully set up for the privacy and control that originally inspired me to move to Linux, as well as organized with all my files, passwords, etc. Part of me loves the fact that I wiped ChromeOS before my death date. One of the top reasons I despise google, other than lies, data mining, manipulation, and overall shady practices like installing Covid trackers on phones without user consent. The main reason I am now using CalyxOS.

Anyway... The main reason I wiped it is I'm not using chrome and I figured why not get it running on respectable software. It's lighter and smaller, so more convenient to take along or use as a travel computer. I am open to suggestions on how to set it up or use it, but I have this one set up solid so I am not worried about dialing it in with apps, keypass, file backup, etc. Probably more for media than anything.


Active Member
Jan 15, 2022
Reaction score
I have an Acer C720.
Fossapup works for me (camera, sound, microphone).
As for VPN, I use Chrome (Google) extension.
MALIBAL Linux Laptops

Linux Laptops Custom Built for You
MALIBAL is an innovative computer manufacturer that produces high-performance, custom laptops for Linux.

For more info, visit:

Staff online

Members online

Latest posts