Commit graph

386 commits

Author SHA1 Message Date
Shea Levy 20d4dee426 The efi boot stub code should only be run if it is enabled 2012-08-09 10:37:43 -04:00
Eelco Dolstra 6b2a14d698 Fix NixOS evaluation 2012-08-09 10:04:25 -04:00
Shea Levy da787e3071 efi-boot-stub: List required kernel config 2012-08-08 23:02:46 -04:00
Eelco Dolstra 21da462ad5 Merge pull request #25 from shlevy/required-kernel-config
Required kernel config
2012-08-08 10:33:41 -07:00
Shea Levy c39f493ebb Minor reorganization 2012-08-07 18:09:08 -04:00
Eelco Dolstra 66ff6a382a stage-1-init: Close temporary file descriptor
Otherwise this fd will be inherited all the way into the Upstart jobs.
2012-08-07 10:05:33 -04:00
Shea Levy 0ea2643c63 The initrd mounts some tmpfses 2012-08-07 06:57:01 -04:00
Eelco Dolstra 52b6e10315 Use systemd-modules-load.service to load required kernel modules 2012-08-06 16:52:08 -04:00
Rickard Nilsson e33dfa936f Use busybox mount instead of klibc nfsmount for nfs mounts in initrd. 2012-08-06 16:25:22 -04:00
Eelco Dolstra 9f9ae7c7e9 Share option definitions between the systemd and Upstart compatibility modules 2012-08-06 11:45:59 -04:00
Eelco Dolstra 4d2deff7af Stop obsolete units, restart changed units, start new units 2012-08-02 17:26:23 -04:00
Eelco Dolstra d4fec178fd Merge remote-tracking branch 'origin/master' into systemd 2012-08-02 13:44:16 -04:00
Rickard Nilsson a6039e1be2 LUKS root: Fix key file check
Check for null instead of empty string
2012-08-02 11:39:31 +02:00
Rickard Nilsson 0958b224ac LUKS root: Add option for using a key file instead of a passphrase. 2012-08-02 11:30:33 +02:00
Rickard Nilsson ecdbc94e05 LUKS root: Add option allowDiscards (for SSD disks) 2012-08-02 11:27:28 +02:00
Shea Levy feb010a366 NixOS kernels should support ELF executables 2012-08-02 00:47:36 -04:00
Shea Levy 9e300052bd Add test to check that a machine with a minimal kernel but all of the requiredKernelConfig options set boots and shuts down 2012-08-01 22:32:16 -04:00
Shea Levy 2a983acaff Enable specifying which kernel config options are needed for a given module 2012-08-01 21:50:43 -04:00
Eelco Dolstra 5f57110e1f install-grub.pl: Fix Xen support 2012-08-01 21:48:29 +02:00
Eelco Dolstra 174d6a07e0 Fix whitespace 2012-07-30 13:49:10 -04:00
Eelco Dolstra 557f39aa0f install-grub.pl: Apply the configuration limit only to old generations 2012-07-25 16:37:29 -04:00
Eelco Dolstra b52117c34d Treat init-script as a boot loader 2012-07-25 11:30:16 -04:00
Eelco Dolstra 8b91a5f2ff Move boot loader modules to modules/system/boot/loader 2012-07-25 10:59:03 -04:00
Eelco Dolstra a0721ad2b3 stage-1-init: Use mount --move to move /sys etc. to the target root
This fixes warnings about /sys/kernel/security during shutdown and
cleans up /proc/mounts.
2012-07-24 22:04:28 -04:00
Your Name 8bde72d99c Mount securityfs needed for AppArmor and some TPM drivers.
Should be harmless.
2012-07-22 16:31:49 +03:00
Eelco Dolstra 71ca633431 Start agetty on tty1
‘logind’ automatically starts agetty on all virtual consoles except
tty1.  We have to do that ourselves.
2012-07-20 18:32:24 -04:00
Eelco Dolstra 5fabcf63a3 Get delayed shutdowns to work 2012-07-20 15:40:50 -04:00
Eelco Dolstra 1375e7951d Enable systemd-journal-flush.service (added by systemd 187) 2012-07-20 12:02:42 -04:00
Eelco Dolstra 02e37ba6b0 Shorten filenames of start scripts to make log messages more readable 2012-07-19 17:41:42 -04:00
Eelco Dolstra 6419172bc2 journald: enable logging to the console 2012-07-19 17:32:50 -04:00
Eelco Dolstra 917e53a2d2 Update units names for systemd-186 2012-07-16 17:47:11 -04:00
Eelco Dolstra 94daecd90b save-hwclock.service: support time.hardwareClockInLocalTime 2012-07-16 17:32:26 -04:00
Eelco Dolstra 44d091674b Merge branch 'master' of github.com:NixOS/nixos into systemd
Conflicts:
	modules/config/networking.nix
	modules/services/networking/ssh/sshd.nix
	modules/services/ttys/agetty.nix
	modules/system/boot/stage-2-init.sh
	modules/system/upstart-events/shutdown.nix
2012-07-16 17:27:11 -04:00
Eelco Dolstra 98459eb675 Global replace /var/run/booted-system -> /run/booted-system 2012-07-16 11:34:21 -04:00
Eelco Dolstra 73532c3855 Global replace /var/run/current-system -> /run/current-system 2012-07-16 11:34:21 -04:00
Eelco Dolstra bf15293b1e Merge branch 'master' of github.com:NixOS/nixos into systemd
Conflicts:
	modules/services/hardware/udev.nix
2012-06-28 14:19:38 -04:00
Eelco Dolstra 76c74cd7c7 initrd: Detect filesystem type before doing fsck/mount
BusyBox doesn't handle the "auto" filesystem type very well: fsck will
just ignore such filesystems, and mount will only work properly if the
required kernel module is already loaded.  Therefore, use blkid to
determine the filesystem type.

