The Debian Kernel and its Team http//www.vergenet.net/linux/debian kernel/

Similar documents
linux-2.6 Packaging maximilian attems Debian Kernel Team Linuxwochen Graz May 20, 2006

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Ubuntu Development Primer

Laboratorio di Programmazione. Prof. Marco Bertini

e2 factory the emlix Embedded Build Framework

Getting Perl modules into Debian

Building Customized Linux Kernels A live demonstration. Mark Post August 17, 2004 Session # 9280


Linux Kernel Compilation

Cross-compiling Linux Kernels on x86_64: A tutorial on How to Get Started

RTLinux Installation Instructions

National Aeronautics and Space and Administration Space Administration. CFE CMake Build System

GUT. GUT Installation Guide

Organization, Structure, and How To Contribute

A Kernel Compiling Adventure By Grant Nelson

CREATING CUSTOM KERNELS WITH DEBIAN'S

Aurelien Jarno 03/04/2006 CRAL. The Debian Project. Aurelien Jarno. What is Debian? Organisation. The Debian.

TDDC88 Lab 4 Software Configuration Management

Transitioning from uclibc to musl for embedded development. Embedded Linux Conference 2015 Rich Felker, maintainer, musl libc March 24, 2015

Home Page. Title Page. Contents. Page 1 of 17. Version Control. Go Back. Ken Bloom. Full Screen. Linux User Group of Davis March 1, Close.

Building Custom Debian Distributions with the CDDTk

Some bits about the Debian Installer

Version Control. 1 Version Control Systems. Ken Bloom. Linux User Group of Davis March 1, 2005

Crosstoolchains in Debian

CLOSE ENCOUNTERS OF THE UPSTREAM RESOURCE

Chapter 3. Revision Control

Hardening The Linux Kernel With Grsecurity (Debian)

Aurelien Jarno 26/02/2006 FOSDEM. Debian GNU/kFreeBSD. Aurelien Jarno. What? Why? Status. The future. How to help?

February 2 nd Jean Parpaillon

TENSORRT 4.0 RELEASE CANDIDATE (RC)

The Embedded Linux Problem

Managing build infrastructure of a Debian derivative

Cover Intro: Kernel Tricks KERNEL TRICKS. Developers are constantly looking for new ways to interact with the versatile Linux kernel.

Why lock down the kernel? Matthew Garrett

Compiling Software on UNIX. System Administration Decal Spring 2009 Lecture #4 George Wu Slides prepared by Joshua Kwan

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

OSELAS.Support OSELAS.Training OSELAS.Development OSELAS.Services

Kernel driver maintenance : Upstream vs. Industry

LINUXBUILD User's Manual

OOoCon Packaging OpenOffice.org. Chris Halls 20/03/2003 Packaging OpenOffice.org

(S)LOC Count Evolution for Selected OSS Projects. Tik Report 315

Project 0: Linux Dabbling

HTTP/2 Out Of The Box

ECE 598 Advanced Operating Systems Lecture 2

Download, Installation, and Support

TENSORRT 3.0. DU _v3.0 February Installation Guide

7 zip linux gui. Search

APPLICATION. NOTE Date:

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

AutoForm plus R6.0.3 Release Notes

Structure and Config

The NetBSD Operating. Overview

manifold Documentation

R- installation and adminstration under Linux for dummie

Debian development with scratchbox. Lauri Arimo

Building Debian-Based Products: Experiences in Collaboration

opensuse Packaging for the osmocom stack Martin Hauke

Flatpak and your distribution. Simon McVittie

Project Build Process. Abhijit Bhosale M.Tech (IT) School of Information Technology, IIT Kharagpur

Running Network Services under User-Mode

Build Debian/Ubuntu packages to make it easy for users to install your software

Running Java Programs

Linux Test Project introduction

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

Software Development I

Disclaimer. This talk vastly over-simplifies things. See notes for full details and resources.

Source Code Management wih git

