$ git log --pretty=format:'%h %s (%cs)%d'
874a7631 patches: Refresh on 6.1.145 (2025-07-14)
(HEAD -> master, tag: v6.1.145-1)
5250885f patches: handle IRQF_NO_AUTOEN (2025-07-13)
711e1cd2 backports: Adapt genlmsg_multicast_allns signature (2024-11-14)
965f73fc patches: Refresh on 6.1.109 (2024-09-11)
(tag: v6.1.110-1)
40bdd073 gentree: Copy README file (2024-07-20)
(tag: v6.1.102-1)
d1b91e85 README: Add section on building and generating backports (2024-07-20)
60fd62e3 README: Remove reference to NFS (2024-07-20)
86a41f85 backports: Add VIRT_WIFI driver (2024-07-08)
24917ed1 backports: Add pureLiFi plfxlc driver (2024-07-08)
9b3e1549 backports: Add Silabs WFX driver (2024-07-08)
...
$ git cat-file blob HEAD:README
# Linux kernel backports package
This package provides backport support for drivers from newer kernels
down to older kernels. It currently backports the following subsystems:
* Wireless
* WWAN
This package provides the latest Linux kernel subsystem enhancements
for kernels 4.14 and above.
# Documentation
This package is documented online and has more-up-to date information
online than on this README file. You should read the wiki page
and not rely on this README!
https://backports.wiki.kernel.org
# How to Build
The driver backporting process involves two main steps. First, the code from
the repository, along with compatible Linux kernel sources, is used to generate
a backports package. The backports repository contains the necessary code to
adapt upstream Linux drivers and subsystem sources. The generated backports
package can then be compiled against any supported kernel version.
The project provides pre-generated backports packages.
If you are using a pre-generated backports package, follow the
section [on building backports against your Linux kernel](##Build backports).
If you want to generate a new backports tar from the Linux kernel
sources, refer to the [Generate backports](##Generate backports) section.
Pre-generated backport packages are located here:
https://backports.wiki.kernel.org/index.php/Releases
The main repository is located here:
https://git.kernel.org/pub/scm/linux/kernel/git/backports/backports.git/
## Generate Backports
This step generates a backports package from the code in the backports
repository combined with the Linux kernel sources. It copies the drivers
from the Linux kernel sources, patches them, and adds extra compatibility
code to ensure they work with older kernel versions.
The Coccinelle `spatch` tool is required for this step.
To generate a backports package, run the `gentree.py` script as follows:
```
./gentree.py <kernel tree> <output directory>
```
`<kernel tree>` points to the sources of a matching Linux kernel.
`<output directory>` is the directory where the resulting backports package will be written.
As the upstream Linux kernel changes frequently, use matching versions for
compatibility. The backports package is tagged with the same version as the
matching kernel version. If a different combination is used, modifications
might be necessary.
This process can also be done inside a container. The GitHub CI generates
the `ghcr.io/hauke/backports` container for this step. It contains all
supported kernel versions for easy testing.
To start the container, use the following command:
```
podman run -v ~/linux/linux-clean:/linux:ro -v ~/backports/backports:/backports:rw -it ghcr.io/hauke/backports /bin/bash
```
Inside the container, run:
```
cd /backports
./gentree.py /linux/ /backports-6.1.100
```
## Build Backports
This section explains how to configure and build a pre-generated backports
package against a supported kernel. The official pre-generated tar files have
names like this: backports-6.1.97-1.tar.xz. This example is a backports package
built from Linux kernel 6.1.97 and can be built against all supported kernel
versions, in this case, any Linux kernel between versions 4.14 and 6.1. We test
builds against the most recent minor version of every kernel version in between.
### Configuring
First, select the drivers you need. Backports uses the configuration system
from the Linux kernel. You can either use `make menuconfig` to select individual
drivers or use the prepared defconfigurations like `make defconfig-wifi`. See
the `defconfigs` folder for more options. To select everything, use
`make allyesconfig`. By default, all code is built as kernel modules.
It is recommended to use a defconfig.
The drivers from backports conflict with the drivers provided by your kernel.
You cannot load the mac80211 framework from both the kernel and backports
simultaneously because they export symbols with the same names.
### Building
After configuring, simply run `make` to compile against the currently
installed kernel.
To compile against a different kernel, define `KLIB` and `KLIB_BUILD` like this:
```
make KLIB=/ksrc-backports/lib/modules/5.15.148-0515148-generic/build/ KLIB_BUILD=/ksrc-backports/lib/modules/5.15.148-0515148-generic/build/
```
Running `make install` will install the kernel modules.
## Testing
We perform automatic build tests against the most recent Linux stable minor
version of all kernel versions in between. GitHub Actions are used for testing.
Currently, we do not have the resources for automatic runtime tests.
# License
This work is a subset of the Linux kernel as such we keep the kernel's
Copyright practice. Some files have their own copyright and in those
cases the license is mentioned in the file. All additional work made
to building this package is licensed under the GPLv2.
# Backporting preference for EXPORT_SYMBOL_GPL() and proprietary drivers
This framework was designed by intent since its inception *only* for upstream
Linux kernel drivers to avoid excuses about the difficulty to support upstream
Linux kernel development while also supporting users on older kernels. To
ensure the intent is respected currently all symbols that we do work on to
backport are exported via EXPORT_SYMBOL_GPL() as we do work to backport them
for the supported kernels. By using EXPORT_SYMBOL_GPL() we make it *clear* that
if you use the backported symbols your software *is* considered derivative
works of the Linux kernel.
Comprendes, Mendes?
# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
* master patches: Refresh on 6.1.145 (2025-07-14)
linux-5.15.y patches: Refresh on top of kernel 5.15.162 (2024-07-08)
linux-5.10.y backports: Add usb_find_common_endpoints() (2023-02-18)
linux-4.19.y backports: Refresh patches on top of 4.19.237 (2022-04-11)
linux-5.4.y backports: patches: Refresh on kernel 5.4.56 (2020-08-08)
linux-5.7.y backports: Refresh patches on top of 5.7.5 (2020-06-22)
linux-5.6 backports: patches: Refresh on kernel 5.6.8 (2020-05-03)
linux-5.5.y backports: patches: Refresh on kernel 5.5.19 (2020-04-22)
linux-5.3.y backports: lib-arc4: Do not build when activated in kernel (2019-10-12)
linux-5.2.y header: Add BITS_PER_TYPE() (2019-08-15)
...
# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
--format='%(refname:short) %(subject) (%(creatordate:short))'
v6.1.145-1 v6.1.145-1 (2025-07-14) tar.gz
v6.1.110-1 v6.1.110-1 (2024-09-14) tar.gz
v6.1.102-1 v6.1.102-1 (2024-07-29) tar.gz
v5.15.162-1 v5.15.162-1 (2024-07-09) tar.gz
v6.1.97-1 v6.1.97-1 (2024-07-07) tar.gz
v5.15.153-1 v5.15.153-1 (2024-04-10) tar.gz
v5.15.148-1 v5.15.148-1 (2024-01-29) tar.gz
v5.10.168-1 v5.10.168-1 (2023-02-18) tar.gz
v5.15.92-1 v5.15.92-1 (2023-02-08) tar.gz
v5.10.157-1 v5.10.157-1 (2022-12-03) tar.gz
...
# associated public inboxes:
# (number on the left is used for dev purposes)
4933 backports
1228 linux-wireless
320 lkml
87 u-boot
53 linux-kbuild
52 xen-devel
43 netdev
39 buildroot
31 linux-arm-kernel
29 dri-devel
27 qemu-devel
22 linux-bluetooth
19 linux-media
18 linux-devicetree
18 stable
17 cocci
14 git
14 intel-gfx
14 linux-arch
13 linuxppc-dev
11 dpdk-dev
10 linux-mm
10 kvm
8 amd-gfx
8 linux-tegra
7 linux-mtd
7 alsa-devel
7 linux-fbdev
7 batman
6 linux-iommu
6 linux-scsi
6 kernel-janitors
5 linux-samsung-soc
5 linux-nfs
5 netfilter-devel
5 linux-fsdevel
5 linux-arm-msm
5 linux-mips
5 linux-kselftest
5 linux-clk
5 linux-next
5 linux-serial
5 linux-doc
5 linux-i2c
5 virtualization
5 linux-s390
5 ltp
5 openembedded-devel
5 yocto-meta-ti
4 linux-block
4 linux-xfs
4 linux-mediatek
4 linux-crypto
4 linux-acpi
4 linux-pm
4 linux-btrfs
4 kvmarm
4 linux-usb
4 linux-iio
4 linux-gpio
4 linux-rdma
4 linux-mmc
4 linux-omap
4 openembedded-core
4 intel-wired-lan
4 qemu-riscv
4 igt-dev
3 linux-riscv
3 linux-nvme
3 bpf
3 linux-cifs
3 linux-rtc
3 linux-renesas-soc
3 selinux
3 linux-pci
3 linux-f2fs-devel
3 linux-man
3 linux-api
3 lttng-dev
3 linux-cxl
3 target-devel
3 linux-sh
3 nouveau
3 linux-staging
3 linux-coco
3 llvm
3 iwd
3 linux-patches
3 kexec
3 linux-um
3 cluster-devel
3 linux-embedded
2 linux-integrity
2 linux-amlogic
2 linux-erofs
2 linux-snps-arc
2 fstests
2 linux-hwmon
2 linux-input
2 driverdev-devel
2 linux-ext4
2 linux-security-module
2 linux-modules
2 linux-rt-users
2 linux-ide
2 linux-watchdog
2 linux-trace-devel
2 rcu
2 linux-i3c
2 util-linux
2 io-uring
2 linux-unionfs
2 linux-audit
2 linux-spi
2 linux-sparse
2 mm-commits
2 ceph-devel
2 linux-can
2 containers
2 linux-rockchip
2 linux-raid
2 platform-driver-x86
2 openbmc
2 linux-hardening
2 keyrings
2 linux-perf-users
2 ath10k
2 mptcp
2 nvdimm
2 fio
2 ofono
2 yocto
2 yocto-meta-freescale
2 yocto-toaster
2 yocto-meta-arm
2 bitbake-devel
2 yocto-meta-virtualization
2 yocto-meta-arago
2 outreachy
2 openrisc
2 intel-xe
2 virtio-comment
2 poky
2 grub-devel
2 cgroups
2 kvm-ppc
2 linux-btrace
2 linux-hexagon
2 linux-hotplug
2 reiserfs-devel
2 lvs-devel
2 lvm-devel
2 virtio-fs
2 fuego
1 linux-fscrypt
1 live-patching
1 linux-efi
1 linux-edac
1 linux-nvdimm
1 kernel-hardening
1 dmaengine
1 linux-parisc
1 linux-leds
1 kernelnewbies
1 linux-sgx
1 linux-hyperv
1 workflows
1 selinux-refpolicy
1 linux-m68k
1 linux-spdx
1 linux-wpan
1 ksummit-discuss
1 wireguard
1 linux-kernel-mentees
1 linux-csky
1 tpmdd-devel
1 linux-firmware
1 cip-dev
1 linux-remoteproc
1 linux-dash
1 linux-bcache
1 linux-pwm
1 linux-fpga
1 xdp-newbies
1 phone-devel
1 dash
1 dm-devel
1 linux-sctp
1 lustre-devel
1 soc
1 ocfs2-devel
1 rust-for-linux
1 ath11k
1 linux-phy
1 sparclinux
1 linux-sunxi
1 regressions
1 ksummit
1 b43-dev
1 linux-nfc
1 linux-bcachefs
1 ath9k-devel
1 ntfs3
1 ell
1 yocto-docs
1 chrome-platform
1 ntb
1 xenomai
1 damon
1 asahi
1 loongarch
1 imx
1 ath12k
1 b4-sent
1 linux-trace-kernel
1 oe-linux-nfc
1 oe-kbuild-all
1 oe-chipsec
1 virtio-dev
1 v9fs
1 ecryptfs
1 linux-ia64
1 kbd
1 autofs
1 cpufreq
1 dccp
1 devicetree-spec
1 devicetree-compiler
1 initramfs
1 hail-devel
1 kvm-ia64
1 linux-8086
1 kernel-testers
1 linux-alpha
1 linux-hams
1 linux-laptop
1 linux-sound
1 trinity
1 linux-metag
1 linux-x25
1 linux-nilfs
1 netfilter
1 linux-oxnas
1 u-boot-amlogic
1 lm-sensors
1 acpica-devel
1 perfbook
1 smatch
1 wireless-regdb
1 powertop
git clone https://yhbt.net/lore/pub/scm/linux/kernel/git/backports/backports.git