NixOS / nixos-hardware

A collection of NixOS modules covering hardware quirks.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Framework 13 AMD crashed and then refused to boot after using framework-13-7040-amd

reinux opened this issue · comments

Thankfully, I was able to boot back in using my previous profile and then just comment out the entry in my flake. Cool!

IMG_20240105_064632

I think it has something to do with the fact that I'm using a Lexar SSD as opposed to the one provided by Framework, though I'm surprised it would take issue at all with storage.

Maybe use nixos-generate-config --root /tmp/config and see if there are block device driver missing for your SSD.

Could you clarify what exactly I'm looking for here? Nothing looks out of place as far as I can tell.

{ config, lib, pkgs, modulesPath, ... }:

{
  imports =
    [ (modulesPath + "/installer/scan/not-detected.nix")
    ];

  boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-amd" ];
  boot.extraModulePackages = [ ];

  swapDevices =
    [ { device = "/dev/disk/by-uuid/f43ba3d7-0265-48fb-abe4-6f2e2e941a0b"; }
    ];

  networking.useDHCP = lib.mkDefault true;
  # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;

  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
  hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

Edit: My actual in-use hardware-configuration.nix has these two attributes:

  fileSystems."/" =
    { device = "/dev/disk/by-uuid/9c35facf-87f0-45b2-a1c5-9897c3d7e9db";
      fsType = "ext4";
    };

  fileSystems."/boot" =
    { device = "/dev/disk/by-uuid/A3C3-6724";
      fsType = "vfat";
    };

The most important line is:

boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" ];

Otherwise your NVME will not be found.

Thanks for the help so far.

Yep, that line is in there.

The whole file, sans long comments:

{ config, lib, pkgs, modulesPath, ... }:

{
  imports =
    [ (modulesPath + "/installer/scan/not-detected.nix")
    ];

  boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-amd" ];
  boot.extraModulePackages = [ ];

  fileSystems."/" =
    { device = "/dev/disk/by-uuid/9c35facf-87f0-45b2-a1c5-9897c3d7e9db";
      fsType = "ext4";
    };

  fileSystems."/boot" =
    { device = "/dev/disk/by-uuid/A3C3-6724";
      fsType = "vfat";
    };

  swapDevices =
    [ { device = "/dev/disk/by-uuid/f43ba3d7-0265-48fb-abe4-6f2e2e941a0b"; }
    ];

<interface>.useDHCP`.
  networking.useDHCP = lib.mkDefault true;
  # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;

  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
  hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

Ok. Than I don't know why including the hardware profile makes your nvme actively fail. Could be any of the lines in here:

boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "6.1") (lib.mkDefault pkgs.linuxPackages_latest);

Maybe even the newer linux kernel?

Well, for whatever reason, it seems to be happy with unstable channel but not 23.11. I haven't run into any other issues yet with unstable so I'll probably keep using this unless it asplodes.

Thanks again!