- CPU: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
- RAM: 16 GB
- HDD: 512 GiB SSD
- Screen: 15.6" FHD(1920x1080) InfinityEdge
- Graphics: NVIDIA Corporation GTX1050 4GB GDDR5, with Intel Graphics too.
- Input: trackpad
Not much tweaking of NixOS itself was needed. But we currently cannot automate the firmware setup, so this must be done by hand.
These settings are needed both for booting the final install, and installer itself. Therefore, they must be done first.
- Disable Secure Boot (but keep UEFI Boot). Thakfully doing so is as easy as changing any other simple setting.
- Disable Intel hardware RAID and use AHCI instead. Intel doesn't seem to provide a working linux driver for this. (If you just have SSD it's pointless and just slows things down needlessly anyways.)
- Add systemd-boot to UEFI boot list. The (uneditable anyways) settings mapping drive UUIDs to HD* work fine.
- Disable C-States. This is a processor idling thing. It seems to cause random crashes (Blank screen, no normal panic debug dump). Unfortunately, without it, the computer cannot be suspended. On the other hand, it doesn't seem to affect acpi's estimation of battery life when the computer is running with minimal load, but I haven't tested battery life in practice. I list it as optional as there's a tradeoff, and the crashes are rare enough one can probably get through installation just fine. This does not seem to be a problem on recent firmware/kernel versions.
- Update BIOS. According to Reddit, this helps with battery life.
- Update Intel's Thunderbolt firmware. Without this, the Thunderbolt port will only work as power source, and not transfer data.
- Fan control This laptop supports Dell's own libsmbios: https://github.com/dell/libsmbios to set fan modes, as well as other bios settings. Simply add the `libsmbios` package to your environment.
- TPM 2.0 LUKS Decryption If using the experimental systemd initrd, the TPM can easily be used to decrypt the root partition at boot. Simply use `systemd-cryptenroll` with desired options.
- Firmware Upgrades `services.fwupd` and your desired front-end can be used to update almost all of the firmware on this system. Something curious is the BIOS offered through fwupd/lvfs is much newer than the one available on Dell's website.
- Secure Boot This works. There is more than one way to enable it. Tested with https://github.com/nix-community/lanzaboote v0.3.0
After a recent update my machine became unstable. X couldn't start and even running `lspci` would lock the machine. I'm not sure what the root cause was, but I found the fix here: https://wiki.archlinux.org/index.php/Dell_XPS_15_9560#Troubleshooting
TL;DR I added this line:
I am leaving these params here, I haven't test these so use on your own risk. I am using different method to disable nvidia. ("acpi_rev_override=1" param is save and I have been using it for a while now, no crashes.)
``` boot.kernelParams = ["acpi_rev_override=1"]; ```
Some more detail about the problem can be found here: https://bbs.archlinux.org/viewtopic.php?id=223056
- The TPM was very unreliable, sometimes not showing up to the system. Updating to the latest TPM firmware fixed the problem. I could not seem to do this through `fwupd` so used the latest exe from the Dell website. Loading the exe through a command prompt on a Windows installer was adequate.
- Fingerprint Reader: Can be enabled with `services.fprintd.enable`, and can read your fingerprint. Fingerprint authentication is extremely reliable to the point it is not worth using.