Also generate an /etc/fstab in the initrd rootfs on the fly.  This is
useful if you're dropped into an emergency shell since it allows you
to say "fsck /dev/sda1" or "mount /dev/sda" and have the right thing
happen.
2012-06-28 10:55:44 -04:00
Shea Levy bb5d2d53fe try isn't used, so use the more compatct seq 10 2012-06-27 09:43:54 -04:00
Mathijs Kwik 061a998840 luks root: c-style for-loop -> seq
The ash shell no longer supports this bash-specific syntax.
This left systems that use luksroot unable to boot.
2012-06-27 09:42:55 -04:00
Eelco Dolstra e64bdda52b Don't use weird 777 permissions on unmounted /dev/shm 2012-06-27 09:35:53 -04:00
Eelco Dolstra bd0f065c05 Merge branch 'master' of github.com:NixOS/nixos into systemd 2012-06-22 18:20:26 -04:00
Eelco Dolstra 980ba4d5a5 stage-1: mount /proc, /sys, /dev in the target root
The switch_root in BusyBox doesn't do this (while the one in
util-linux does).  So we have to do this ourselves.
2012-06-22 13:51:42 -04:00
Eelco Dolstra 872a76b177 Merge branch 'master' of github.com:NixOS/nixos into systemd 2012-06-22 11:11:21 -04:00
Eelco Dolstra 9692495df0 Use BusyBox in the initrd
Using BusyBox instead of Bash plus a bunch of other tools gives us a
much more feature-full, yet smaller initrd.  In particular, BusyBox
contains networking commands such as ip and a DHCP client, useful for
NFS boots.  It's also much more convenient for rescue situations
because the shell has builtin readline support and there are many more
tools (including vi).
2012-06-22 10:43:06 -04:00
Eelco Dolstra 337423af8e Backdoor: depend on /dev/hvc0
Systemd is the shit: units can declare a dependency on the appearance
of device nodes.  Yay!
2012-06-19 17:36:02 -04:00
Eelco Dolstra 2fa1ba85c6 Enable the systemd password agents 2012-06-19 17:02:54 -04:00
Eelco Dolstra d692a0807a Don't mount /dev/pts since systemd does that for us 2012-06-19 15:25:56 -04:00
Eelco Dolstra cacd608c37 Mount devtmpfs in the initrd
It seems that udev now requires devtmpfs, so enable it.
2012-06-19 15:15:40 -04:00
Eelco Dolstra c73d642db2 Don't put quotes around environment values 2012-06-18 23:30:26 -04:00
Eelco Dolstra c3fb248bcb Get rid of the Upstart shutdown job
The only thing that Upstart's shutdown job did that systemd doesn't do
natively is update the hardware clock.  So added a service for that.
2012-06-18 18:15:34 -04:00
Eelco Dolstra 9f5051b76c Rename mingetty module to agetty 2012-06-18 17:55:27 -04:00
Eelco Dolstra 352510c208 Add an option ‘boot.systemd.services’
This option makes it more convenient to define services because it
automates stuff like setting $PATH, having a pre-start script, and so on.
2012-06-18 15:28:31 -04:00
Eelco Dolstra 42ee3b4209 Add a ‘wantedBy’ attribute to unit definitions
This attribute allows a unit to make itself a dependency of another unit.

Also, add an option to set the default target unit.
2012-06-17 23:31:21 -04:00
Eelco Dolstra 4a95f8996b To ease migration to systemd, generate units from the ‘jobs’ option
Also get rid of the ‘buildHook’ job option because it wasn't very useful.
2012-06-16 00:19:43 -04:00
Eelco Dolstra 66f4d10843 Use pam_systemd.so to set up device ownership
This removes the need for ConsoleKit, so it's gone.
2012-06-15 14:51:48 -04:00
Eelco Dolstra ab86759eb3 Use kmod instead of module-init-tools 2012-06-15 14:18:26 -04:00
Eelco Dolstra 164d6e6ab2 Use udev from systemd 2012-06-15 13:09:22 -04:00
Eelco Dolstra a46894b960 Get lots more systemd stuff working
Enabled a bunch of units that ship with systemd.  Also added an option
‘boot.systemd.units’ that can be used to define additional units
(e.g. ‘sshd.service’).
2012-06-14 18:44:56 -04:00
Eelco Dolstra fae777c264 Merge branch 'master' of github.com:NixOS/nixos into systemd 2012-06-14 12:02:17 -04:00
Peter Simons 25155a02e6 Add findutils dependency for /tmp cleaning.
This dependency is only added if the setting is activated.

svn path=/nixos/trunk/; revision=34434
2012-06-11 07:05:15 +00:00
Peter Simons 4931188684 Integrate cleanTmpDir in stage-2-init.sh.
We're using find in order to remove dotfiles, too.

svn path=/nixos/trunk/; revision=34433
2012-06-11 07:05:13 +00:00
Peter Simons fbf53168f3 Add new option config.boot.cleanTmpDir.
This option is to control if the user wants to have its /tmp directory cleaned
up during system boot.

svn path=/nixos/trunk/; revision=34432
2012-06-11 07:05:11 +00:00
Lluís Batlle i Rossell 9125d3af50 Adding creation of /dev/ptmx in stage-2, in case stage-1 did not run.
Upstart requires /dev/ptmx since its 1.4, and will lock up in case of it missing.

I was hitting this in the fuloong, where I don't use the nixos initrd.


svn path=/nixos/trunk/; revision=34429
2012-06-10 22:37:20 +00:00
Eelco Dolstra f21aa7d22c First attempt at using systemd
Basic booting works.  Systemd starts agetty instances on tty1 and
tty2.  Shutdown and journald also work.
2012-06-04 12:51:48 -04:00
Eelco Dolstra e9e6885d3b * Lower the limits on /run and /dev.
svn path=/nixos/trunk/; revision=34159
2012-05-17 19:33:12 +00:00
Eelco Dolstra 07fcf5baee * Make the boot.initrd.luks.enable option obsolete. It's enough to
see that boot.initrd.luks.devices is non-empty.

svn path=/nixos/trunk/; revision=34120
2012-05-15 20:45:01 +00:00
Eelco Dolstra 67d5f2b444 * Require fileSystems to be set.
svn path=/nixos/trunk/; revision=34080
2012-05-14 01:33:11 +00:00
Eelco Dolstra 836fa3b6ae * Fix missing semicolon.
svn path=/nixos/trunk/; revision=33933
2012-04-26 14:53:58 +00:00
Peter Simons 8c93993e1b modules/system/boot/luksroot.nix: fixed the descriptions of the options defined in this module
svn path=/nixos/trunk/; revision=33927
2012-04-26 12:21:45 +00:00
Eelco Dolstra 2821289aeb * Ugly hack: force udev to exit to prevent random "Device or resource
busy while trying to open /dev/xvda" errors from fsck.

