Debian Linux Kernel Handbook

version 1.0.21+git20230710.5b7cbe7

This handbook is free software; you may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

The Debian stylesheet is © 2011 Kalle Söderman and is licensed under the GNU General Public License as published by the Free Software Foundation, version 2.

The admonition icons are © 2011, Software in the Public Interest, Inc., and others and are licensed under the Open Publication License, Draft v1.0 or later.

The Debian Open Use logos are © 1999 Software in the Public Interest, Inc. and are released under the terms of the GNU Lesser General Public License, version 3 or any later version, or, at your option, of the Creative Commons Attribution-ShareAlike 3.0 Unported License.

This is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the license texts for more details.

Mon Jul 10 15:35:42 UTC 2023


Table of Contents

1. About this handbook
1.1. Scope
1.2. Authors and Contributors
2. Debian kernel source
2.1. Changes to the pristine kernel source
2.2. Debian kernel patches
2.3. Policy for patch acceptance
3. Debian kernel packages
3.1. Source packages
3.2. Architecture-independent packages
3.3. Architecture-dependent packages
4. Common kernel-related tasks
4.1. Obtaining the Debian kernel source
4.2. Building a custom kernel from Debian kernel source
4.3. Building a custom kernel from the "pristine" kernel source
4.4. Out-of-tree kernel modules
4.4.1. Building modules with DKMS
4.4.2. Building modules with module-assistant
4.4.3. Building unpackaged modules
4.4.4. Out-of-tree modules and Secure Boot
4.5. Rebuilding official Debian kernel packages
4.5.1. Preparation
4.5.2. Simple patching and building
4.5.3. Applying patches or configuration changes
4.5.4. Building many packages
4.5.5. Building packages for one flavour
4.6. Building a development version of the Debian kernel package
4.7. Generating orig tarball from newer upstream
5. Version numbers and ABIs
5.1. The different types of version
5.2. The kernel ABI
5.2.1. The ABI name
5.2.2. Maintaining and updating the ABI
6. Managing the kernel modules
7. Managing the initial ramfs (initramfs) archive
7.1. Initramfs generation tools
7.2. Regenerating the initramfs
7.3. Examining the initramfs contents
8. Package maintainer scripts and hooks
8.1. Kernel hooks
8.2. Kernel hooks required for boot loaders
8.3. Initramfs hooks
8.4. Kernel hooks required for initramfs builders
8.5. Optimising boot loader updates
8.6. Deprecated features
8.7. Initial configuration by the installer
9. Reporting and handling bugs
9.1. Bug handling policy for the kernel team
9.1.1. Required information
9.1.2. Severities
9.1.3. Tagging
9.1.4. Responsibility of the maintainer
9.1.5. Responsibility of the submitter
9.1.6. Keeping bugs separate
9.1.7. Applying patches
9.1.8. Talking to submitters
9.1.9. Reporting bugs upstream
9.2. Filing a bug against a kernel package
9.2.1. Bisecting (finding the upstream version that introduced a bug)