38 lines
		
	
	
		
			916 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			916 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, lib, pkgs, ... }:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| {
 | |
|   ###### interface
 | |
| 
 | |
|   options = {
 | |
| 
 | |
|     services.klogd.enable = mkOption {
 | |
|       type = types.bool;
 | |
|       default = versionOlder (getVersion config.boot.kernelPackages.kernel) "3.5";
 | |
|       description = ''
 | |
|         Whether to enable klogd, the kernel log message processing
 | |
|         daemon.  Since systemd handles logging of kernel messages on
 | |
|         Linux 3.5 and later, this is only useful if you're running an
 | |
|         older kernel.
 | |
|       '';
 | |
|     };
 | |
| 
 | |
|   };
 | |
| 
 | |
| 
 | |
|   ###### implementation
 | |
| 
 | |
|   config = mkIf config.services.klogd.enable {
 | |
|     systemd.services.klogd = {
 | |
|       description = "Kernel Log Daemon";
 | |
|       wantedBy = [ "multi-user.target" ];
 | |
|       path = [ pkgs.sysklogd ];
 | |
|       unitConfig.ConditionVirtualization = "!systemd-nspawn";
 | |
|       script =
 | |
|         "klogd -c 1 -2 -n " +
 | |
|         "-k $(dirname $(readlink -f /run/booted-system/kernel))/System.map";
 | |
|     };
 | |
|   };
 | |
| }
 | 