svn path=/nixos/trunk/; revision=33766
2012-04-12 18:01:19 +00:00
Peter Simons ec3dca188c Dropped the unused/unknown/obsolete module i8042 from 'boot.initrd.kernelModules'.
svn path=/nixos/trunk/; revision=33654
2012-04-06 19:21:50 +00:00
Eelco Dolstra 4f4c529979 Stage 1 improvements:
* Load scsi_wait_scan after all other kernel modules to ensure that
  all SCSI device nodes have been created.
* Increase the timeout for the appearance of the root device to 20
  seconds.
* Do a "udevadm settle" just after the root device has appeared to
  make sure that udev isn't accessing the device anymore (hopefully).
  On EC2 (Xen), I've seen fsck on the root fail randomly with "device
  in use" errors.

svn path=/nixos/trunk/; revision=33650
2012-04-06 14:20:43 +00:00
Eelco Dolstra 1e8e83408b * Revert unintended commit.
svn path=/nixos/trunk/; revision=33646
2012-04-06 12:23:44 +00:00
Eelco Dolstra 852e513638 * Handle booting from /dev/xvda.
svn path=/nixos/trunk/; revision=33645
2012-04-06 12:23:12 +00:00
Eelco Dolstra e44b87dd31 * Pass --no-sessions to Upstart to make sure users cannot start
Upstart jobs (even when Upstart has attached to D-Bus).

svn path=/nixos/trunk/; revision=33617
2012-04-05 12:27:21 +00:00
Lluís Batlle i Rossell f4883572d8 Making the init interactive shells handle well console kernel parameters
with extra parameters, like console=ttyS0,115200.


svn path=/nixos/trunk/; revision=33458
2012-03-28 19:58:44 +00:00
Eelco Dolstra 6f03065dce * Move the setting of $MODULE_DIR to modprobe.nix.
* Add a slash to the end of $MODULE_DIR, as expected by depmod.  (Not
  that running depmod from the command line is all that useful, since
  you can't use it to update the tree in the Nix store.  But at least
  commands like "depmod -n" work now.)  Reported by Kirill Elagin on
  IRC.

svn path=/nixos/trunk/; revision=33312
2012-03-20 22:02:27 +00:00
Eelco Dolstra e86427f037 * Remove an obsolete line.
svn path=/nixos/trunk/; revision=33308
2012-03-20 21:43:13 +00:00
Eelco Dolstra a51a83bd8c * Drop obsolete line.
svn path=/nixos/trunk/; revision=33276
2012-03-19 19:34:06 +00:00
Eelco Dolstra 533448ae37 * udev: don't set the STARTUP flag anymore, since LVM no longer uses
it.
* Don't call "vgscan" anymore; VG scans are supposed to be automatic.

svn path=/nixos/trunk/; revision=33275
2012-03-19 19:10:27 +00:00
Eelco Dolstra ebc6d7f435 * Attempt to fix the random "udevadm settle - timeout of 120 seconds
reached, the event queue contains: /sys/devices/virtual/tty/hvc1" VM
  failures.

svn path=/nixos/trunk/; revision=33259
2012-03-19 15:10:39 +00:00
Eelco Dolstra 2cc8d0363e * Move the implementation of boot.kernelModules to udev's postStart.
It needs udevd to be running because the modules may require
  firmware.  Thanks to Mathijs and Arie for pointing this out.

svn path=/nixos/trunk/; revision=33234
2012-03-18 14:03:42 +00:00
Eelco Dolstra 573877c1ac * Use boot.kernelModules everywhere instead of explicit calls to
modprobe.
* Move the implementation of boot.kernelModules from the udev job to
  the activation script.  This prevents races with the udev job.
* Drop references to the "capability" kernel module, which no longer
  exists.

svn path=/nixos/trunk/; revision=33208
2012-03-17 17:26:17 +00:00
Lluís Batlle i Rossell dd6eb81797 Adding /etc/mdadm.conf, with the contents supplied at boot.initrd.mdadmConf.
This allows setting a fixed device name per array, thus ensuring that at boot,
the arrays will always be mounted with the same names. I think this allows
solving the problem of grub getting confused about softraid device names
(prefix and root), if the devices always get the same naming at initrd.


svn path=/nixos/trunk/; revision=33033
2012-03-13 13:26:21 +00:00
Lluís Batlle i Rossell 3c0fdaf877 Adding /dev/tty to the stage1, so 'more' and 'less' now page well.
svn path=/nixos/trunk/; revision=33006
2012-03-11 23:04:29 +00:00
Lluís Batlle i Rossell ee163c2c80 Making the stage2 interpreter bash non-interactive, while keeping the
interactive shell with bash interactive. Suggested by Eelco.


svn path=/nixos/trunk/; revision=33005
2012-03-11 22:43:37 +00:00
Lluís Batlle i Rossell 1a48572b75 Disabling the initrd extra tools by default, until further review.
svn path=/nixos/trunk/; revision=33004
2012-03-11 22:28:31 +00:00
Lluís Batlle i Rossell 2fc537277b Removing a 'set -x' in the stage1 extra tools.
svn path=/nixos/trunk/; revision=33003
2012-03-11 22:26:01 +00:00
Lluís Batlle i Rossell d2e2bb4bc4 Typo
svn path=/nixos/trunk/; revision=33002
2012-03-11 22:07:37 +00:00
Lluís Batlle i Rossell 331b1f46d3 Making the stage2 'debug2' spawn a shell with job control, like in stage1, running it in a
virtual terminal and not in the console. This brings wonderful things like ^C.


svn path=/nixos/trunk/; revision=33001
2012-03-11 22:01:46 +00:00
Lluís Batlle i Rossell bbebba68f7 A more friendly stage1, with interactive bash, busybox plenty of tools, etc.
I set it as default because users can benefit of this without having to prepare
their nixos first, and I don't think it will break any nixos for the initrd
size increase.

It can be disabled with 'boot.initrd.withExtraTools = false'.


svn path=/nixos/trunk/; revision=33000
2012-03-11 21:56:47 +00:00
Lluís Batlle i Rossell 6a0958cc06 Making stage2 get a full interactive bash for the stage2 init, so there the shell has readline,
jobs, etc.


