Commit graph

32 commits

Author SHA1 Message Date
Shea Levy 839c58f5b1 linux/manual-config: Cleanup 2012-08-11 21:21:06 -04:00
Shea Levy 9ac776ab22 linux/manual-config.nix: Set sourceRoot directly to the pre-unpacked source rather than using a symlink 2012-08-11 21:07:37 -04:00
Shea Levy 0c18551c93 linux/manual-config: Do source unpacking/patching in a separate derivation.
Since we keep the source in the kernel build anyway, no space is wasted by having a separate store path for the unpacked source. The upside is that the same source can be used to build the kernel multiple times, or generate configurations for later kernel builds, without going through the (fairly long) unpack and patch process multiple times.
2012-08-11 21:02:30 -04:00
Shea Levy 21a200d6b2 linux/manual-config: Fix depmod step, remove false comment 2012-08-07 06:36:50 -04:00
Shea Levy 1935f7e5b8 linux/manual-config: Add informative comment 2012-08-03 08:33:31 -04:00
Shea Levy 1b7264d349 linux/manual-config.nix: When stripping, use xargs -r in case CONFIG_MODULES=y but no modules are actually installed 2012-08-01 23:32:02 -04:00
Shea Levy 4aba2bb3f5 linux/manual-config: Use kernelPatches like generic.nix, not a plain patches list 2012-08-01 23:02:17 -04:00
Shea Levy fd330e9315 linux/manual-config: Install the kernel with the name given in stdenv.platform.kernelTarget 2012-08-01 15:39:49 -04:00
Shea Levy ad49d92899 linux/manual-config: When installing firmware, create the firmware directory prior to make *_install.
It is probably a kernel build system bug that this is necessary, but it's not really a big deal either.
2012-08-01 11:56:12 -04:00
Shea Levy 3f4fd55c63 linux/manual-config: Remove unnecessary quotation 2012-08-01 11:26:30 -04:00
Shea Levy 443b9bc936 linux/kernel/manual-config: use isDisabled instead of isNo in case FIRMWARE_IN_KERNEL is left unspecified 2012-08-01 11:21:32 -04:00
Shea Levy 3dbfca0d7f linux/manual-config: Change from 'features' to 'config' and fix build when firmware is installed.
Instead of manually adding which 'features' a kernel has based on its config here, just generate a nixexpr representation of the whole config and let places that need it (e.g. NixOS modules) decide how to map config options to features.

Note that if your kernel requires firmware whose hex file sits directly in ${src}/firmware rather than in a subdirectory thereof, you may need this patch for now: https://lkml.org/lkml/2012/7/31/724
2012-08-01 06:18:03 -04:00
Shea Levy da4c64026a linux/kernel/manual-config: Greatly simplify config parser 2012-07-29 15:54:31 -04:00
Shea Levy 298b5ccdab linux/kernel/manual-config: Only import from derivation when explicitly asked to 2012-07-29 13:26:39 -04:00
Shea Levy f0694a3151 linux/kernel/manual-config: Do all of the config file parsing in the imported-from derivation 2012-07-29 13:24:05 -04:00
Shea Levy 6585646d41 linux/kernel/manual-config: Add meta 2012-07-29 04:59:38 -04:00
Shea Levy 46fa5ab105 linux/kernel/manual-config: Relink the symlink from the build directory to the source directory after the source directory is moved 2012-07-29 04:56:56 -04:00
Shea Levy f7b6f01da1 linux/kernel/manual-config: Cleanup 2012-07-29 04:52:34 -04:00
Shea Levy 98341e0bda linux/kernel/manual-config: Use the kernel's make install 2012-07-29 04:48:50 -04:00
Shea Levy a9a7085684 linux/kernel/manual-config: Allow manually specifying features, cleanup 2012-07-29 04:31:40 -04:00
Shea Levy 6bb20c7ba2 linux/kernel/manual-config: Strip modules after install 2012-07-29 04:23:28 -04:00
Shea Levy 6b18ab5365 linux/kernel/manual-config: Remove useless INSTALL_MOD_STRIP variable 2012-07-29 04:07:43 -04:00
Shea Levy 6e3b17feec linux/kernel/manual-config: Run depmod after build 2012-07-29 04:01:40 -04:00
Shea Levy 48b5e8eee7 linux/kernel/manual-config: Build in a separate directory and move the build and source trees into $out 2012-07-29 03:49:52 -04:00
Shea Levy e42a6c5f46 linux/kernel/manual-config: Move the build directory to $out instead of symlinking it 2012-07-29 03:27:09 -04:00
Shea Levy a36456ca25 linux/kernel-manual-config: Simplify the lines.nix runCommand now that I know how to escape properly 2012-07-29 03:09:44 -04:00
Shea Levy 5a9d9f4f45 linux/kernel/manual-config: Properly escape makeFlagsArray and installFlagsArray 2012-07-29 02:57:58 -04:00
Shea Levy 471b4bc9bb MODLIB needs to be passed directly to make 2012-07-29 02:49:31 -04:00
Shea Levy aa40e0ff59 linux/kernel/manual-config: The default 'make install' tries to do something with LILO, so install the kernel manually 2012-07-29 01:57:59 -04:00
Shea Levy dfa750732d linux/kernel/manual-config: Properly set env vars referencing $out 2012-07-29 01:34:27 -04:00
Shea Levy ff728a6365 The kernel build needs hostname and perl 2012-07-29 01:29:56 -04:00
Shea Levy bf7467cbb1 Add first attempt at linux/kernel/manual-config.
The goal of this function is to make it possible to build a kernel with a user provided .config.
As a secondary goal, it will extract NixOS-relevant features from the config automatically.
As a tertiary goal, the build will aim to be simpler than the current generic kernel builder.sh.

Unfortunately, that simplicity is offset by the complexity of the feature extraction, especially since nix segfaults when trying to split the file into lines (so an import from a derivation is used)
2012-07-29 01:23:51 -04:00