depot/third_party/nixpkgs/pkgs/os-specific/linux/kernel
2024-12-13 20:54:23 +00:00
..
hardened Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
perf Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
bridge-stp-helper.patch Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
common-config.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
export-rt-sched-migrate.patch Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
generate-config.pl Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
generic.nix Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
gpio-utils.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
htmldocs.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
kernels-org.json Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
linux-libre.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
linux-rpi.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
linux-rt-5.4.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
linux-rt-5.10.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
linux-rt-5.15.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
linux-rt-6.1.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
linux-rt-6.6.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
mainline.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
manual-config.nix Merge commit '3ed4d12aac391a1eb607b388e386854780fd3cd3' into HEAD 2024-11-23 21:16:41 +00:00
mptcp-config.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
patches.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
randstruct-provide-seed-5.19.patch Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
randstruct-provide-seed.patch Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
README.md Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
request-key-helper-updated.patch Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
request-key-helper.patch Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
rtl8761b-support.patch Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
update-libre.sh Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
update-mainline.py Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
update-rt.sh Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
update-zen.py Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
update.sh Merge commit '57725ef3ec0b51fea97137fca7cb8f14c98b4525' as 'third_party/nixpkgs' 2024-11-10 23:59:47 +00:00
xanmod-kernels.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00
zen-kernels.nix Merge commit 'fece082f6c165d89daf650c3b80a074079b8af50' into HEAD 2024-12-13 20:54:23 +00:00

How to add a new (major) version of the Linux kernel to Nixpkgs:

  1. 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.

  2. Add the new kernel to the kernels attribute set in linux-kernels.nix (e.g., create an attribute kernel_2_6_22).

  3. Update the kernel configuration:

    1. While in the Nixpkgs repository, enter the development shell for that kernel:

      $ nix-shell -A linuxKernel.kernels.linux_2_6_22
      
    2. Unpack the kernel:

      [nix-shell]$ pushd $(mktemp -d)
      [nix-shell]$ unpackPhase
      
    3. For each supported platform (i686, x86_64, uml) do the following:

      1. Make a copy from the old config (e.g., config-2.6.21-i686-smp) to the new one (e.g., config-2.6.22-i686-smp).

      2. Copy the config file for this platform (e.g., config-2.6.22-i686-smp) to .config in the unpacked kernel source tree.

      3. Run make oldconfig ARCH={i386,x86_64,um} and answer all questions. (For the uml configuration, also add SHELL=bash.) Make sure to keep the configuration consistent between platforms (i.e., dont enable some feature on i686 and disable it on x86_64).

      4. If needed, you can also run make menuconfig:

        $ nix-shell -p ncurses pkg-config
        $ make menuconfig ARCH=arch
        
      5. Copy .config over the new config file (e.g., config-2.6.22-i686-smp).

  4. Test building the kernel:

nix-build -A linuxKernel.kernels.kernel_2_6_22

If it compiles, ship it! For extra credit, try booting NixOS with it.

  1. It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the linuxPackagesFor function in linux-kernels.nix (such as the NVIDIA drivers, AUFS, etc.). If the updated packages arent backwards compatible with older kernels, you may need to keep the older versions around.