svn path=/nixos/trunk/; revision=32999
2012-03-11 21:50:35 +00:00
Eelco Dolstra 03ebb883d1 * Modularize filesystem support. Filesystems such as btrfs and
reiserfs now have separate modules that are conditional on
  boot.supportedFilesystems and boot.initrd.supportedFilesystems.
  By default, these include the filesystems specified in the fsType
  attribute in fileSystems.  Ext2/3/4 support is currently
  unconditional.

  Also unbreak the installer test (http://hydra.nixos.org/build/2272302). 

svn path=/nixos/trunk/; revision=32954
2012-03-09 14:37:58 +00:00
Lluís Batlle i Rossell 98dde13782 If enabling luks on initrd, also adding cryptsetup to system packages. I think it's useful.
svn path=/nixos/trunk/; revision=32910
2012-03-08 20:49:26 +00:00
Lluís Batlle i Rossell 1adaabef58 Adding an option to luksroot, so it allows to define whether to launch cryptsetup after or before LVM.
To allow dmcrypt over lvm and lvm over dmcrypt.


svn path=/nixos/trunk/; revision=32784
2012-03-04 21:00:35 +00:00
Lluís Batlle i Rossell 79d4b11aeb Making the luks thing of initrd a bit more flexible. I used it to get a
ciphered swap, where I could hibernate ciphered.


svn path=/nixos/trunk/; revision=32754
2012-03-03 16:07:18 +00:00
Eelco Dolstra ee0769cc42 * If debug2 is passed on the kernel command line, run Upstart with
the --verbose flag to see what it's doing.

svn path=/nixos/trunk/; revision=32747
2012-03-02 16:37:28 +00:00
Eelco Dolstra f61ad97833 * Run the stage 2 debug shell at a more useful point (just before
starting Upstart).  This also causes $PATH to be set to something
  more sensible.

svn path=/nixos/trunk/; revision=32740
2012-03-02 13:17:05 +00:00
Eelco Dolstra a218a602d4 * Use openresolv to set the static nameserver configuration. Next
step is to get the DHCP client, OpenVPN etc. to use openresolv as
  well.

svn path=/nixos/trunk/; revision=32411
2012-02-20 00:00:50 +00:00
Florian Friesdorf eb755d4692 switched all mergeOptionString to pkgs.lib.types.string
pierron recommended the use of types.string over mergeOptionString, as
it is superior but might break things.

For my system the change evaluated to the exactly same.

svn path=/nixos/trunk/; revision=31138
2011-12-29 00:51:35 +00:00
Florian Friesdorf 3ebc7727f7 Revert "test we have cryptsetup-1.4.1 in initrd"
This reverts commit 025f8c40b40fad50086e8761eee61098d8fb2651.

The check was intened for building the initrd of the installer.

svn path=/nixos/trunk/; revision=31137
2011-12-28 22:37:38 +00:00
Florian Friesdorf 0544a008db Revert "added an "error" to luksroot that should be caught"
This reverts commit c7967af35a13f68a8785c142582b639dc8c8e92c.

svn path=/nixos/trunk/; revision=31136
2011-12-28 22:36:26 +00:00
Florian Friesdorf 829bd9a727 added an "error" to luksroot that should be caught
svn path=/nixos/trunk/; revision=31135
2011-12-28 22:21:31 +00:00
Florian Friesdorf c7fd05a650 test we have cryptsetup-1.4.1 in initrd
svn path=/nixos/trunk/; revision=31132
2011-12-28 21:46:50 +00:00
Florian Friesdorf c15aa7aea3 luksroot uses preLVMCommands instead of postDeviceCommands
svn path=/nixos/trunk/; revision=31131
2011-12-28 21:46:48 +00:00
Florian Friesdorf 90756a787c add preLVMCommands hook
svn path=/nixos/trunk/; revision=31130
2011-12-28 21:46:45 +00:00
Florian Friesdorf 0a9f3a36ec luksroot waits for usb drive
svn path=/nixos/trunk/; revision=31129
2011-12-28 21:46:42 +00:00
Florian Friesdorf dd8e725d7d copy only cryptsetup deps to stage-1 and test cryptsetup
popt-0.16 and cryptsetup-1.4.1 both generated pkgconfig (in contrast
to older versions). The pkgconfig files (popt.pc and cryptsetup.pc)
contain references into the store that are not removed by patchelf and
stage-1 fails with errors like: "output is not allowed to refer to
path `/nix/store/qccjhn063cfv171rcaxvxh0yk96zf7l2-cryptsetup-1.4.1'".

Now, only the cryptsetup binaries and its dependencies are copied,
determined by ldd. In addition the cryptsetup binary and lvm are
tested after patchelf has adjusted the library paths.

Thanks to Peter Simons and Eelco Dolstra for giving the rights hints.

svn path=/nixos/trunk/; revision=31128
2011-12-28 21:46:40 +00:00
Florian Friesdorf d98ecd1d9e enable testing of extraUtilsCommands after patchelf
svn path=/nixos/trunk/; revision=31127
2011-12-28 21:46:35 +00:00
Eelco Dolstra 2ff7b1284a * Handle the util-linux-ng -> util-linux rename
(http://hydra.nixos.org/build/1646277/nixlog/1).

svn path=/nixos/trunk/; revision=30984
2011-12-20 13:36:11 +00:00
Eelco Dolstra 6e95485a28 * Set boot.vesa to false if we don't have a fbcondecor-enabled kernel.
svn path=/nixos/trunk/; revision=30802
2011-12-08 12:25:33 +00:00
Eelco Dolstra 508fea8dac * Remove the cfq_iosched module.
svn path=/nixos/trunk/; revision=30618
2011-11-29 14:19:55 +00:00
Eelco Dolstra fdc51c2c97 * Disable all fbcondecor-related stuff if boot.vesa is disabled.
svn path=/nixos/trunk/; revision=30343
2011-11-08 19:43:15 +00:00
Eelco Dolstra fe566d84ae * Remove references to the "safemode" boot option, which doesn't do
anything.

svn path=/nixos/trunk/; revision=30199
2011-11-03 00:46:29 +00:00
Eelco Dolstra 3fd482677e * modprobe wants /etc/modprobe.d now.
svn path=/nixos/trunk/; revision=30164
2011-11-01 15:39:30 +00:00
Peter Simons 20b364f4de Reverting revisions 30103-30106: "always set nixpkgs.config.{state,store}Dir", etc.
After the change from revision 30103, nixos-rebuild suddenly consumed
freaky amounts of memory. I had to abort the process after it had
allocated well in excess of 30GB(!) of RAM. I'm not sure what is causing
this behavior, but undoing that assignment fixes the problem. The other
two commits needed to be revoked, too, because they depend on 30103.

svn path=/nixos/trunk/; revision=30127
2011-10-30 15:19:58 +00:00
Shea Levy 09cf6ce70c find modules | fgrep .nix | fgrep -v .svn | fgrep -v nixpkgs.nix | xargs sed -i -e 's|/nix/var|${config.nixpkgs.config.nix.stateDir}|g' -e 's|/nix/store|${config.nixpkgs.config.nix.storeDir}|g'
Don't assume /nix/store or /nix/var in NixOS modules, this is configurable

svn path=/nixos/trunk/; revision=30104
2011-10-29 21:03:57 +00:00
Eelco Dolstra 926091c265 * Make the permissions on /run less liberal.
svn path=/nixos/trunk/; revision=30065
2011-10-27 17:34:16 +00:00
Nicolas Pierron 38bc39c299 Add support for NFS root file system.
Patch by Rickard Nilsson.

svn path=/nixos/trunk/; revision=29855
2011-10-15 21:01:30 +00:00
Eelco Dolstra 3fa2bbd029 * Properly shut down udevd in stage 1. Otherwise there is a slight
possibility that a udevd process survives, preventing udevd from
  starting in stage 2:

  machine# udevd[1421]: bind failed: Address already in use
  machine# udevd[1421]: error binding udev control socket

svn path=/nixos/trunk/; revision=29434
2011-09-22 08:26:58 +00:00
Peter Simons eb6e1310b8 strip trailing whitespace; no functional change
svn path=/nixos/trunk/; revision=29285
2011-09-14 18:20:50 +00:00
Peter Simons a499049ce5 Strip trailing whitespace.
svn path=/nixos/trunk/; revision=29246
2011-09-13 18:49:50 +00:00
Peter Simons d3528a3c4e modules/system/boot/stage-1-init.sh: added "boot.runSize" option to determine the maximum size of the /run tmpfs
svn path=/nixos/trunk/; revision=29245
2011-09-13 18:49:47 +00:00
Peter Simons c01c41e2da modules/system/boot/kernel.nix: disable "elevator=cfq" boot parameter for the time being
This setting causes the init ram disk to hang indefinitely on some systems.

svn path=/nixos/trunk/; revision=29228
2011-09-12 18:01:18 +00:00
Peter Simons 6c08bf40a6 modules/system/boot/kernel.nix: stripped trailing whitespace
svn path=/nixos/trunk/; revision=29101
2011-09-07 20:36:13 +00:00
Eelco Dolstra 4b8275d2c4 * Force loading of the CFQ module, i.e. don't do it on demand — that
seems to cause weird modprobe hangs.

svn path=/nixos/trunk/; revision=29027
2011-09-05 14:58:26 +00:00
Eelco Dolstra 8b3fd3ed49 * Use the CFQ I/O scheduler, rather than the ‘none’ scheduler. This
was already the case on Linux 2.6.32, but in newer kernels the CFQ
  scheduler is built as a module, so all block devices got the ‘none’
  scheduler instead.

svn path=/nixos/trunk/; revision=28972
2011-09-02 13:19:45 +00:00
Shea Levy 25594961ad modprobe.nix: Blacklist snd_pcsp by default
svn path=/nixos/trunk/; revision=28805
2011-08-24 23:37:40 +00:00
Yury G. Kudryashov e5917ea6fc Merge with udev-173
The only conflict was the addition of two different options at the same place.

svn path=/nixos/trunk/; revision=28801
2011-08-24 21:24:39 +00:00
Eelco Dolstra 74586fd2bb * Fix the permissions on /tmp.
svn path=/nixos/trunk/; revision=28435
2011-08-09 15:32:39 +00:00
Eelco Dolstra 1e5bd11a53 * Create /run in the initrd and bind-mount it into the target root.
This allows Udev to share its database between stage 1 and 2, which
  in turn is expected by the LVM Udev rules.

svn path=/nixos/trunk/; revision=27926
2011-07-24 23:36:30 +00:00
Eelco Dolstra 14636ba057 * The Powers That Be have decided that there shall be a /run to
replace /var/run and /var/lock.  For instance, udev now keeps state
  in /run/udev instead of /dev/.udev.  See

    http://lists.fedoraproject.org/pipermail/devel/2011-March/150031.html
    http://bugs.freestandards.org/show_bug.cgi?id=718

  So this patch creates /run as a tmpfs, and symlinks /var/run to /run
  and /var/lock to /run/lock.

  TODO: create /run in stage 1 and propagate it to stage 2.    

svn path=/nixos/trunk/; revision=27803
2011-07-16 19:27:45 +00:00
Eelco Dolstra 97a37f7c12 * "stage1panic" -> "stage1panic=1" to get rid of a harmless warning.
svn path=/nixos/trunk/; revision=26756
2011-04-08 14:42:35 +00:00
Eelco Dolstra 63bd2744b7 * Partially revert r25991 because it depends on the x-updates branch.
svn path=/nixos/trunk/; revision=25995
2011-02-16 16:48:34 +00:00
Eelco Dolstra 131f3c8e63 * Because cdrom_id now links against libpthread, LD_LIBRARY_PATH must
be set when udevd calls external programs.  (The udev manpage claims
  that udevd passes its own environment variables, but this is not the
  case.)
* Get rid of some udev rule hacks that no longer seem needed.

svn path=/nixos/trunk/; revision=25991
2011-02-16 14:38:52 +00:00
Eelco Dolstra dff372db3c * Fix evaluation of the luksroot module when luksRoot == null. The
problem is that configuration values below a mkIf are evaluated
  strictly even if the condition is false.  Thus "${luksRoot}" causes
  an evaluation error.  As a workaround, use the empty string instead
  of `null' as the default value.  However, we should really fix the
  laziness of mkIf.  It's likely that NixOS evaluation would be much
  faster if it didn't have to evaluate disabled configuration values.

svn path=/nixos/trunk/; revision=24477
2010-10-25 22:21:51 +00:00
Evgeny Egorochkin 791c758b41 Encrypted root support via LUKS
svn path=/nixos/trunk/; revision=24459
2010-10-25 00:57:30 +00:00
Eelco Dolstra c4f910f550 * Substitute the path of the system derivation directly in the stage 2
init script.  This removes the need for the `systemConfig' boot
  parameter; `init=<stage-2-init>' is enough.  However, the GRUB menu
  builder still needs to add `systemConfig' to the kernel command line
  for compatibility with old configurations.

svn path=/nixos/trunk/; revision=23775
2010-09-13 22:10:25 +00:00
Eelco Dolstra 4046056cdc * In the activation script, don't require the path to the "system"
derivation on the command line.

svn path=/nixos/trunk/; revision=23770
2010-09-13 18:19:15 +00:00
Eelco Dolstra f729f12e4e Some cleanups in the activation script:
* Moved some scriptlets to the appropriate modules.
* Put the scriptlet that sets the default path at the start, since it
  never makes sense not to have it there.  It no longer needs to be
  declared as a dependency.
* If a scriptlet has no dependencies, it can be denoted as a plain
  string (i.e., `noDepEntry' is not needed anymore).

svn path=/nixos/trunk/; revision=23762
2010-09-13 15:41:38 +00:00
Eelco Dolstra 6258845b61 svn path=/nixos/trunk/; revision=23727 2010-09-10 15:25:58 +00:00
Eelco Dolstra f067d179ab * Create /nix/var/nix/gcroots/tmp in the activation script. The
build hook uses this directory to store temporary GC roots.  (It
  creates it if it doesn't exist, but it's better to do it here as
  well to ensure the right ownership and permissions.)
* Clear /nix/var/nix/gcroots/tmp and /nix/var/nix/temproots at boot
  time.

svn path=/nixos/trunk/; revision=23417
2010-08-25 11:59:04 +00:00
Eelco Dolstra 3f10cf70f6 * Regression test for the build hook mechanism.
svn path=/nixos/trunk/; revision=23395
2010-08-24 13:27:28 +00:00
Lluís Batlle i Rossell fe2f7eae17 Making the stage1 work on mips too (for the name of the dynamic loader)
svn path=/nixos/trunk/; revision=23325
2010-08-21 18:23:55 +00:00
Michael Raskin 295df77f21 Move resume section after udev launch - on some systems devices are recognized by kernel only after udev works.
svn path=/nixos/trunk/; revision=23176
2010-08-14 20:12:05 +00:00
Eelco Dolstra 313629adcf * Add ext4 to the default initrd.
svn path=/nixos/trunk/; revision=23088
2010-08-10 10:12:18 +00:00
Eelco Dolstra e41e6a65bb * Make sure that /tmp/.ICE-unix is owned by root and has 1777
permissions.  Otherwise it ends up being owned by the first user to
  log in, and other users' iceauth calls fail.

svn path=/nixos/trunk/; revision=23052
2010-08-09 10:59:20 +00:00
Eelco Dolstra e8e7ee356c * In the installation CD, pass the label of the CD through the
root=... kernel command line parameter, instead of hard-coding it in
  `fileSystems'.  This is to allow CD-to-USB converters such as
  UNetbootin to rewrite the kernel command line to the label or UUID
  of the USB stick.

svn path=/nixos/trunk/; revision=23024
2010-08-07 14:16:18 +00:00
Evgeny Egorochkin 88a400f578 Fix LVM failing test due to /proc/devices not being available in some of OpenVZ containers
svn path=/nixos/trunk/; revision=22717
2010-07-22 22:45:24 +00:00
Eelco Dolstra d659488209 * Use the regular GRUB menu builder for Amazon. There are two issues:
we want to generate the GRUB menu without actually installing GRUB
  (because Amazon supplies its own pv-grub), and each menu entry
  requires "root (hd0)".  For the first, allow boot.loader.grub.device
  to be set to "nodev" to indicate that the GRUB menu should be
  generated without installing GRUB.  For the second, add an option
  boot.loader.grub.extraPerEntryConfig to allow commands to be added
  to each GRUB menu entry (in this case, "root (hd0)").

svn path=/nixos/trunk/; revision=22712
2010-07-22 14:40:29 +00:00
Eelco Dolstra e7c0c929ed * Work around a bug in QEMU, which doesn't implement the "READ DISC
INFORMATION" SCSI command:

    https://bugzilla.redhat.com/show_bug.cgi?id=609049

  As a result, `cdrom_id' doesn't print
  ID_CDROM_MEDIA_TRACK_COUNT_DATA, which in turn prevents the
  /dev/disk/by-label symlinks from being created.  We need these in
  the NixOS installation CD, so use ID_CDROM_MEDIA in the
  corresponding udev rules for now.  This was the behaviour in udev <=
  154.  See also
       
    http://www.spinics.net/lists/hotplug/msg03935.html

svn path=/nixos/trunk/; revision=22691
2010-07-21 21:15:54 +00:00
Eelco Dolstra 1b04d3a813 * Absolutise $systemConfig in case it's a symlink.
svn path=/nixos/trunk/; revision=22677
2010-07-20 13:50:10 +00:00
Eelco Dolstra 63962dd7d6 * Disable the test to see whether $stage2Init exists. For some
unfathomable reason this test fails on EC2 if it's a symlink
  (despite the -L test).  I give up.

svn path=/nixos/trunk/; revision=22676
2010-07-20 13:49:04 +00:00
Eelco Dolstra bfe46a653b * Mount /dev, /proc and /sys when booting without a stage 1 (e.g. on
Amazon).

svn path=/nixos/trunk/; revision=22598
2010-07-14 10:55:45 +00:00
Eelco Dolstra 54a4eead20 * Typos.
svn path=/nixos/trunk/; revision=22537
2010-07-08 16:21:55 +00:00
Eelco Dolstra b076121430 * Don't use the -v flag because not every fsck backend knows it.
svn path=/nixos/trunk/; revision=22512
2010-07-07 14:25:16 +00:00
Eelco Dolstra d43d321e86 * Sync with the trunk.
svn path=/nixos/branches/boot-order/; revision=22349
2010-06-20 20:54:31 +00:00
Eelco Dolstra a5c433696c * Put all of /var/run (not just /var/run/nscd) on a tmpfs to simplify
shutdown.  (Portmap and statd are needed during shutdown to unmount
  NFS volumes but have open files in /var/run.)
* In the shutdown job, don't kill PIDs belonging to Upstart jobs that
  are still running.  If they don't stop on the "starting shutdown"
  event, then they're needed during shutdown (such as portmap and
  statd).
