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. https://github.com/devendor/c302ca. 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.
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
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.
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. https://github.com/devendor/c302ca. 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.
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
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
- https://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 [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 - 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.
[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 - 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.
[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 - 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/ - 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]
- 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]
- Reboot and check.
[COLOR=var(--color-fg-muted)]rferguson@cave:[COLOR=var(--color-prettylights-syntax-keyword)]~[/COLOR]$ cat /proc/asound/cards
0 [sklnau8825max ]: sklnau8825max - sklnau8825max
Google-Cave-1.0
rferguson@cave:[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
Properties:
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]
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[/COLOR]
- Plug in some headphone and retry pactl list cards hopefulling noting a change in the Active Profile.
- Try to use it.