#redirect Kernel/MainlineBuilds <> ||<>|| Generally Ubuntu systems run with the stock Ubuntu kernels. However it is handy to be able to test with unmodified mainline kernels to help locate problems in the Ubuntu kernel patches, or to confirm that upstream has fixed the issue. To this end we now offer mainline kernel builds. These mainline kernels are made from unmodified kernel source but using the Ubuntu kernel configuration files. These are then packaged as Ubuntu .deb files for simple installation. We currently build four sets of mainline kernels, two sets from Linus' tree, two sets from [[http://dri.freedesktop.org/wiki/DRM|DRM]]-development repositories, and one from a combined [[git://git.kernel.org/pub/scm/linux/kernel/git/smb/linux-2.6.32.y-drm33.z.git|v2.6.32.x/v2.6.33.y]] stable tree. From [[http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary|Linus' tree]] we build: 1. all formally tagged releases including -rcN 2. the tip of the tree (master head) daily The DRM-development builds are: 1. the tip of the [[http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=shortlog;h=refs/heads/drm-next|drm-next]] head of Dave Airlie's [[http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=summary|drm-2.6]] repository daily 2. the tip of the [[http://git.kernel.org/?p=linux/kernel/git/anholt/drm-intel.git;a=shortlog;h=refs/heads/drm-intel-next|drm-intel-next]] head of Eric Anholt's [[http://git.kernel.org/?p=linux/kernel/git/anholt/drm-intel.git;a=summary|drm-intel]] repository daily For v2.6.32 kernel series, we build an additional set of kernels: 1. tags from the combined [[http://git.kernel.org/?p=linux/kernel/git/smb/linux-2.6.32.y-drm33.z.git;a=summary|v2.6.32.x.y]] tree (by StefanBader) which is v2.6.32.x with DRM from 2.6.33.y This makes these kernels closer to the Lucid kernels which are based on 2.6.32 kernels with DRM backported from the 2.6.33 series. == Mainline Kernels Archive == The [[http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D|mainline kernels archive]] is located at the URL below, there is a directory for each mainline build: {{{ http://kernel.ubuntu.com/~kernel-ppa/mainline }}} The tagged releases are found under a directory matching their tag name and which kernel configuration they were built with (-). Daily releases are found in the {{{daily}}} sub-directory named for the date they were made. Each build directory contains the header and image .deb files for the i386 and amd64 architectures, generic flavour. == Mainline Kernel Mapping == In order to choose which is the closest mainline kernel to any particular Ubuntu release you can use the [[http://kernel.ubuntu.com/~kernel-ppa/info/kernel-version-map.html|Ubuntu to mainline mapping]] table, which contains mappings from Ubuntu releases and pockets to mainline versions. Most likely that you want to download and test against the most [[http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/current/|current]] version. == Installing Mainline Kernels == To use the mainline kernel as-is you only only need to download and install the *image*.deb package that corresponds to your architecture, however if you need to build any external modules you also need the correct *header*.deb and *source*.deb packages. To install, download the common headers, architecture specific headers, and the architecture specific image. For example for 2.6.27.15 we have the following files, for i386 you would need those marked with B and C, amd64 take those marked A & C: {{{ A linux-headers-2.6.27-02062715-generic_2.6.27-02062715_amd64.deb B linux-headers-2.6.27-02062715-generic_2.6.27-02062715_i386.deb C linux-headers-2.6.27-02062715_2.6.27-02062715_all.deb A linux-image-2.6.27-02062715-generic_2.6.27-02062715_amd64.deb B linux-image-2.6.27-02062715-generic_2.6.27-02062715_i386.deb }}} Once you have those downloaded they will need to be installed using dpkg: {{{ sudo dpkg -i *.deb }}} When this process completes you should have a new entry on your boot menu representing the mainline kernel. This will appear as an entry like this: {{{ Ubuntu Intrepid, kernel 2.6.27-02062715-generic }}} == Uninstalling Mainline Kernels == The mainline kernels have their own ABI namespace so they install side by side with the stock Ubuntu kernels (each kernel has a separate directory under /lib/modules/VERSION for example). This means that you can keep several mainline and Ubuntu stock kernels installed at the same time and select the one you need from the GRUB boot menu. If you would like to uninstall a mainline kernel anyway, first use: {{{ dpkg -l | grep "linux\-[a-z]*\-" }}} to find the exact name of the kernel packages you want to uninstall, and then do: {{{ sudo apt-get remove KERNEL_PACKAGES_TO_REMOVE }}} Remember that several packages belong to one kernel version: common headers, architecture specific headers and the architecture specific image. <> == Submitting to kerneloops.org == Ubuntu's default infrastructure for handling OOPSes will not work for these builds as they are external to Ubuntu. To contribute this information to kerneloops.org you will need to make a couple of changes. First, install the kerneloops-applet package which will handle the prompting and submission on any problem. Then edit /etc/kerneloops.conf and delete the ''submit-pipe'' line from the file, so that kerneloops-applet will be used. After a reboot kerneloops-applet will then prompt you if there are any problems and you can choose to submit the information to kerneloops.org.