* NFS test: test whether the shutdown quickly unmounts NFS volumes
  (i.e. whether portmap and statd are still running).

svn path=/nixos/branches/boot-order/; revision=22204
2010-06-09 22:29:06 +00:00
Eelco Dolstra 3eac003800 * Maintain /var/log/wtmp correctly during boot/shutdown.
svn path=/nixos/branches/boot-order/; revision=22182
2010-06-08 12:48:16 +00:00
Eelco Dolstra 95a9c5dd77 * Log the standard output/error of Upstart jobs to
/var/log/upstart/<jobname> rather than spamming the console with it.

svn path=/nixos/trunk/; revision=22093
2010-06-01 19:44:23 +00:00
Eelco Dolstra 18fd0a61de * Add `sleep' to the initrd.
svn path=/nixos/trunk/; revision=22089
2010-06-01 17:09:34 +00:00
Eelco Dolstra 9c900ee15c * Updates for the dynamically linked splash helper.
svn path=/nixos/trunk/; revision=22087
2010-06-01 16:38:42 +00:00
Eelco Dolstra dc49a0ce3f * Don't use klibc in the initrd. It's simpler (and slightly smaller)
to use the standard (coreutils) tools.
* Use util-linux's `switch_root' to switch over to the target root
  FS.  It automatically moves over the /dev, /proc and /sys from stage
  1, so stage 2 doesn't need to set them up again.

