Per coincidence, I worked on this same bug today, as I'm hoping to try make use of the amdpro legacy OpenCL drivers, which will need amdgpu as a base.
The issue is Ubuntu is providing newer kernel HWE stacks with amdgpu driver modules, but failing to keep related Linux firmware packages up to date and in lockstep. E.g. 20.04.3 LTS is based on kernel 5.11 from hirsute (21.04), but the linux-firmware collection is left outdated on 1.187.20 that came with kernel 5.4? https://packages.ubuntu.com/hirsute-updates/linux-firmware shows v 1.197.3, so I'd expect a HWE stack with 20.04.3 to also provide the same level of firmware updates for kernel 5.11. > I use UEFI and the module wasn't signed Perhaps installing the official deb/repo instead of upstream has a good shot at the firmware that gets added into initramfs being signed properly (one would hope!). I manged the following workaround, but my case is still legacy BIOS. curl -OL http://archive.ubuntu.com/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.197.3_all.deb sudo dpkg -i linux-firmware_1.197.3_all.deb Extra hint: maybe download the deb from your closest mirror because this package is almost 200MB large. P.S. While most firmware is hopefully decoupled and backward compatible to use with older kernel modules/drivers, one never knows if a bug might show up by using very new firmware with much older modules, since you stray into a untested path between the firmware and the kernel modules. Hence I tried to match the Ubuntu release, kernel versions, and tested- at-the-time firmware more closely than just jumping to latest upstream firmware versions. Its similar but a kinda upside version of the older proprietary graphics driver blob hell that plagued Linux over the previous decade. Firmware is the other way round where the in-tree admgpu driver needs the firmware to provide a stable interface. Can't recall if Linux ever solved the lack of a stable in-kernel/versioned ABI between drivers and binary driver blobs. It's why AMD FGLRX proprietary drivers blobs were always hell, and AMD failed to keep up with ABI changes on the kernel and often didn't work with newer kernels, hence amdgpu became the new middle layer/foundation to bridge this ABI gap and add create a stable/presumably versioned ABI for AMD that the kernel developers never bothered to provide. Now AMD-pro software and extended driver blobs can rely on the opensource amdgpu parts to be less of a moving target as ABI changes on the kernel core will need to update/include required changes to amdgpu because amdgpu is now in-tree and should be tested in lockstep with other kernel changes. -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux-firmware in Ubuntu. https://bugs.launchpad.net/bugs/1953249 Title: UVD firmware for AMD Southern Islands (GCN 1) GPUs is missing Status in linux-firmware package in Ubuntu: Confirmed Bug description: Release: up-to-date Focal LTS (20.04.3) Package-version: linux-firmware 1.187.20 Hardware model: [AMD/ATI] Chelsea LP [Radeon HD 7730M] With the latest kernel upgrade (5.4 --> 5.11, if I recall correctly), my laptop's discrete graphics stopped working. Looking at the logs, I found these messages: -- snippet -- kernel: [ 1.492908] [drm] amdgpu: dpm initialized kernel: [ 1.492932] [drm] AMDGPU Display Connectors kernel: [ 1.492951] amdgpu 0000:01:00.0: Direct firmware load for amdgpu/verde_uvd.bin failed with error -2 kernel: [ 1.492954] amdgpu 0000:01:00.0: amdgpu: amdgpu_uvd: Can't load firmware "amdgpu/verde_uvd.bin" kernel: [ 1.492957] [drm:amdgpu_device_ip_init [amdgpu]] *ERROR* sw_init of IP block <uvd_v3_1> failed -2 kernel: [ 1.493196] amdgpu 0000:01:00.0: amdgpu: amdgpu_device_ip_init failed kernel: [ 1.493198] amdgpu 0000:01:00.0: amdgpu: Fatal error during GPU init kernel: [ 1.493200] amdgpu 0000:01:00.0: amdgpu: amdgpu: finishing device. -- snippet -- In fact, file '/lib/firmware/amdgpu/verde_uvd.bin' was missing. Running '$ dpkg -L linux-firmware | sort' gives this: -- snippet -- /lib/firmware/amdgpu/vegam_uvd.bin /lib/firmware/amdgpu/vegam_vce.bin /lib/firmware/amdgpu/verde_ce.bin /lib/firmware/amdgpu/verde_k_smc.bin /lib/firmware/amdgpu/verde_mc.bin /lib/firmware/amdgpu/verde_me.bin /lib/firmware/amdgpu/verde_pfp.bin /lib/firmware/amdgpu/verde_rlc.bin /lib/firmware/amdgpu/verde_smc.bin /lib/firmware/amdgpu/yellow_carp_asd.bin /lib/firmware/amdgpu/yellow_carp_ce.bin -- snippet -- Copying the file from upstream (https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux- firmware.git/tree/amdgpu/verde_uvd.bin) didn't work on my system, probably because I use UEFI and the module wasn't signed (error below): -- snippet -- kernel: [ 502.174932] amdgpu 0000:01:00.0: amdgpu: amdgpu_uvd: Can't validate firmware "amdgpu/verde_uvd.bin" kernel: [ 502.174992] [drm:amdgpu_device_ip_init [amdgpu]] *ERROR* sw_init of IP block <uvd_v3_1> failed -22 kernel: [ 502.175285] amdgpu 0000:01:00.0: amdgpu: amdgpu_device_ip_init failed kernel: [ 502.175289] amdgpu 0000:01:00.0: amdgpu: Fatal error during GPU init kernel: [ 502.175293] amdgpu 0000:01:00.0: amdgpu: amdgpu: finishing device. -- snippet -- I can confirm that reverting kernel driver to 'radeonsi' makes the device usable again, but at the expense of Vulkan APIs (not supported by this driver). Could you, please, fix this? To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1953249/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp