Install qca6390 firmware necessary for ax500 connectivity chip

This commit is contained in:
mitchmindtree 2020-11-14 19:13:48 +01:00 committed by mitchmindtree
parent bcbbd2bd72
commit 3345b81777
2 changed files with 44 additions and 3 deletions

View File

@ -5,9 +5,18 @@
../../../common/pc/laptop
];
# Necessary for audio.
# https://bbs.archlinux.org/viewtopic.php?pid=1933548#p1933548
hardware.firmware = [ pkgs.sof-firmware ];
# TODO: upstream to NixOS/nixpkgs
nixpkgs.overlays = [(final: previous: {
qca6390-firmware = final.callPackage ./qca6390-firmware.nix {};
})];
hardware.firmware = lib.mkBefore [
# Necessary for audio.
# https://bbs.archlinux.org/viewtopic.php?pid=1933548#p1933548
pkgs.sof-firmware
# Firmware for the AX500 (wi-fi & bluetooth chip).
pkgs.qca6390-firmware
];
# Confirmed necessary to get audio working as of 2020-11-13:
# https://bbs.archlinux.org/viewtopic.php?pid=1933643#p1933643

View File

@ -0,0 +1,32 @@
# Based on instructions from kvalo at: http://lists.infradead.org/pipermail/ath11k/2020-November/000537.html
# The xps/13-9360/qca6174-firmware.nix was a useful reference for how to setup this module.
{ stdenv }:
stdenv.mkDerivation rec {
name = "${target}-firmware-${version}";
version = "${branch}-00042";
branch = "master";
target = "QCA6390";
src = builtins.fetchGit {
url = "https://github.com/kvalo/ath11k-firmware.git";
ref = "master";
rev = "45a6c45a19799d3b06fc2287d5ba44e19ee0aa00";
};
buildCommand = ''
mkdir -p $out/lib/firmware/ath11k/${target}/hw2.0/
cp $src/QCA6390/hw2.0/1.0.1/WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1/*.bin $out/lib/firmware/ath11k/QCA6390/hw2.0/
cp $src/QCA6390/hw2.0/board-2.bin $out/lib/firmware/ath11k/QCA6390/hw2.0/
'';
meta = with stdenv.lib; {
description = ''
Firmware for the QCA6390 wireless chip.
This derivation is based on the instructions provided by kvalo in:
http://lists.infradead.org/pipermail/ath11k/2020-November/000537.html
'';
homepage = "https://github.com/kvalo/ath11k-firmware/tree/master/QCA6390/hw2.0";
license = licenses.unfreeRedistributable;
maintainers = with maintainers; [ mitchmindtree ];
platforms = platforms.linux;
};
}