svn path=/nixos/trunk/; revision=22085
2010-06-01 15:53:24 +00:00
Eelco Dolstra eade772338 * Don't show the contents of linuxPackages in the manual.
svn path=/nixos/trunk/; revision=22044
2010-05-28 11:21:40 +00:00
Eelco Dolstra 7484774172 * Activate software RAID devices from udev. This makes the swraid
Upstart jobs unnecessary.
* Support having the root filesystem on swraid.

svn path=/nixos/trunk/; revision=21807
2010-05-16 20:40:04 +00:00
Eelco Dolstra edee370883 * The default action for udevadm trigger' changed from add' to
`change'.  At boot time, however, we want an `add' event to trigger
  certain rules (e.g. LVM and mdadm).

svn path=/nixos/trunk/; revision=21804
2010-05-16 19:02:45 +00:00
Yury G. Kudryashov 7836f89242 stage-1.nix: copy libudev.so, verbose log
svn path=/nixos/trunk/; revision=21793
2010-05-15 21:28:31 +00:00
Lluís Batlle i Rossell 33ed225a84 Making the /dev and /dev/shm tmpfs sizes configurable.
By default, they take the usual value of "50% of physical RAM".

As /dev/shm can be filled by anyone, and tmpfs does not trigger the OOM killer (and
can hang the machine due to a lack of RAM), I need to configure that down
in order to avoid crashes.

