From 9a355718299ce74c324b5ccc0d4943159b51cf41 Mon Sep 17 00:00:00 2001 From: mexisme Date: Sun, 7 Feb 2021 00:55:27 +1300 Subject: [PATCH] Interim version of trying to update Surface Go Wifi in-place - Can't seem to d/l the K1535 board firmware directly from Killer Networking? --- microsoft/surface/firmware/ath10k.nix | 29 ++++++++++++++++++++++++++ microsoft/surface/firmware/default.nix | 2 ++ microsoft/surface/repos.nix | 21 ++++++++++++++++++- 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 microsoft/surface/firmware/ath10k.nix diff --git a/microsoft/surface/firmware/ath10k.nix b/microsoft/surface/firmware/ath10k.nix new file mode 100644 index 0000000..3cbd8a0 --- /dev/null +++ b/microsoft/surface/firmware/ath10k.nix @@ -0,0 +1,29 @@ +{stdenv, pkgs, firmwareLinuxNonfree, ...}: +let + repos = (pkgs.callPackage ../repos.nix {}); +in + +firmwareLinuxNonfree.overrideAttrs (old: rec { + pname = "microsoft-surface-go-firmware-linux-nonfree"; + srcs = [ + firmwareLinuxNonfree.src + repos.ath10k-firmware + ]; + + sourceRoot = firmwareLinuxNonfree.src; + priority = 1; + + dontMakeSourcesWritable = true; + postInstall = '' + # rm -v $out/lib/firmware/ath10k/{hw2.1,hw3.0}/board.bin + # rm -v $out/lib/firmware/ath10k/{hw2.1,hw3.0}/board2.bin + + # cp $srcs[1] $out/lib/firmware/ath10k/hw2.1/ + # cp $srcs[1] $out/lib/firmware/ath10k/hw3.0/ + + #TODO: + pwd + echo src = $src, srcs = $srcs + exit 1 + ''; +}) diff --git a/microsoft/surface/firmware/default.nix b/microsoft/surface/firmware/default.nix index 67f2ce2..ea24877 100644 --- a/microsoft/surface/firmware/default.nix +++ b/microsoft/surface/firmware/default.nix @@ -2,5 +2,7 @@ { hardware.enableAllFirmware = true; hardware.firmware = [ + # TODO: Wrap with an option: + (pkgs.callPackage ./ath10k.nix {}) ]; } diff --git a/microsoft/surface/repos.nix b/microsoft/surface/repos.nix index 8642416..dbbbd75 100644 --- a/microsoft/surface/repos.nix +++ b/microsoft/surface/repos.nix @@ -1,8 +1,27 @@ -{ lib, pkgs, fetchgit }: +{ lib, pkgs, fetchgit, fetchurl }: { linux-surface = fetchgit { url="https://github.com/linux-surface/linux-surface.git"; rev="25ab2cf75e5eda5ab9739db1907300010c06dacf"; sha256="0h8624d7ix1p6ysw9bllmnnwnv164z8xkx56zj3vdczn91vmqcf9"; }; + + linux-kernel-firmware = fetchgit { + url="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"; + rev="060ad8b3d505e2ff8878d11a81da3532b983cd45"; + sha256="0n93xc3vzx7gy96lpkypw7ay201x7whirxm00c0zhq6zmq2zs12v"; + }; + + ath10k-firmware = fetchgit { + url="https://github.com/kvalo/ath10k-firmware"; + rev="84b47062aab31d67156e0a3ef593a6999a12864b"; + sha256="0l8wfj8z4jbb31nzqkaxisby0n6061ix01c5di9bq66iby59j8py"; + }; + + surface-go-ath10k-firmware = fetchurl { + url="https://support.killernetworking.com/K1535_Debian/board.bin"; + # url="https://www.killernetworking.com/support/K1535_Debian/board.bin"; + sha256="0l8wfj8z4jbb31nzqkaxisby0n6061ix01c5di9bq66iby59j8py"; + }; + }