Skip to content

linux-hwe-7.0 7.0.0-31.31~24.04.1+barfix1 (Ubuntu kernel .debs)

Choose a tag to compare

Ubuntu's linux-hwe-7.0 7.0.0-31.31~24.04.1 (noble-updates, the 24.04 HWE kernel) rebuilt with a single patch, 0001-PCI-Account-for-alignment-padding-of-resources-larger.patch, as version 7.0.0-31.31~24.04.1+barfix1. Same ABI (7.0.0-31), same configuration and package names as the archive build, so it is a drop-in upgrade and the linux-generic-hwe-24.04 / linux-lowlatency-hwe-24.04 meta packages stay satisfied.

Why

Linux 7.0 (commit 3958bf16e2fe, "PCI: Stop over-estimating bridge window size") sizes a parent bridge window by summing its children, which under-sizes it when a child bridge window is larger than its own alignment. On a Radeon Pro Vega II Duo, two GPU dies sit behind one root port on separate sub-bridges, and the second die ends up with no BAR at any Resizable BAR size, so amdgpu cannot use it. The patch pads each child to its alignment (size += ALIGN(r_size, align) in pbus_size_mem()); kernels up to 6.17 are unaffected. Report and patch on linux-pci: https://lore.kernel.org/linux-pci/20260903063124.9316-1-nbritton@exabit.io/

Install with apt

This release is itself a signed flat apt repository (the linux-modules package is too large for the GitHub Pages repository, so the kernel lives here). It is signed with the same Exabit, Inc. key as https://exabit-io.github.io/resize-amdgpu-bars.

sudo install -d -m 755 /etc/apt/keyrings
curl -fsSL https://exabit-io.github.io/resize-amdgpu-bars/keys/resize-amdgpu-bars.gpg \
    | sudo tee /etc/apt/keyrings/resize-amdgpu-bars.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/keyrings/resize-amdgpu-bars.gpg] https://github.com/exabit-io/resize-amdgpu-bars/releases/download/kernel-7.0.0-31.31-24.04.1-barfix1 ./' \
    | sudo tee /etc/apt/sources.list.d/linux-hwe-7.0-barfix.list
sudo apt update
sudo apt install linux-generic-hwe-24.04      # or: sudo apt upgrade

+barfix1 sorts above ~24.04.1, so apt prefers these packages over the archive's without a pin. To also stay ahead of a later Ubuntu respin of the same ABI (7.0.0-31.31~24.04.2), add /etc/apt/preferences.d/linux-hwe-7.0-barfix:

Package: *
Pin: release o=Exabit, Inc.
Pin-Priority: 1001

Without apt: download the .deb files and sudo apt install ./linux-image-7.0.0-31-generic_*.deb ./linux-modules-7.0.0-31-generic_*.deb (add the headers packages if you build out-of-tree modules).

Caveats

  • Not Secure Boot signed. linux-image-7.0.0-31-generic is the unsigned image repackaged under the archive's signed-image name (Conflicts: linux-image-unsigned-7.0.0-31-generic) so that the meta packages resolve. On a Secure Boot machine, disable Secure Boot or sign the vmlinuz with your own MOK.
  • Only for ABI 7.0.0-31. The next Ubuntu ABI is a new package name and supersedes this one through the meta packages; hold them to stay on the fixed kernel: sudo apt-mark hold linux-generic-hwe-24.04 linux-image-generic-hwe-24.04 linux-headers-generic-hwe-24.04.
  • No -dbgsym packages. Modules are signed with the build's ephemeral key, as for any locally built Ubuntu kernel.
  • Pairs with resize-amdgpu-bars, which enlarges the BARs once the kernel can size the windows.

Packages

linux-image-7.0.0-31-generic (repackaged, see above), linux-image-unsigned-7.0.0-31-generic, linux-modules-7.0.0-31-generic, linux-headers-7.0.0-31-generic, linux-hwe-7.0-headers-7.0.0-31, linux-tools-7.0.0-31-generic, linux-hwe-7.0-tools-7.0.0-31, linux-cloud-tools-7.0.0-31-generic, linux-hwe-7.0-cloud-tools-7.0.0-31, linux-lib-rust-7.0.0-31-generic, linux-buildinfo-7.0.0-31-generic, and the per-driver module packages linux-modules-{evdi,ipu6,ipu7,iwlwifi,usbio,vision}-7.0.0-31-generic. All amd64, version 7.0.0-31.31~24.04.1+barfix1.

Verification

Release.gpg / InRelease are signed by the Exabit, Inc. apt repository key packages@exabit.io, fingerprint 6043 AD7B 3533 F615 C15F 48D0 4723 1665 0F4B E230 (public key: keys/resize-amdgpu-bars.asc). SHA256SUMS lists every asset.

Source

The Ubuntu source package linux-hwe-7.0 7.0.0-31.31~24.04.1 (apt-get source linux-hwe-7.0 with noble-updates deb-src enabled) plus the attached patch, built with the attached build-ubuntu-barfix.sh (fakeroot debian/rules binary-headers binary-generic binary-perarch, ABI/module/retpoline checks and dbgsym skipped). GPL-2.0, as the kernel.