There is still left the /var/run/nscd tmpfs filesystem, also created with 50%
of the RAM, but at least not writeable by anyone. We could find a reasonable
low value for that, or allow configuration.


svn path=/nixos/trunk/; revision=21140
2010-04-17 15:20:13 +00:00
Eelco Dolstra c1e313b5e1 * Remove obsolete references to kernelPackages in Nixpkgs.
svn path=/nixos/trunk/; revision=20647
2010-03-16 12:10:06 +00:00
Eelco Dolstra 0432766399 * Fall back to the kernel modules used at boot time if the modules in
the current configuration don't match the running kernel.  This
  ensures that modprobe still works after a "nixos-rebuild switch" to
  a configuration that has a different kernel version.

svn path=/nixos/trunk/; revision=19696
2010-01-26 21:45:13 +00:00
Eelco Dolstra 12a0a68749 * Initialise the Nix database in the VM.
* Set the hostname at startup.
* Mount the ephemeral data disk (/dev/sda2).


svn path=/nixos/trunk/; revision=19619
2010-01-22 17:31:23 +00:00
Eelco Dolstra 6d21e00776 * Some hacks to support running NixOS on Amazon EC2 (and other hosting
environment where you don't get to run stage 1 of the boot).

svn path=/nixos/trunk/; revision=19579
2010-01-20 18:06:33 +00:00
Michael Raskin 6502806689 Allow turning off VESA framebuffer
svn path=/nixos/trunk/; revision=19473
2010-01-15 21:55:51 +00:00
Lluís Batlle i Rossell 13ee735395 Making nixos work well with the new names 'linuxPackages' in stdenv-updates, additionally
to the nixpkgs trunk 'kernelPackages'.
Seeing a strange kernelPackages mentioned in installation-cd-rescue (2.6.31_something) I
update that to 2.6.32.


svn path=/nixos/trunk/; revision=19443
2010-01-14 19:50:49 +00:00
Eelco Dolstra ee005424bf * Doh, subtle race condition: STARTUP must be cleared after "udevadm
settle".  Otherwise some rules may be processed with STARTUP
  cleared, causing LVM devices not to be created.

svn path=/nixos/trunk/; revision=19341
2010-01-10 20:08:35 +00:00
Eelco Dolstra ac8a2ae577 * Use the LVM udev rules in stage 1. This makes
/dev/disk/by-{label,uuid} paths available for LVM volumes.

svn path=/nixos/trunk/; revision=19334
2010-01-10 19:00:29 +00:00
Eelco Dolstra e50a7e5f32 * Removed the boot.initrd.lvm option for simplicity.
svn path=/nixos/trunk/; revision=19330
2010-01-10 16:32:30 +00:00
Eelco Dolstra 39796e26b4 * Removed the boot.isLiveCD option. Moved the code for mounting a
tmpfs on top of the CD to iso-image.nix.

svn path=/nixos/trunk/; revision=19318
2010-01-09 15:13:06 +00:00
Lluís Batlle i Rossell b59cfde311 Making /dev/pts files have group owner 'tty', so 'mesg y' will work.
svn path=/nixos/trunk/; revision=19317
2010-01-09 14:23:20 +00:00
Eelco Dolstra 0595b7f89d * devicemapper -> lvm2.
svn path=/nixos/trunk/; revision=19294
2010-01-07 16:14:50 +00:00
Marc Weber fdc63c54e4 enhance phpIni documentation
readd r19267 (the issue should be fixed now)

Eelco Dolstra and Nicolas Pierron both kept asking me to pay attention
to the rendered manual. There is one catch: example settings such as
pkgs.kernelPackages_2_6_25 are correct however they don't render
properly. Moreover you don't want those examples to be evaluated (maybe
compiling a kernel ?) when building the manual only.
So use Strings and add a copy & paste note.
This is still a hacky. Maybe a kind of typed "verbatim" expression
should be added (?)

