mirror of
				https://github.com/NixOS/nixos-hardware.git
				synced 2025-11-04 09:17:14 +08:00 
			
		
		
		
	@@ -129,6 +129,7 @@
 | 
			
		||||
      purism-librem-15v3 = import ./purism/librem/15v3;
 | 
			
		||||
      raspberry-pi-2 = import ./raspberry-pi/2;
 | 
			
		||||
      raspberry-pi-4 = import ./raspberry-pi/4;
 | 
			
		||||
      kobol-helios4 = import ./kobol/helios4;
 | 
			
		||||
      samsung-np900x3c = import ./samsung/np900x3c;
 | 
			
		||||
      supermicro = import ./supermicro;
 | 
			
		||||
      supermicro-a1sri-2758f = import ./supermicro/a1sri-2758f;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								kobol/helios4/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								kobol/helios4/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./modules/fancontrol.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nixpkgs.overlays = [
 | 
			
		||||
    (import ./overlay.nix)
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  nixpkgs.hostPlatform = "armv7l-linux";
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = [ "ahci_mvebu" ];
 | 
			
		||||
 | 
			
		||||
  boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux_5_15_helios4;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										18
									
								
								kobol/helios4/modules/90-helios4-hwmon.rules
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								kobol/helios4/modules/90-helios4-hwmon.rules
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
			
		||||
# Helios4 persistent hwmon
 | 
			
		||||
ACTION=="remove", GOTO="helios4_hwmon_end"
 | 
			
		||||
#
 | 
			
		||||
KERNELS=="j10-pwm", SUBSYSTEMS=="platform", ENV{_HELIOS4_FAN_}="j10", ENV{_IS_HELIOS4_FAN_}="1", ENV{IS_HELIOS4_HWMON}="1"
 | 
			
		||||
KERNELS=="j17-pwm", SUBSYSTEMS=="platform", ENV{_HELIOS4_FAN_}="j17", ENV{_IS_HELIOS4_FAN_}="1", ENV{IS_HELIOS4_HWMON}="1"
 | 
			
		||||
KERNELS=="0-004c", SUBSYSTEMS=="i2c", DRIVERS=="lm75", ENV{IS_HELIOS4_HWMON}="1"
 | 
			
		||||
SUBSYSTEM!="hwmon", GOTO="helios4_hwmon_end"
 | 
			
		||||
ENV{HWMON_PATH}="/sys%p"
 | 
			
		||||
#
 | 
			
		||||
ATTR{name}=="f1072004mdiomii00", ENV{IS_HELIOS4_HWMON}="1", ENV{HELIOS4_SYMLINK}="/dev/thermal-eth"
 | 
			
		||||
ATTR{name}=="armada_thermal", ENV{IS_HELIOS4_HWMON}="1", ENV{HELIOS4_SYMLINK}="/dev/thermal-cpu"
 | 
			
		||||
ATTR{name}=="f10e4078.thermal", ENV{IS_HELIOS4_HWMON}="1", ENV{HELIOS4_SYMLINK}="/dev/thermal-cpu"
 | 
			
		||||
#
 | 
			
		||||
ENV{IS_HELIOS4_HWMON}=="1", ATTR{name}=="lm75", ENV{HELIOS4_SYMLINK}="/dev/thermal-board"
 | 
			
		||||
ENV{_IS_HELIOS4_FAN_}=="1", ENV{HELIOS4_SYMLINK}="/dev/fan-$env{_HELIOS4_FAN_}"
 | 
			
		||||
#
 | 
			
		||||
ENV{IS_HELIOS4_HWMON}=="1", RUN+="/bin/ln -sf $env{HWMON_PATH} $env{HELIOS4_SYMLINK}"
 | 
			
		||||
LABEL="helios4_hwmon_end"
 | 
			
		||||
							
								
								
									
										44
									
								
								kobol/helios4/modules/fancontrol.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								kobol/helios4/modules/fancontrol.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  hardware.fancontrol.enable = true;
 | 
			
		||||
  hardware.fancontrol.config = ''
 | 
			
		||||
    # Helios4 PWM Fan Control Configuration
 | 
			
		||||
    # Temp source : /dev/thermal-cpu
 | 
			
		||||
    INTERVAL=10
 | 
			
		||||
    FCTEMPS=/dev/fan-j10/pwm1=/dev/thermal-cpu/temp1_input /dev/fan-j17/pwm1=/dev/thermal-cpu/temp1_input
 | 
			
		||||
    MINTEMP=/dev/fan-j10/pwm1=40 /dev/fan-j17/pwm1=40
 | 
			
		||||
    MAXTEMP=/dev/fan-j10/pwm1=80 /dev/fan-j17/pwm1=80
 | 
			
		||||
    MINSTART=/dev/fan-j10/pwm1=20 /dev/fan-j17/pwm1=20
 | 
			
		||||
    MINSTOP=/dev/fan-j10/pwm1=29 /dev/fan-j17/pwm1=29
 | 
			
		||||
    MINPWM=0
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  boot.kernelModules = [ "lm75" ];
 | 
			
		||||
 | 
			
		||||
  services.udev.packages = [
 | 
			
		||||
    # Fan control
 | 
			
		||||
    (pkgs.callPackage (
 | 
			
		||||
      { stdenv, lib, coreutils }:
 | 
			
		||||
      stdenv.mkDerivation {
 | 
			
		||||
        name = "helios4-udev-fancontrol";
 | 
			
		||||
 | 
			
		||||
        dontUnpack = true;
 | 
			
		||||
        dontBuild = true;
 | 
			
		||||
 | 
			
		||||
        installPhase = ''
 | 
			
		||||
          mkdir -p "$out/etc/udev/rules.d/";
 | 
			
		||||
          install -Dm644 "${./90-helios4-hwmon.rules}" \
 | 
			
		||||
            "$out/etc/udev/rules.d/90-helios4-hwmon.rules"
 | 
			
		||||
          substituteInPlace "$out/etc/udev/rules.d/90-helios4-hwmon.rules" \
 | 
			
		||||
            --replace '/bin/ln'  '${lib.getBin coreutils}/bin/ln'
 | 
			
		||||
        '';
 | 
			
		||||
 | 
			
		||||
        meta = with lib; {
 | 
			
		||||
          description = "Udev rules for fancontrol for the Helios4";
 | 
			
		||||
          platforms = platforms.linux;
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
    ) {})
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										48
									
								
								kobol/helios4/overlay.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								kobol/helios4/overlay.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
final: prev: {
 | 
			
		||||
  linux_5_15_helios4 = final.linux_5_15.override {
 | 
			
		||||
    kernelPatches = [
 | 
			
		||||
      # A patch to get both PWM fans working
 | 
			
		||||
      # the patch has been successfully applied to 5.15 and 5.19
 | 
			
		||||
      {
 | 
			
		||||
        patch = final.fetchpatch {
 | 
			
		||||
          url = "https://raw.githubusercontent.com/armbian/build/03dbd9d3a733f097e23595e76ac60771c655ebf1/patch/kernel/archive/mvebu-5.15/92-mvebu-gpio-remove-hardcoded-timer-assignment.patch";
 | 
			
		||||
          sha256 = "sha256-0h7v3Nua1LuHf4h53WdYEBrbUA9dOGdF06TDBlDplOQ=";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      # support for Wake-On-Lan
 | 
			
		||||
      {
 | 
			
		||||
        patch = final.fetchpatch {
 | 
			
		||||
          url = "https://raw.githubusercontent.com/armbian/build/03dbd9d3a733f097e23595e76ac60771c655ebf1/patch/kernel/archive/mvebu-5.15/92-mvebu-gpio-add_wake_on_gpio_support.patch";
 | 
			
		||||
          sha256 = "sha256-OrvnVCU55P0U78jdoxGRJvl29i+Rvq8AdEGSCCpxa2I=";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
      {
 | 
			
		||||
        patch = final.fetchpatch {
 | 
			
		||||
          url = "https://raw.githubusercontent.com/armbian/build/03dbd9d3a733f097e23595e76ac60771c655ebf1/patch/kernel/archive/mvebu-5.15/94-helios4-dts-add-wake-on-lan-support.patch";
 | 
			
		||||
          sha256 = "sha256-ai4161bTC22023eaVVWsvbk6fQKjkv0P4DQ4DA1Zgow=";
 | 
			
		||||
        };
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    ];
 | 
			
		||||
    defconfig = "mvebu_v7_defconfig";
 | 
			
		||||
    # Make the kernel build a bit faster by disabling GPU modules, which we don't need anyways
 | 
			
		||||
    structuredExtraConfig = with final.lib.kernel; {
 | 
			
		||||
      DRM = no;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  ubootHelios4 = final.buildUBoot rec {
 | 
			
		||||
    defconfig = "helios4_defconfig";
 | 
			
		||||
    filesToInstall = [ "u-boot-spl.kwb" ];
 | 
			
		||||
    # 2021.07 and later are broken, similar to this bug report:
 | 
			
		||||
    # https://www.mail-archive.com/u-boot@lists.denx.de/msg451013.html#
 | 
			
		||||
    version = "2021.04";
 | 
			
		||||
    src = final.fetchFromGitHub {
 | 
			
		||||
      owner = "u-boot";
 | 
			
		||||
      repo = "u-boot";
 | 
			
		||||
      rev = "v${version}";
 | 
			
		||||
      sha256 = "sha256-QxrTPcx0n0NWUJ990EuIWyOBtknW/fHDRcrYP0yQzTo=";
 | 
			
		||||
    };
 | 
			
		||||
    patches = [];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user