about summary refs log tree commit diff
path: root/machines/aszlig/managed
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2018-04-23 05:09:29 +0200
committeraszlig <aszlig@nix.build>2018-04-23 05:09:29 +0200
commit0c722e889da16df441556b7642381f54228370db (patch)
tree5e847431f778bde862f5b713daab22a7fc64c196 /machines/aszlig/managed
parentf0c4edace70d63faddb3c0d66523d78b232ead98 (diff)
machines/shakti: Provide EDID information
The monitor reports back EDID via DVI but the HDMI->DVI adapter seems to
not handle that correctly. Also the monitor has weird resolutions, so
using the fallback modes provided by the kernel also doesn't seem to
work and the monitor stays blank.

While hardcoding the EDID information isn't a very good idea for this
machine in general (because it might be connected to a different
monitor), for now this is the easiest workaround because I don't have
access to that machine.

Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'machines/aszlig/managed')
-rw-r--r--machines/aszlig/managed/shakti.nix15
1 files changed, 15 insertions, 0 deletions
diff --git a/machines/aszlig/managed/shakti.nix b/machines/aszlig/managed/shakti.nix
index 24f2b952..9e7856b8 100644
--- a/machines/aszlig/managed/shakti.nix
+++ b/machines/aszlig/managed/shakti.nix
@@ -22,6 +22,21 @@
 
   boot.kernelModules = [ "kvm-amd" ];
 
+  # The machine has a weird HDMI->DVI adapter which doesn't report back EDID
+  # information and the monitor is also very weird because it doesn't
+  # understand the fallback modes.
+  boot.kernelParams = [ "drm_kms_helper.edid_firmware=edid/weird.bin" ];
+  hardware.firmware = lib.singleton (pkgs.runCommand "weird-edid" {} ''
+    mkdir -p "$out/lib/firmware/edid"
+    base64 -d > "$out/lib/firmware/edid/weird.bin" <<EOF
+    AP///////wAEaaEiAQEBASQRAQOALx1477U1pVZKmiUQUFS/74BxT4GAlQCzAAEBlQ+BioFA
+    ITmQMGIaJ0BosDYAsQ4RAAAcAAAA/QA3Sx5QEQIAIFBYAoAoAAAA/wA3OUxNTVMwMDAyMDAK
+    AAAA/ABBU1VTIFBHMjIxCiAgAc8CAxABSwIRBBMFFBAfCQAAjArQiiDgLRAQPpYAE44hAAAY
+    AR0AclHQHiBuKFUAxI4hAAAYAR2AGHEcFiBYLCUAxI4hAACe8zmAGHE4LUBYLEUAxI4hAAAe
+    jArQkCBAMSAMQFUAE44hAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAASw==
+    EOF
+  '');
+
   environment.systemPackages = with pkgs; [
     mosh wget krita gphoto2 digikam unfreeAndNonDistributablePkgs.dropbox
     firefox