svn path=/nixos/trunk/; revision=19281
2010-01-07 09:01:40 +00:00
Eelco Dolstra c9e4b46d48 * Ugly hack: for CIFS mounts, retry the mount a few times (just as in
pkgs/build-support/vm).  This should make the NixOS regression tests
  more robust on heavily loaded systems, where they now frequently
  fail:

  server# mounting //10.0.2.4/qemu on /hostfs...
  server# [    8.233991] Slow work thread pool: Starting up
  server# [    8.234721] Slow work thread pool: Ready
  server# [   23.271708]  CIFS VFS: No response for cmd 114 mid 1
  server# [   23.272443]  CIFS VFS: cifs_mount failed w/return code = -112
  server# mount: Host is down
  server# [   23.275188] Kernel panic - not syncing: Attempted to kill init!

  Maybe there is a configurable timeout somewhere, which would be much
  nicer...

svn path=/nixos/trunk/; revision=19248
2010-01-06 00:25:14 +00:00
Eelco Dolstra 9889d9f9f8 * Remove most default kernel options since they have no effect. Also,
don't put them in a default, so that they can easily be added to.

svn path=/nixos/trunk/; revision=19232
2010-01-05 13:11:12 +00:00
Eelco Dolstra 170331be30 * Don't use /hostfs to signal the test driver that a VM is up, but
write some magic string to ttyS0.  This removes the dependency on
  having a CIFS mount.
* Use a thread to process the stdout/stderr of each QEMU instance.
* Add a kernel command line parameter "stage1panic" to tell stage 1 to
  panic if an error occurs.  This is faster than waiting until
  connect() times out.

svn path=/nixos/trunk/; revision=19212
2010-01-04 18:04:57 +00:00
Lluís Batlle i Rossell eea026d321 Enabling back the i8042 module loading at initrd. Otherwise, some
may not get any keyboard driver loaded (as I experienced).

svn path=/nixos/trunk/; revision=19006
2009-12-16 23:45:10 +00:00
Eelco Dolstra daa814980e * At the end of stage 1, reset /proc/sys/kernel/modprobe to
/sbin/modprobe because the sactivation script in stage 2 expects it
  to be so.

svn path=/nixos/trunk/; revision=18977
2009-12-15 18:31:21 +00:00
Eelco Dolstra 6c9059e717 * Added an option `boot.initrd.availableKernelModules' that specifies
modules that should be added to the initrd, but should only be
  loaded on demand (e.g. by the kernel or by udev).  This is
  especially useful in the installation CD, where we now only load the
  modules needed by the hardware.
* Enable automatic modprobing by udev in the initrd.

svn path=/nixos/trunk/; revision=18975
2009-12-15 16:38:20 +00:00
Eelco Dolstra e8372257a1 * Reformat.
svn path=/nixos/trunk/; revision=18970
2009-12-15 14:10:06 +00:00
Eelco Dolstra a612fd0d5e * Obsoleted boot.initrd.extraKernelModules (use
boot.initrd.kernelModules instead).

svn path=/nixos/trunk/; revision=18969
2009-12-15 14:05:01 +00:00
Eelco Dolstra d6108919b1 * The loopback device is in a module now. Since it's not
automatically loaded by the kernel, load it at boot time.
* Put the ext2 module (which used to be built in) in the initrd to
  prevent unexpected breakage.

svn path=/nixos/trunk/; revision=18963
2009-12-15 13:09:06 +00:00
Eelco Dolstra 38aeb2fdc8 svn path=/nixos/trunk/; revision=18860 2009-12-09 19:35:59 +00:00
Eelco Dolstra 9174b4ab42 * Provide a convience option for commands that must be executed both
when the system boots and when it resumes from suspend.

svn path=/nixos/branches/upstart-0.6/; revision=18354
2009-11-15 12:56:40 +00:00
Eelco Dolstra d1bbe706a2 * Synced with the trunk.
svn path=/nixos/branches/upstart-0.6/; revision=18297
2009-11-08 21:27:53 +00:00
Eelco Dolstra 37470cccc5 * Blacklist the "evbug" module.
svn path=/nixos/trunk/; revision=18285
2009-11-08 09:08:50 +00:00
Eelco Dolstra 16c2aa734f * Generate /etc/modprobe.conf to allow the setting of module options
and the blacklisting of modules.

svn path=/nixos/trunk/; revision=18284
2009-11-08 09:01:53 +00:00
Eelco Dolstra 2353e53c5f * /var/run/safemode isn't used anywhere.
svn path=/nixos/branches/upstart-0.6/; revision=18257
2009-11-07 15:24:59 +00:00
Eelco Dolstra 6b0842ff52 svn path=/nixos/branches/upstart-0.6/; revision=18229 2009-11-06 21:51:28 +00:00
Eelco Dolstra 82c3e2aa50 * Updated poweroff/reboot/maintenance mode for Upstart 0.6. Upstart
no longer emits specific events for those.  Instead it emits a
  "runlevel" event.  The "runlevel" task starts the "shutdown" task to
  perform the desired action.
* Upstart 0.6 no longer has a "shutdown" event, so "stop on shutdown"
  no longer works.  Therefore the shutdown task explicitly stops all
  running Upstart jobs, before sending a TERM/KILL signal to all
  remaining processes.
* Do a "chvt 1" at the start of the shutdown task to switch to the
  console.
* Use /dev/console instead of /dev/tty1, since if somebody is logged
  in on tty1, bad things will happen.

svn path=/nixos/branches/upstart-0.6/; revision=18224
2009-11-06 21:08:06 +00:00
Eelco Dolstra 7011a9315f * Use Upstart 0.6. Jobs are now in /etc/init instead of /etc/event.d.
svn path=/nixos/branches/upstart-0.6/; revision=18192
2009-11-06 10:43:38 +00:00
Eelco Dolstra b581a56d79 * Define the Upstart package to use in one place.
svn path=/nixos/branches/upstart-0.6/; revision=18187
2009-11-06 09:36:35 +00:00