I would like to share the relevant part of my configuration as I spent quite some time to get NixOS booting on my ThinkPad T14s Gen 6 (Snapdragon X Elite X1E-78-100).
edit: forgot to merge the devicetree. edit dec 2024: - replace fetchgit with fetchurl - add nix.settings.cores and max-jobs set to 4 to prevent overheat crash - add: networking.wireless.iwd.settings.General.ControlPortOverNL80211 = false to make wlan work: WCN7850 disconnects and reconnects in a loop edit jan 2025: -add hardware.firmware
With 10k fish 12 fps in firefox and 5 fps in ungoogled chromium.
With 5k fish 17 fps in firefox and 8 fps in ungoogled chromium.
With 1k fish 25 fps in firefox, 18 fps in ungoogled chromium.
Kernel compile takes about 33 minutes.
Have not used it much but so far the T14s feels very snappy.
Thanks for sharing @ookhoi, I’ve just got a similar laptop and am trying this out with a configuration based on yours.
On my first attempt the system boots, but I get a blue screen (reminds me of Windows!) and a reboot as soon as I hit a key on the keyboard. Using an external keyboard works fine. I think this is probably due to not using the extracted Windows firmware, so I’m going to try that, but I just wondered if you also encountered this issue?
My 32GB T14s is fine, but with my brand new 64GB T14s I experience the same (dark)blue screen and instant reboot at the very first key press after boot. So I assume you have a 64GB configuration as well.
Thanks, yes I made a specialisation with mem=16G and that works fine. The interesting thing is that I installed Ubuntu before NixOS just to validate things, and I didn’t have any such problem. I guess it would be worth looking at the kernel they are using, I’ll have a look tomorrow.
The cutmem snippet you posted is for Grub. I don’t think systemd-boot has a direct equivalent, but there’s probably a way to do it.
It’s odd, because I installed Ubuntu and booted it, and I don’t think the cutmem setting carried over to the installation. I’m pretty sure I checked /proc/meminfo and it reported 64GB with no crashes. It’s possible I was just lucky somehow, because I didn’t use the machine for long, or I’m misremembering.
For the moment I’ve just gone with mem=31G (32G also didn’t work for me). I also played with using memmap to exclude the region, but it seems that doesn’t do enough. I don’t think systemd-boot has a cutmem equivalent, but 31G will do for the moment I guess!
I just got a T14s Gen6 with 64GB and installed Ubuntu on it to see what to expect before trying to install NixOS on it. Currently booted off of NVMe free shows it has 64GB (as does cat /proc/meminfo).
Is the mem option only needed when booting off USB?
You’re right. Booting from the Ubuntu Live CD only shows 32GB for me too, while booting from the installed Ubuntu shows 64GB. Neither had a mem option in /proc/cmdline FWIW
Anyway, I now have NixOS installed on it (struggled trying to get Grub to work for a while before trying systemd-boot) and I also got a the blue screen on first keystroke issue until I added the mem=31GB workaround. I noticed the keystroke did echo on the screen right before it crashed, but I have not experimented with it much yet.
Thanks for figuring this all out and documenting it for us! I would never have thought to try systemd-boot if not for seeing that it had worked for you. (Ubuntu is using Grub, though it seems they may have needed to patch it.)
his series adds support for utilising the UEFI firmware RTC offset to
the Qualcomm PMIC RTC driver and uses that to enable the RTC on all X
Elite machines.
Just wondering if anyone’s successfully running a recent NixOS unstable on the t14s? 24.11 has worked fine, but as soon as I’ve upgraded to unstable I’ve been seeing issues with systemd-boot not loading the kernel. I haven’t narrowed it down yet, but it’d be useful to know if people are doing this successfully.
I’ve cleaned duplicate boot entries with efibootmgr which might or might not help. It seems safe to delete the Lenovo boot entries as well: they got re-created on mine.
When systemd-boot fails to load the kernel it is usually sufficient to press F12 to enter the boot menu, press arrow down once to select the only option (nvme drive), and press enter to boot from nvme.
If that fails, boot with any random USB-A device plugged in. If even that fails, try to plug in the USB-A device during boot, or unplug at the systemd-boot menu.
I’m tracking nixpkgs-unstable btw, have been running 6.14-rc3 past week, about to compile 6.14-rc4.
Ah, thanks! I hadn’t seen this issue I assumed the problem was related to the upgrade, but sounds like it was more just because I was adding/changing boot entries and must have perturbed it. I’ll try the workarounds, thanks!