modules) together in an attribute set returned by the function "kernelPackagesFor" that takes a kernel as argument. For instance, kernelPackages_2_6_23 is the result of calling this function with kernel_2_6_23. This is necessary in NixOS to make it easier to override the kernel: it's not enough to just specify a different kernel (via the boot.kernel option), but you also need matching nvidiaDriver, aufs, iwlwifi, etc. Having a single attribute set that contains all kernel-related packages makes this much easier. * The kernel now has a passthru attribute "features" that allows NixOS expressions to test whether a kernel has certain features. For instance, the externel "iwlwifi" kernel module package should only be built on kernels < 2.6.24, as kernels >= 2.6.24 have iwlwifi support integrated. So the NixOS expressions can do the test "kernel.features ? iwlwifi" to see if the iwlwifi package should be built. Kernel patches can declare additional features. E.g., the fbsplash patch adds a "fbSplash" feature. svn path=/nixpkgs/trunk/; revision=11881
*** Updating the kernel configs ***
- Copy the old Nix expression (e.g. linux-2.6.21.nix) to the new one
(e.g. linux-2.6.22.nix) and update it.
- Add an new attribute to all-packages.nix.
- Unpack the new kernel.
For each platform (i686, x86-64, uml):
- Make an svn copy from the old config (e.g. config-2.6.21-i686-smp)
to the new one (e.g. (e.g. config-2.6.22-i686-smp).
- Copy the config file for this platform
(e.g. config-2.6.22-i686-smp) to .config in the kernel source tree.
- Run `make oldconfig ARCH={i386,x86_64,um}', answer all questions.
(For the uml configuration, also add "SHELL=bash".)
- Make sure that CONFIG_FB_TILEBLITTING is NOT SET (otherwise fbsplash
won't work). If it is, investigate why (there's probably another
option that forces it to be on) and fix it.
- Copy .config over the new config file (e.g. config-2.6.21-i686-smp).