After sudo apt-get dist-upgrade
, I saw the following output in my terminal:
Setting up linux-modules-extra-4.18.0-16-generic (4.18.0-16.17) ...
Setting up linux-image-generic (4.18.0.16.17) ...
Setting up linux-headers-generic (4.18.0.16.17) ...
Setting up linux-generic (4.18.0.16.17) ...
Processing triggers for linux-image-4.18.0-16-generic (4.18.0-16.17) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.18.0-16-generic
W: Possible missing firmware /lib/firmware/amdgpu/vega12_gpu_info.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_asd.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_sos.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_asd.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_sos.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_rlc.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_mec2.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_mec.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_me.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_pfp.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_ce.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_rlc.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_mec2.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_mec.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_me.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_pfp.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_ce.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_sdma1.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_sdma.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_sdma1.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_sdma.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_uvd.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_uvd.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_vce.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_vce.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_smc.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega12_smc.bin for module amdgpu
I: The initramfs will attempt to resume from /dev/dm-2
I: (/dev/mapper/ubuntu--vg-swap_1)
I: Set the RESUME variable to override this.
/etc/kernel/postinst.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.0-16-generic
Found initrd image: /boot/initrd.img-4.18.0-16-generic
Found linux image: /boot/vmlinuz-4.18.0-15-generic
Found initrd image: /boot/initrd.img-4.18.0-15-generic
Found linux image: /boot/vmlinuz-4.18.0-10-generic
Found initrd image: /boot/initrd.img-4.18.0-10-generic
Adding boot menu entry for EFI firmware configuration
done
Can someone tell me where to find and how to install the missing firmware?
My graphic card is RADEON RX VEGA M
You can find firmware at linux-firmware git
It looks like the missing firmware files are there.
You can
git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
and copy the missing files to/lib/firmware/amdgpu
.Update: this is my amateur approach to just “making things work” — there are better answers out there and this probably isn’t the most stable approach. Linux in the home user space is essentially about learning. If you break something you will need to learn to fix it, or start over! This is the case with any system in computing. The sooner you learn to deal with that the sooner you will find a way to “fish for yourself” rather than rely on handout solutions — which might be imperfect.
Do not troubleshoot a business environment with this solution. You have been warned.
——— To save time for new users, and people unfamiliar with the terminal -- the following commands can be copied and pasted directly for ease of use. Please make sure to have git installed, if it's not open a terminal (ctrl + alt + t in most cases) and enter the following command:
sudo apt install git -y
If apt complains about updating, update and upgrade with:
sudo apt update && sudo apt upgrade -y
then install git with the first command.
The firmware files needed for this can be found at https://kernel.googlesource.com/pub/scm/linux/kernel/git/firmware/linux-firmware.git
if you've already got git installed, this can be done by typing
cd ~/Documents && git clone https://kernel.googlesource.com/pub/scm/linux/kernel/git/firmware/linux-firmware.git
After you've cloned the repository using the above command it's important to put the files in the right place so the program "update-initramfs" can find them and make use of them.
To do this simply enter in the terminal the following command (for ubuntu, as of 18.04)
sudo cp ~/Documents/linux-firmware/amdgpu/* /lib/firmware/amdgpu && sudo update-initramfs -k all -u -v
The above commands assumes you are updating your initramfs image and will use all kernel versions available on the system at the time.
With all this done, APT should no longer complain. :D
Update as of Jan 2022, as per linux-firmware 1.187.24 source package in Ubuntu, the change-log reads:
So now simply updating to the latest
linux-firmware
package may resolve the issues specific to AMD Southern Islands missing firmware.Previous answer/alternate work-around left below for posterity as other AMD models and firmware could encounter the same issue if/when Ubuntu maintainers update the kernel and AMD driver modules without remembering to update the related firmware package.
Previous answers suggest directly downloading firmware from linux-firmware git. This answer provides an alternative approach the tries to replicate how the Ubuntu release test cycle works more closely and could represent a "more widely tested" combination of official release Kernel with related release firmware.
Downloading directly from the git repo has subtle implications:
An alternative, assuming a HWE stack, is to try match the release test cycle one assumes happens between the kernel and firmware versions.
cat /etc/lsb-release
). E.g. "Ubuntu 20.04.3 LTS":uname -a
). E.g. 5.11.apt show linux-firmware | grep Version
)linux-firmware
package version that fits with that particular interim release and kernel combination. E.g. https://packages.ubuntu.com/hirsute-updates/linux-firmware was released along with Kernel 5.11 with hirsute (21.04).E.g. a match for 20.04.3 LTS with kernel 5.11 to linux-firmware from hirsute (21.04) which was v 1.197.3 while the focal (20.04) repo had left linux-firmware out of date on
v 1.187.20
.Extra hint: Download the deb from your closest mirror because this package is almost 200MB large and the main archive may be slow.
To explain further, Ubuntu HWE stack maintainers updated the kernel (and amdgpu driver) but unfortunately failed to keep the linux-firmware package up to date. So the amdgpu driver was clearly tested/developed on top of firmware that Ubuntu included with the newer interim non-LTS, but then failed to include/back-port with their HWE kernel refresh to the previous LTS.
Everyone getting this sort of error, please register a launchpad account and add your vote with "This bug affects me" the help get Ubuntu to pay some attention and keep HWE kernels and linux-firmware packages in better lockstep: https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1953249
One drawback to this approach is there will be no automatic updates on the firmware anymore, but it's less complex manually installing the .deb than trying mix in the interim release repos (which would require apt preferences package name pinning and priorities)
Related:
Download files from this repository and place them in your computer