Commit Graph

10 Commits

Author SHA1 Message Date
Shea Levy
f95d214cfd Implement generic kernel build via manual-config
This has three major benefits:

1. We no longer have two kernel build processes to maintain

2. The build process is (IMO) cleaner and cleaves more closely to
upstream. In partuclar, we use make install to install the kernel and
development source/build trees, eliminating the guesswork about which
files to copy.

3. The derivation has multiple outputs: the kernel and modules are in
the default `out' output, while the build and source trees are in a
`dev' output. This makes it possible for the full source and build tree
to be kept (which is expected by out-of-tree modules) without bloating
the closure of the system derivation.

In addition, if a solution for how to handle queries in the presence of
imports from derivations ever makes it into nix, a framework for
querying the full configuration of the kernel in nix expressions is
already in place.

Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-01 09:21:25 -05:00
Ricardo M. Correia
97056a0620 linux: properly parse config choice when it's new 2013-08-06 02:20:48 +00:00
Michael Raskin
2d062ba772 Allow override options being required in kernel configuration.. Otherwise modifying significantly config via extraConfig becomes practically impossible.
svn path=/nixpkgs/trunk/; revision=23171
2010-08-14 09:18:57 +00:00
Lluís Batlle i Rossell
c86da889cc Made the kernel generate-config "build as modules as you can" an option.
Sepcifically, a nixpkgs "platform" option. So, for PC all remained the same
as it was.

svn path=/nixpkgs/trunk/; revision=20059
2010-02-16 19:27:51 +00:00
Eelco Dolstra
e04beb262e * Strangely, running "make defconfig" before the generator causes
"make config" to print an additional question that the script
  doesn't know how to answer ("Audio Excel DSP 16 [N/y] (NEW) ###").
  Just ignore it.

svn path=/nixpkgs/branches/stdenv-updates/; revision=19713
2010-01-27 15:43:27 +00:00
Eelco Dolstra
ec2fd60f88 * Doh!
svn path=/nixpkgs/branches/kernel-config/; revision=18944
2009-12-14 18:30:52 +00:00
Eelco Dolstra
c3e80cbc9f * Get User-Mode Linux to build with a newer kernel. Yes, SHELL really
has to be "/bin/sh" - other values such as "sh" or "bash" or "$(type
  -tP sh)" cause a build error:

  LD      .tmp_vmlinux1
  /nix/store/1yv8i1m76cvwk5w5i5wrk4gj5zyfj6vh-binutils-2.19.1/bin/ld:arch/um/kernel/vmlinux.lds:1: ignoring invalid character `#' in expression
  /nix/store/1yv8i1m76cvwk5w5i5wrk4gj5zyfj6vh-binutils-2.19.1/bin/ld:arch/um/kernel/vmlinux.lds:1: syntax error
  collect2: ld returned 1 exit status

  This is caused by Bash 4.0
  (http://bugzilla.kernel.org/show_bug.cgi?id=13343).

svn path=/nixpkgs/branches/kernel-config/; revision=18941
2009-12-14 17:22:38 +00:00
Eelco Dolstra
15c6ede144 * Allow options to be ignored if they don't exist by marking them with
a "?".

svn path=/nixpkgs/branches/kernel-config/; revision=18931
2009-12-14 09:27:15 +00:00
Eelco Dolstra
71ed6194e1 * Get fbcondecor to work.
* Barf on ignored options.

svn path=/nixpkgs/branches/kernel-config/; revision=18914
2009-12-12 18:55:17 +00:00
Eelco Dolstra
03e45e0cb4 * Added a script to generate the kernel configuration.
`generate-config.pl' runs `make config' to generate a Linux kernel
  configuration file.  For each question (i.e. kernel configuration
  option), unless an override is provided, it answers "m" if possible,
  and otherwise uses the default answer (as determined by the default
  config for the architecture).  This is safer than allmodconfig,
  which answers "y" everywhere it can't answer "m" and thus ends up
  enabling a lot of experimental or debug options.  (For this reason,
  a configuration generated by allmodconfig must be carefully checked
  with every new release to ensure that nothing dangerous is enabled.
  The default config should be safer wrt new kernel releases.)

  Overrides are specified in the `config' argument to generic.nix,
  which is a string that contains lines such as `EXT2_FS_POSIX_ACL y'.
  The script warns about ignored options, and aborts if `make config'
  selects an answer inconsistent with the one in `config'.  This
  allows us to be sure that `make config' doesn't silently override
  our configuration values (e.g., depending on other options, it will
  set FB_TILEBLITTING to "y" even if we want it to be "n").

svn path=/nixpkgs/branches/kernel-config/; revision=18910
2009-12-12 13:51:07 +00:00