Wow - thanks for the detailed response, @TLATER!
Just for context, I’m configuring a 9th Generation Lenovo X1 Carbon Thinkpad with a 14" 3840 x 2400 display.
Ooh, fun - I haven’t contributed before, but #108294 looks simple enough.
What information would be helpful here?
Here are some of the config options related to kernel & graphics:
{
# ...
boot = {
initrd = {
availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
kernelModules = [ ];
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
};
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
# Setup the system console.
console = {
# Make fonts readable from the start of boot
earlySetup = true;
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
packages = with pkgs; [ terminus_font ];
keyMap = "us";
};
services.xserver = {
# Enable a windowing system.
enable = true;
displayManager.startx.enable = true;
# Configure keymap
layout = "us";
# Enable touchpad support (enabled default in most desktopManager).
libinput.enable = true;
# video support
videoDrivers = [ "modesetting" ];
useGlamor = true;
# HiDPI
dpi = 323;
};
# Additional hardware configuration
hardware = {
video.hidpi.enable = lib.mkDefault true;
# Update the Intel microcode.
cpu.intel.updateMicrocode = true;
# Allow connected display discovery.
i2c.enable = true;
# Setup graphics acceleration.
opengl = {
enable = true;
driSupport = true;
extraPackages = with pkgs; [
intel-compute-runtime
intel-media-driver
vaapiIntel
vaapiVdpau
libvdpau-va-gl
];
};
};
# ...
}
and
$ lsmod | grep video
uvcvideo 114688 0
videobuf2_vmalloc 20480 1 uvcvideo
videobuf2_memops 20480 1 videobuf2_vmalloc
videobuf2_v4l2 28672 1 uvcvideo
videobuf2_common 61440 4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
videodev 237568 3 videobuf2_v4l2,uvcvideo,videobuf2_common
mc 53248 4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
video 53248 2 thinkpad_acpi,i915
backlight 20480 4 video,thinkpad_acpi,i915,drm
i2c_core 86016 13 i2c_designware_platform,videodev,i2c_hid,i2c_designware_core,drm_kms_helper,i2c_algo_bit,i2c_smbus,i2c_i801,i2c_hid_acpi,i915,psmouse,i2c_dev,drm
usbcore 278528 5 xhci_hcd,typec,uvcvideo,btusb,xhci_pci
usb_common 16384 3 xhci_hcd,usbcore,uvcvideo
Thanks - I re-enabled Plymouth. Here’s what I see:
- during boot
- I see neither spinner nor NixOS logo
- If I don’t hit any keys, a single line prints to the screen:
setfont: KDFONTOP: Function not implemented
- If I hit
Esc
, then^[
prints to the screen. It does not drop “behind” the graphical screen. Each press ofEsc
prints another^[
. I do not see thesetfont
line.
- during shutdown
- I see both spinner and NixOS logo
- If I don’t hit any keys, the spinner spins smoothly for a few seconds, the screen flickers to black and then back the splash screen, and the spinner freezes, updates every 5 seconds or so, and shutdown takes an extra 15-20 seconds.
- If I hit
Esc
, I see “behind” the screen and shutdown finishes in about 5 seconds.
Okay, I’ve looked through the BIOS and didn’t see anything that looked relevant, other than the amount of memory allocated to graphics. It’s currently set at 256MB but I boosted it to the maximum 512MB.
I set services.fwupd.enable = true
and following Problem using fwupd ran sudo fwupdmgr update
. It reported:
$ sudo fwupdmgr update
Devices with no available firmware updates:
• KXG6AZNV1T02 TOSHIBA
• System Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI Device Firmware
• UEFI dbx
No updatable devices
Hmm - I’m currently using systemd-boot I think (boot.loader.systemd-boot.enable = true
). Would this option still apply?
I have integrated Intel Xe Graphics (TGL GT2) graphics, so nvidia thankfully isn’t the issue. If you have ideas for performing the modeset earlier for Intel Mesa, let me know!