33 lines
1.2 KiB
Nix
33 lines
1.2 KiB
Nix
{ pkgs, ... }:
|
|
let
|
|
in {
|
|
# from https://github.com/tpwrules/nixos-m1/blob/main/nix/m1-support/firmware/default.nix
|
|
nixpkgs.overlays = [ (self: super: {
|
|
linux-mbp = super.callPackage ./packages/linux-mbp { };
|
|
apple-bce = super.callPackage ./packages/apple-bce { kernel = self.linux-mbp; };
|
|
apple-ib-drv = super.callPackage ./packages/apple-ib-drv { kernel = self.linux-mbp; };
|
|
}) ];
|
|
|
|
hardware.firmware = [
|
|
(pkgs.stdenvNoCC.mkDerivation {
|
|
name = "firmware";
|
|
buildCommand = ''
|
|
mkdir -p $out/lib/firmware
|
|
FIRMWARE=`echo ${./.}/*firmware*.tar`
|
|
if [ -e "$FIRMWARE" ]; then
|
|
tar xf "$FIRMWARE" -C $out/lib/firmware
|
|
# move firmware for my specific device
|
|
mv $out/lib/firmware/C-4377__s-B3/* $out/lib/firmware
|
|
find $out/lib/firmware -depth -type d -empty -delete
|
|
else
|
|
# stop nixos infra from breaking when it doesn't have any firmware
|
|
touch $out/lib/firmware/.dummy
|
|
fi
|
|
'';
|
|
})
|
|
];
|
|
|
|
boot.kernelPackages = pkgs.linuxPackagesFor pkgs.linux-mbp;
|
|
boot.extraModulePackages = [ pkgs.apple-bce pkgs.apple-ib-drv ];
|
|
boot.initrd.kernelModules = [ "apple_bce" "apple-ibridge" "apple-ib-tb" ];
|
|
}
|