44 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, pkgs, lib, ... }:
 | |
| 
 | |
| let
 | |
| 
 | |
|   # The lttng btrfs probe crashes at compile time because of an undefined
 | |
|   # function. This disables the btrfs tracepoints to avoid the issue.
 | |
| 
 | |
|   # Also enable lockdep tracepoints, this is disabled by default because it
 | |
|   # does not work well on architectures other than x86_64 (i think that arm) as
 | |
|   # I was told on the mailing list.
 | |
|   lttng-modules-fixed = config.boot.kernelPackages.lttng-modules.overrideAttrs (finalAttrs: previousAttrs: {
 | |
|     patchPhase = (lib.optionalString (previousAttrs ? patchPhase) previousAttrs.patchPhase) + ''
 | |
|       # disable btrfs
 | |
|       substituteInPlace src/probes/Kbuild \
 | |
|         --replace "  obj-\$(CONFIG_LTTNG) += lttng-probe-btrfs.o" "  #obj-\$(CONFIG_LTTNG) += lttng-probe-btrfs.o"
 | |
| 
 | |
|       # enable lockdep tracepoints
 | |
|       substituteInPlace src/probes/Kbuild \
 | |
|         --replace "#ifneq (\$(CONFIG_LOCKDEP),)"                  "ifneq (\$(CONFIG_LOCKDEP),)" \
 | |
|         --replace "#  obj-\$(CONFIG_LTTNG) += lttng-probe-lock.o" "  obj-\$(CONFIG_LTTNG) += lttng-probe-lock.o" \
 | |
|         --replace "#endif # CONFIG_LOCKDEP"                       "endif # CONFIG_LOCKDEP"
 | |
|     '';
 | |
|   });
 | |
| in {
 | |
| 
 | |
|   # add the lttng tools and modules to the system environment
 | |
|   boot.extraModulePackages = [ lttng-modules-fixed ];
 | |
|   environment.systemPackages = with pkgs; [
 | |
|     lttng-tools lttng-ust babeltrace
 | |
|   ];
 | |
| 
 | |
|   # start the lttng root daemon to manage kernel events
 | |
|   systemd.services.lttng-sessiond = {
 | |
|     wantedBy = [ "multi-user.target" ];
 | |
|     description = "LTTng session daemon for the root user";
 | |
|     serviceConfig = {
 | |
|       User = "root";
 | |
|       ExecStart = ''
 | |
|         ${pkgs.lttng-tools}/bin/lttng-sessiond
 | |
|       '';
 | |
|     };
 | |
|   };
 | |
| }
 |