Maintaining an Out-of-Tree Driver and an Upstream Driver Simultaneously (with minimal pain)

Firmware Test Suite - Uses, Development, Contribution and GPL

Getting Things GNOME! Documentation

Subversion Branching and Merging. Jan Skalický

DESCRIPTION Git dpm is a tool to handle a debian source package in a git repository.

CIS : Computational Reproducibility

Disclaimer. This talk vastly over-simplifies things. See notes for full details and resources.

Using Assembla in PracTEX Production

Why You Should Not Use Arch

Linux Kernel Evolution. OpenAFS. Marc Dionne Edinburgh

FreeBSD Portsnap. What (it is), Why (it was written), and How (it works) Colin Percival The FreeBSD Project

Decentralized Version Control Systems

Managing Source Code With Subversion

ECE 471 Embedded Systems Lecture 15

REAL TIME IMAGE PROCESSING BASED ON EMBEDDED LINUX

Can t Believe It s Linux. a totally different and hypothetical linux distribution

Keeping Up With The Linux Kernel. Marc Dionne AFS and Kerberos Workshop Pittsburgh

2 Installing the Software

Ada in Debian GNU/Linux slides suitable for a 50 minute presentation Copyright (C) 2004, 2006 Ludovic Brenta brenta.

2 Setting up the RDMA Framework for Development

GUT. GUT Installation Guide

Ex.no:2 Date: Kernel Configuration, Compilation and Installation

Upgrading & Updating Your Computer

Introduction to Pintos

Debian Developer s Reference

CIS c. University of Pennsylvania Zachary Goldberg. Notes

Sony s Open Devices Project. Goals Achievements. What went right? What went wrong? Lessons learned

Version Control for Fun and Profit

Package your very own application. Andreas Tille. DebConf 15, Heidelberg, 17. August Debian. Live packaging workshop.

Review Version Control Concepts

What is Subversion and what does it do?

Version Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now

Transcription:

The Debian Kernel and its Team http//www.vergenet.net/linux/debian kernel/ Simon Horman aka Horms horms@valinux.co.jp horms@debian.org horms@verge.net.au April 2005

What is the Debian Kernel Team? Loose collection of Debian Developers and non-debian Developers Maintain many of the kernel source packages. And many of the non-debian-installer kernel image packages. Mail: debian-kernel@lists.debian.org IRC: irc.debian.org, #debian-kernel Source: svn.debian.org 2

Aims Provide stable, secure, DFSG-free kernel images for Debian users Provide source packages for users to make custom kernels Answer bug reports in a timely fashion 3

DFSG-free As the kernel is a core part of the Operating System it is in main And thus must comply with the DFSG Because of this, some source files are removed or modified This generally means the removal of drivers that include binary firmware blobs There has been some support for this from upstream, but work needs to be done Such code cannot be maintained other than by the original author Such code takes from Linux, it does not give 4

... and its not in keeping with the licencing of other code in the kernel tree.

DFSG-free (continued) This means that some drivers are missing, or do not support some hardware The removal is done to the orig.tar.gz, so the non-dfsg code does not appear in the diff and taint the Debian Archive Thus, the orig.tar.gz is not the same as the tarball on kernel.org Non-free but distributable drivers are in the process of being made available in non-free 5

Patches the kernel team like Security Fixes Driver Fixes Stability Fixes... actually, more or less any type of fix 6

Patches the kernel team generally reject Due to limited resources the Debian Kernel is not a playground for: New features Out-of Tree Drivers My favourite patch-set In general, if it isn t likely to be included upstream, it isn t likely to be added to the Debian Kernel... 7

... but this feature is really cool, you should put it in anyway The best way to get a feature into the Debian Kernel is to get it included upstream If you are not sure how to do this, ask the kernel team, generally we are more than happy to help you to help us. If you can t get it included upstream, consider a patch-package...or building a custom kernel 8

