diff options
author | Peter Hoeg <peter@hoeg.com> | 2019-11-03 14:19:41 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-03 14:19:41 +0800 |
commit | 8bddbbaf849f83285e0844be1ec6fb92e6343dfd (patch) | |
tree | d05cc5371e1fe37637233b3ca24c1e99cf90c1a8 | |
parent | 4bff595c1c334f075316b179bcdbf4a1944d132b (diff) | |
parent | d936b17d144ee2a479e5288e6f90bc8725fc33d1 (diff) |
Merge pull request #72404 from peterhoeg/u/displaylink
displaylink: make it work!
-rw-r--r-- | nixos/modules/hardware/video/displaylink.nix | 22 | ||||
-rw-r--r-- | pkgs/os-specific/linux/evdi/default.nix | 15 |
2 files changed, 25 insertions, 12 deletions
diff --git a/nixos/modules/hardware/video/displaylink.nix b/nixos/modules/hardware/video/displaylink.nix index 669ac849cbad0..912f53da836a8 100644 --- a/nixos/modules/hardware/video/displaylink.nix +++ b/nixos/modules/hardware/video/displaylink.nix @@ -19,6 +19,21 @@ in config = mkIf enabled { boot.extraModulePackages = [ evdi ]; + boot.kernelModules = [ "evdi" ]; + + environment.etc."X11/xorg.conf.d/40-displaylink.conf".text = '' + Section "OutputClass" + Identifier "DisplayLink" + MatchDriver "evdi" + Driver "modesetting" + Option "AccelMethod" "none" + EndSection + ''; + + # make the device available + services.xserver.displayManager.sessionCommands = '' + ${lib.getBin pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource 1 0 + ''; # Those are taken from displaylink-installer.sh and from Arch Linux AUR package. @@ -47,18 +62,13 @@ in description = "DisplayLink Manager Service"; after = [ "display-manager.service" ]; conflicts = [ "getty@tty7.service" ]; - path = [ pkgs.kmod ]; serviceConfig = { ExecStart = "${displaylink}/bin/DisplayLinkManager"; Restart = "always"; RestartSec = 5; + LogsDirectory = "displaylink"; }; - - preStart = '' - mkdir -p /var/log/displaylink - modprobe evdi - ''; }; }; diff --git a/pkgs/os-specific/linux/evdi/default.nix b/pkgs/os-specific/linux/evdi/default.nix index 2508fb851a88c..72f3b1fbd9c29 100644 --- a/pkgs/os-specific/linux/evdi/default.nix +++ b/pkgs/os-specific/linux/evdi/default.nix @@ -2,20 +2,23 @@ stdenv.mkDerivation rec { pname = "evdi"; - version = "1.6.2"; + version = "1.6.3"; src = fetchFromGitHub { owner = "DisplayLink"; repo = pname; rev = "v${version}"; - sha256 = "0ajjsh1fw7w0k28r6qq7kh3qcr87gzzjp8s890algbglynlafzfw"; + sha256 = "1gp8xbhd5pmcl95izhpvw9gxfcsbv5f80s6q39l4y3z9j734rb8j"; }; nativeBuildInputs = kernel.moduleBuildDependencies; buildInputs = [ kernel libdrm ]; - makeFlags = [ "KVER=${kernel.modDirVersion}" "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; + makeFlags = [ + "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "KVER=${kernel.modDirVersion}" + ]; hardeningDisable = [ "format" "pic" "fortify" ]; @@ -26,9 +29,9 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Extensible Virtual Display Interface"; - platforms = platforms.linux; + homepage = "https://www.displaylink.com/"; license = with licenses; [ lgpl21 gpl2 ]; - homepage = https://www.displaylink.com/; - broken = versionOlder kernel.version "4.9" || versionAtLeast kernel.version "5.3" || stdenv.isAarch64; + platforms = platforms.linux; + broken = versionOlder kernel.version "4.9" || stdenv.isAarch64; }; } |