Building Linux Kernel with firmware built-in - TREEYA360

I am trying to get working audio on a Lenovo 300e Chromebook Gen 2 AMD (TREEYA360) with the latest Ubuntu 25.04 or any other Ubuntu based distro.

According to the support documents for getting Linux running on this machine, it states

“Needs kernel compiled with AMDGPU=Y instead of =M and firmware built-in to get working audio”

I understand this requires building my own kernel and I am able to follow this guide to get AMDGPU=Y via menuconfig by using the search and finding it.

What I am having trouble understanding is “…and firmware built-in to get working audio”.

I tried looking it up to better understand what firmware but cannot find any documentation regarding what firmware or what to select in menuconfig.

I did find one Reddit user mention

“When configuring the kernel go to device drivers > graphics support > AMD GPU for the amdgpu part and device drivers > firmware drivers > google firmware for the firmware part”

But I am trying to understand how they came to the conclusion that the firmware drivers that needs to be selected is the google firmware as I could not find any other reference or explanation myself and want to better understand the process.

I also thought it would be good to get a second opinion to confirm whether the statement by the user on reddit accurate or not.

Please let me know if there are any other details I should include or if I should be posting elsewhere.

The docs still need to be updated, but that is no longer required. All you need is this patch stoney-kernel/patches/audio.patch at main · chrultrabook/stoney-kernel · GitHub and a recent kernel. That repo also has prebuilt kernels build with github actions.

Hi, I appreciate the information is there a step by step for how to use the prebuilt kernel?

Here is what I tried with no success on Elementary OS 8 (it’s ubuntu based but maybe this could be a cause?):

I downloaded the stoney-kernel artifcat from the repo

Extracted the files and then preformed the following in the terminal:

sudo mv vmlinuz-6.13.7-chrultrabook-stoney /boot

sudo mv 6.13.7-chrultrabook-stoney/ /usr/lib/modules

sudo kernel-install add 6.13.7-chrultrabook-stoney /boot/vmlinuz-6.13.7-chrultrabook-stoney

/boot/initrd.img-6.13.7-chrultrabook-stoney does not exist, not installing an initrd

sudo update-initramfs -c -k 6.13.7-chrultrabook-stoney

sudo kernel-install add 6.13.7-chrultrabook-stoney /boot/vmlinuz-6.13.7-chrultrabook-stoney

sudo update-grub

I used this post to guide me as I did not know how to use the prebuilt kernels.

I then used guides to get the grub menu to come up so I could select the kernel but that wasn’t working for me so I changed the grub default boot by changing the grub file in /etc/default to the following:

GRUB_DEFAULT='elementary OS 8, with Linux 6.13.7-chultrabook-stoney'

I grabbed the menu item ‘elementary OS 8, with Linux 6.13.7-chultrabook-stoney’ from the grub.cfg item in /boot/grub.

and then running

sudo update-grub

Again and rebooted.

Upon reboot I confirmed it was booting into the kernel using

uname -mrs

I got the following output

Linux 6.13.7-chrultrabook-stoney x86_64

From my understanding it seems to be using the prebuilt kernel

However I have no audio on my chromebook so I am not sure if I am doing the steps wrong, any advice is appreciated.

You also need ucm, which is probably not in your distro because of how old it is.

Hi WeirdTreeThing, thank you again for the information.

Is there a way for me to confirm if a distro supports UCM?

I am thinking of trying the distros listed here from the documentation

Recommended distros as of December 2024 (in no particular order) are:
Arch Linux or EndeavourOS
Fedora or Ultramarine Linux
openSUSE Tumbleweed
Pop!_OS

But I don’t want to go through all the steps again if neither of these listed support UCM. If none of the above support it, do you have any distro recommendations for stoneyridge chromebooks? I’ll try the steps again in a distro that supports UCM.

Every distro has UCM, your distro is just too old to have the specific UCM files for your device.

In that case is there any distro you would recommend that has the proper UCM for my device?

Fedora or Ultramarine linux are fairly easy to use while being up-to-date.

Success, thank you for the recommendation regarding distros, I got Fedora Workstation 42 installed and did similar steps as before, rebooted and sound now works.

Steps I took for anyone else that wants a reference:

I downloaded the stoney-kernel artifcat from the repo which downloads stoney-kernel.zip

I extracted the contents of stoney-kernel.zip and went into the extracted stoney-kernel folder and extracted the contents of kernel.tar.gz

I then went into the extracted kernel folder and opened that directory in a terminal session and preformed the following commands in the terminal

sudo mv vmlinuz-6.13.7-chrultrabook-stoney /boot

sudo mv modules/lib/modules/6.13.7-chrultrabook-stoney/ /usr/lib/modules

sudo kernel-install add 6.13.7-chrultrabook-stoney /boot/vmlinuz-6.13.7-chrultrabook-stoney

sudo reboot

Upon reboot the sound was working, without having to do anything with grub and upon checking with

uname -mrs

It returns with

Linux 6.13.7-chrultrabook-stoney x86_64

Thank you for your expertise, time and work on this project WeirdTreeThing