... but I want you to put it into the Debian kernel anyway Unfortunately the kernel team only has a limited amount of time If you are a developer and are trying to get a patch adopted, then sorry, we don t do that If you are just being lazy, go and be lazy somewhere else 9

What package does what? In general there are seven types of packages that relate to the kernel: Image: Binary images for a particular architecture e.g: kernel-image-2.4.27-2-686 Latest: Packages that depend on the latest recommended versions e.g: kernel-image-2.4, kernel-headers-2.4, Utilities: Tools used to build or install the kernel e.g.: initrd-tools, kernel-package not maintained by the Kernel Team 10

What package does what? (continued) Source: Kernel source with Debian Patches e.g.: kernel-source-2.4.27 Headers: Headers for building out of tree modules e.g: kernel-headers-2.4.27-2-686 Build-Helper: Packages that depend on a group of other packages that are used to build kernel images or modules e.g: kernel-tree-2.4.27, kernel-build-2.4.27-2 Patch: Various patches provided by Debian e.g: kernel-patch-debian-2.4.27, kernel-patch-powerpc-2.4.27, kernel-patch-2.4-kgdb 11

Show me the code If you install kernel-source-version, then it will install the patched kernel source tree. sudo apt-get install kernel-source-2.4.27... tar jxf /usr/src/kernel-source-2.4.27.tar.bz2 cd kernel-source-2.4.27 12

Debian Patches Despite attempting to stay close to upstream, Debian applies a number of patches to the tree for one reason or another. These patches are contained in kernel-patches-debian-version # In the kernel-source-2.4.27 directory unpacked previously # Patch back to pristine source /usr/src/kernel-patches/all/2.4.27/unpatch/debian # Patch the tree back up to the latest debian version /usr/src/kernel-patches/all/2.4.27/apply/debian # Patch to an arbitrary release /usr/src/kernel-patches/all/2.4.27/apply/debian 2.4.27-7 13

Where are you hiding these patches? These patches are in /usr/src/kernel-patches/all/2.4.27/debian/ Most patches include a comment at the top, describing briefly where they are from and what they do. And the meta-files in the series// subdirectory indicate which patch went into which version. A line beginning with a + denotes an added patch A line beginning with a - denotes an removed patch A line beginning with a X denotes removed file, usually to make the tree DSFG free. 14

Where are the headers for building modules? The headers for debian kernel images are included in the kerne-headers-version-abi-flavour package. e.g. kernel-headers-2.4.27-2-686 And the headers are installed into /usr/src/kernel-version-abi-flavour/ e.g. /usr/src/kernel-headers-2.4.27-2-686/ This directory also includes the.config that was used to build the kernel image 15

What is the ABI number? Image and header package include an ABI number This is the number the version e.g. kernel-headers-2.4.27-2-686 Denotes different versions of the kernel ABI for the same kernel version Incremented when binary incompatibilities are introduced. This usually occurs because of a security fix. And means that out-of tree modules need to be rebuilt. 16

How can I build my own kernel The Debian Way? sudo apt-get install kernel-source-2.4.27 kernel-headers-2.4.27-2-686... tar jxf /usr/src/kernel-source-2.4.27.tar.bz2 cd kernel-source-2.4.27 # Add patches to your hearts content cp /usr/src/kernel-headers-2.4.27-2-686/.config. make menuconfig # or make xconfig or make oldconfig or... make-kpkg clean fakeroot make-kpkg --initrd --revision=mykernel.1.0 kernel_image 17

Kernel Versions There are so many, how can I make sense of it? Sarge The target for most architectures for Sarge is 2.4.27 and 2.6.8. apus and various m68k sub-architectures do not have a working 2.4 or 2.6 upstream, their target is 2.2.25 mips only has a 2.6.8 image due to 2.4 support problems hppa will only have 2.6.8 for the same reason 18

