Author: viric
Date: Sat Mar 17 22:21:37 2012
New Revision: 33219
URL: https://nixos.org/websvn/nix/?rev=33219&sc=1
Log:
Adding a module to get crash dumps using kexec.
Added:
nixos/trunk/modules/misc/crashdump.nix
Modified:
nixos/trunk/modules/module-list.nix
Added: nixos/trunk/modules/misc/crashdump.nix
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ nixos/trunk/modules/misc/crashdump.nix Sat Mar 17 22:21:37 2012
(r33219)
@@ -0,0 +1,64 @@
+{pkgs, config, ...}:
+
+with pkgs.lib;
+
+let
+ crashdump = config.boot.crashDump;
+in
+###### interface
+{
+ options = {
+ boot = {
+ crashDump = {
+ enable = mkOption {
+ default = false;
+ example = true;
+ description = ''
+ If enabled, NixOS will set up a kernel that will
+ boot on crash, and leave the user to a stage1 debug1devices
+ interactive shell to be able to save the crashed kernel dump.
+ It also activates the NMI watchdog.
+ '';
+ };
+ kernelPackages = mkOption {
+ default = pkgs.linuxPackages;
+ # We don't want to evaluate all of linuxPackages for the manual
+ # - some of it might not even evaluate correctly.
+ defaultText = "pkgs.linuxPackages";
+ example = "pkgs.linuxPackages_2_6_25";
+ description = ''
+ This will override the boot.kernelPackages, and will add some
+ kernel configuration parameters for the crash dump to work.
+ '';
+ };
+ };
+ };
+ };
+
+###### implementation
+
+ config = mkIf crashdump.enable {
+ boot = {
+ postBootCommands = ''
+ ${pkgs.kexectools}/sbin/kexec -p /var/run/current-system/kernel \
+ --initrd=/var/run/current-system/initrd \
+ --append="init=$(readlink -f /var/run/current-system/init)
system=$(readlink -f /var/run/current-system) debug1devices irqpoll maxcpus=1
reset_devices" --reset-vga --console-vga
+ '';
+ kernelParams = [
+ "crashkernel=64M"
+ "nmi_watchdog=1"
+ ];
+ kernelPackages = mkOverride 200 (crashdump.kernelPackages // {
+ kernel = crashdump.kernelPackages.kernel.override
+ (attrs: {
+ extraConfig = (optionalString (attrs ? extraConfig)
attrs.extraConfig) +
+ ''
+ CRASH_DUMP y
+ DEBUG_INFO y
+ PROC_VMCORE y
+ '';
+ });
+ });
+ };
+ };
+}
Modified: nixos/trunk/modules/module-list.nix
==============================================================================
--- nixos/trunk/modules/module-list.nix Sat Mar 17 22:03:15 2012 (r33218)
+++ nixos/trunk/modules/module-list.nix Sat Mar 17 22:21:37 2012 (r33219)
@@ -30,6 +30,7 @@
./installer/tools/tools.nix
./misc/assertions.nix
./misc/check-config.nix
+ ./misc/crashdump.nix
./misc/deployment.nix
./misc/ids.nix
./misc/locate.nix
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits