Merge master into staging-next
This commit is contained in:
@@ -18,13 +18,6 @@
|
||||
# - ttyAMA0: for QEMU's -machine virt
|
||||
boot.kernelParams = ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
# Allows early (earlier) modesetting for the Raspberry Pi
|
||||
"vc4" "bcm2835_dma" "i2c_bcm2835"
|
||||
# Allows early (earlier) modesetting for Allwinner SoCs
|
||||
"sun4i_drm" "sun8i_drm_hdmi" "sun8i_mixer"
|
||||
];
|
||||
|
||||
sdImage = {
|
||||
populateFirmwareCommands = let
|
||||
configTxt = pkgs.writeText "config.txt" ''
|
||||
|
||||
@@ -29,6 +29,7 @@ in
|
||||
imports = [
|
||||
(mkRemovedOptionModule [ "sdImage" "bootPartitionID" ] "The FAT partition for SD image now only holds the Raspberry Pi firmware files. Use firmwarePartitionID to configure that partition's ID.")
|
||||
(mkRemovedOptionModule [ "sdImage" "bootSize" ] "The boot files for SD image have been moved to the main ext4 partition. The FAT partition now only holds the Raspberry Pi firmware files. Changing its size may not be required.")
|
||||
../../profiles/all-hardware.nix
|
||||
];
|
||||
|
||||
options.sdImage = {
|
||||
|
||||
@@ -46,11 +46,66 @@ in
|
||||
# VMware support.
|
||||
"mptspi" "vmxnet3" "vsock"
|
||||
] ++ lib.optional platform.isx86 "vmw_balloon"
|
||||
++ lib.optionals (!platform.isAarch64) [ # not sure where else they're missing
|
||||
++ lib.optionals (!platform.isAarch64 && !platform.isAarch32) [ # not sure where else they're missing
|
||||
"vmw_vmci" "vmwgfx" "vmw_vsock_vmci_transport"
|
||||
|
||||
# Hyper-V support.
|
||||
"hv_storvsc"
|
||||
] ++ lib.optionals (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [
|
||||
# Most of the following falls into two categories:
|
||||
# - early KMS / early display
|
||||
# - early storage (e.g. USB) support
|
||||
|
||||
# Allows using framebuffer configured by the initial boot firmware
|
||||
"simplefb"
|
||||
|
||||
# Allwinner support
|
||||
|
||||
# Required for early KMS
|
||||
"sun4i-drm"
|
||||
"sun8i-mixer" # Audio, but required for kms
|
||||
|
||||
# PWM for the backlight
|
||||
"pwm-sun4i"
|
||||
|
||||
# Broadcom
|
||||
|
||||
"vc4"
|
||||
] ++ lib.optionals pkgs.stdenv.isAarch64 [
|
||||
# Most of the following falls into two categories:
|
||||
# - early KMS / early display
|
||||
# - early storage (e.g. USB) support
|
||||
|
||||
# Broadcom
|
||||
|
||||
"pcie-brcmstb"
|
||||
|
||||
# Rockchip
|
||||
"dw-hdmi"
|
||||
"dw-mipi-dsi"
|
||||
"rockchipdrm"
|
||||
"rockchip-rga"
|
||||
"phy-rockchip-pcie"
|
||||
"pcie-rockchip-host"
|
||||
|
||||
# Misc. uncategorized hardware
|
||||
|
||||
# Used for some platform's integrated displays
|
||||
"panel-simple"
|
||||
"pwm-bl"
|
||||
|
||||
# Power supply drivers, some platforms need them for USB
|
||||
"axp20x-ac-power"
|
||||
"axp20x-battery"
|
||||
"pinctrl-axp209"
|
||||
"mp8859"
|
||||
|
||||
# USB drivers
|
||||
"xhci-pci-renesas"
|
||||
|
||||
# Misc "weak" dependencies
|
||||
"analogix-dp"
|
||||
"analogix-anx6345" # For DP or eDP (e.g. integrated display)
|
||||
];
|
||||
|
||||
# Include lots of firmware.
|
||||
|
||||
@@ -5,6 +5,19 @@ with lib;
|
||||
let
|
||||
cfg = config.services.brltty;
|
||||
|
||||
targets = [
|
||||
"default.target" "multi-user.target"
|
||||
"rescue.target" "emergency.target"
|
||||
];
|
||||
|
||||
genApiKey = pkgs.writers.writeDash "generate-brlapi-key" ''
|
||||
if ! test -f /etc/brlapi.key; then
|
||||
echo -n generating brlapi key...
|
||||
${pkgs.brltty}/bin/brltty-genkey -f /etc/brlapi.key
|
||||
echo done
|
||||
fi
|
||||
'';
|
||||
|
||||
in {
|
||||
|
||||
options = {
|
||||
@@ -18,33 +31,27 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
systemd.services.brltty = {
|
||||
description = "Braille Device Support";
|
||||
unitConfig = {
|
||||
Documentation = "http://mielke.cc/brltty/";
|
||||
DefaultDependencies = "no";
|
||||
RequiresMountsFor = "${pkgs.brltty}/var/lib/brltty";
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.brltty}/bin/brltty --no-daemon";
|
||||
Type = "notify";
|
||||
TimeoutStartSec = 5;
|
||||
TimeoutStopSec = 10;
|
||||
Restart = "always";
|
||||
RestartSec = 30;
|
||||
Nice = -10;
|
||||
OOMScoreAdjust = -900;
|
||||
ProtectHome = "read-only";
|
||||
ProtectSystem = "full";
|
||||
SystemCallArchitectures = "native";
|
||||
};
|
||||
wants = [ "systemd-udev-settle.service" ];
|
||||
after = [ "local-fs.target" "systemd-udev-settle.service" ];
|
||||
before = [ "sysinit.target" ];
|
||||
wantedBy = [ "sysinit.target" ];
|
||||
users.users.brltty = {
|
||||
description = "BRLTTY daemon user";
|
||||
group = "brltty";
|
||||
};
|
||||
users.groups = {
|
||||
brltty = { };
|
||||
brlapi = { };
|
||||
};
|
||||
|
||||
systemd.services."brltty@".serviceConfig =
|
||||
{ ExecStartPre = "!${genApiKey}"; };
|
||||
|
||||
# Install all upstream-provided files
|
||||
systemd.packages = [ pkgs.brltty ];
|
||||
systemd.tmpfiles.packages = [ pkgs.brltty ];
|
||||
services.udev.packages = [ pkgs.brltty ];
|
||||
environment.systemPackages = [ pkgs.brltty ];
|
||||
|
||||
# Add missing WantedBys (see issue #81138)
|
||||
systemd.paths.brltty.wantedBy = targets;
|
||||
systemd.paths."brltty@".wantedBy = targets;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -6,21 +6,21 @@ let
|
||||
cfg = config.hardware.fancontrol;
|
||||
configFile = pkgs.writeText "fancontrol.conf" cfg.config;
|
||||
|
||||
in{
|
||||
in
|
||||
{
|
||||
options.hardware.fancontrol = {
|
||||
enable = mkEnableOption "software fan control (requires fancontrol.config)";
|
||||
|
||||
config = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.lines;
|
||||
description = "Fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package.";
|
||||
type = types.lines;
|
||||
description = "Required fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package.";
|
||||
example = ''
|
||||
# Configuration file generated by pwmconfig
|
||||
INTERVAL=10
|
||||
DEVPATH=hwmon3=devices/virtual/thermal/thermal_zone2 hwmon4=devices/platform/f71882fg.656
|
||||
DEVNAME=hwmon3=soc_dts1 hwmon4=f71869a
|
||||
FCTEMPS=hwmon4/device/pwm1=hwmon3/temp1_input
|
||||
FCFANS= hwmon4/device/pwm1=hwmon4/device/fan1_input
|
||||
FCFANS=hwmon4/device/pwm1=hwmon4/device/fan1_input
|
||||
MINTEMP=hwmon4/device/pwm1=35
|
||||
MAXTEMP=hwmon4/device/pwm1=65
|
||||
MINSTART=hwmon4/device/pwm1=150
|
||||
@@ -30,16 +30,30 @@ in{
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
users = {
|
||||
groups.lm_sensors = {};
|
||||
|
||||
users.fancontrol = {
|
||||
isSystemUser = true;
|
||||
group = "lm_sensors";
|
||||
description = "fan speed controller";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.fancontrol = {
|
||||
unitConfig.Documentation = "man:fancontrol(8)";
|
||||
documentation = [ "man:fancontrol(8)" ];
|
||||
description = "software fan control";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "lm_sensors.service" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.lm_sensors}/sbin/fancontrol ${configFile}";
|
||||
Group = "lm_sensors";
|
||||
User = "fancontrol";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = [ maintainers.evils ];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user