Difference between revisions of "FLOP:Kernel Management (Experimental)"

From Funtoo
Jump to navigation Jump to search
(No difference)

Revision as of 13:11, November 18, 2012

This page details next-generation kernel management features for Funtoo Linux, which impacts the following subsystems:

  • genkernel
  • kernel ebuilds
  • boot-update
  • grub

Experimental Genkernel

Experimental genkernel is being developed in the following branch:

https://github.com/funtoo/genkernel/tree/testing

The naming convention for kernels is being changed significantly. Previously, genkernel would install and name kernels, etc. like this:

ninja2 drobbins # ls /boot/*37* -l
-rw-r--r-- 1 root root  2284126 Sep 24 11:20 /boot/System.map-openvz-rhel6-stable-x86_64-2.6.32-042stab037.1
-rw-r--r-- 1 root root 59261962 Sep 24 11:29 /boot/initramfs-openvz-rhel6-stable-x86_64-2.6.32-042stab037.1
-rw-r--r-- 1 root root  3841152 Sep 24 11:20 /boot/kernel-openvz-rhel6-stable-x86_64-2.6.32-042stab037.1

In the new format, kernels will be installed and named as follows:

build / # ls /boot/2.6.32.042.037.1-openvz-rhel6-stable-nointel/* -l
-rw-r--r-- 1 root root  2283775 Sep 25 23:19 /boot/2.6.32.042.037.1-openvz-rhel6-stable-nointel/System.map
-rw-r--r-- 1 root root  3862848 Sep 25 23:19 /boot/2.6.32.042.037.1-openvz-rhel6-stable-nointel/bzImage
-rw-r--r-- 1 root root   100358 Sep 25 23:19 /boot/2.6.32.042.037.1-openvz-rhel6-stable-nointel/config
-rw-r--r-- 1 root root 59239975 Sep 25 23:28 /boot/2.6.32.042.037.1-openvz-rhel6-stable-nointel/initramfs

Basically, everything will be inside a directory inside /boot. The directory will have the same name as the official kernel name, ie. what uname -r outputs when the kernel is running. This provides a unified namespace for both genkernel and the kernel itself. This also means that modules and related kernel things will use the same name, such as:

build / # ls -l /lib/modules/2.6.32.042.037.1-openvz-rhel6-stable-nointel -d
drwxr-xr-x 3 root root 4096 Sep 25 23:31 /lib/modules/2.6.32.042.037.1-openvz-rhel6-stable-nointel

This simplifies things and also provides an easy mechanism for applications to determine what particular genkernel kernel is running on the system, which is very useful and basically essential for integrating simple kdump functionality.