Available Kernels Revisions in Sarge 2.2.25 2.4.27 2.6.8 alpha 2.4.27-9 2.6.8-13 amiga (m68k) * apus (powerpc) 2.4.27-5 arm * atari (m68k) * bvme6000 (m68k) * hppa 2.4.27-8 2.6.8-13 i386 2.4.27-8 2.6.8-13 ia64 2.4.27-8 2.6.8-13 m68k * * mac (m68k) * mips * mvme147 (m68k) * mvme16x (m68k) * powerpc 2.4.27 2.6.8-13 q40 (m68k) s390 2.4.27-8 2.6.8-13 sparc * 2.4.27-8 2.6.8-11 Source: http://people.debian.org/ dannf/kernel-stats/kernel-avail.html, 14th April 2005

Kernel Versions Sid As well as acting as staging area for updates to sarge, Sid also generally has the latext 2.6 kernel for testing... and a bunch of older stuff that should probably be removed. 20

Available Kernels Revisions in Sid 2.2.25 2.4.25 2.4.26 2.4.27 2.6.8 2.6.10 2.6.11 alpha 2.4.27-9 2.6.8-15 amiga (m68k) * * * apus (powerpc) 2.4.27-5 arm * atari (m68k) * * * bvme6000 (m68k) * * * hppa 2.4.27-8 2.6.8-13 2.6.10-4 i386 2.4.27-9 2.6.8-15 2.6.10-6 2.6.11-2 ia64 2.4.27-8 2.6.8-14 2.6.10-6 m68k * 2.6.8-13 mac * mips * mvme147 (m68k) * * * mvme16x (m68k) * * * powerpc 2.4.27 2.6.8-13 2.6.10-1 2.6.11 q40 (m68k) * s390 2.4.27-8 2.6.8-13 2.6.10-4 2.6.11-2 sparc * * 2.4.27-9 2.6.8-15 2.6.10-6 Source: http://people.debian.org/ dannf/kernel-stats/kernel-avail.html, 14th April 2005

2.6 Development The 2.6 development model puts the onus of stabilising the kernel on the distribution This means that Debian has to stabilise the 2.6 kernel it ships Examining the BTS one can observe that this is not an easy task Its a moving target With a rapidly evolving code-base And runs on a lot of hardware that the kernel team does not have access to And the kernel team only has limited resources 22

2.6 Development and Debian The approach of the Kernel Team to stabilising 2.6 can be summarised as follows. Provide a stabilised release for Sarge Provide a more recent release in unstable for people to test When users report bugs for Sarge, try to get them to test the newer kernel, to see if has been fixed Where possible pull patches from upstream Rely on users to report bugs with various pieces of hardware that we don t have 23

2.6 Development and Debian: Details Sarge Kernel for rc0 is based on kernel-source-2.6.8-15 This is also the version in unstable A new version is pending in SVN and should be uploaded shortly, mostly security fixes unstable is going to act as a staging area for rc1 24

2.6 Development and Debian: Details Beyond Sarge Track upstream. Currently 2.6.11, when 2.6.12 is released get it into unstable ASAP, etc... until we go into a stabalisation pahse for Etch 25

2.6 Development and Debian: Status 2.6 for Debian mostly works... except for ACPI... which is to blame for all problems 26

Improving The Kernel Team s Processes Nightly builds from SVN Tools to isolate packaging problems: missing symbols, ABI changes, stray files More timely response to bug reports Single source kernel 27

How to help Bug reports are always welcome, but we already have lots of these If you report a bug, please consider taking the time to look on the net and in upstream (bitkeeper, LKML, etc...) and see if there is a fix available. If there is, add it to the bug report. The kernel-team manages many packages, If you want to report a bug, please take some time to look through all bugs logged against kernel-team@lists.debian.org, to see of the problem has already been logged. I would estimate that about 50% of bugs are duplicates. 28

How to help (continued) If you want to report a bug, please also help in debugging the problem by testing out patches, different kernel versions. Its very difficult for the kernel-team to test a fix if they don t own a specific piece of hardware. If you don t have a bug to report, but would like to fix some of the open bugs in the BTS, please, please, please do! 29

Questions? 30