vuxu.org: hera

Hera is a Lenovo T14 Gen 4 Intel, Type 21HDCTO1WWDE3 with an i7-1355U (10 cores: 2 performance up to 5Ghz, 8 efficient at 3.7GHz, hyperthreading, VT-x, VT-d), 32G RAM, 2 TB SSD (SK Hynix Platinum P41/PC801).

The naming

Hera is the goddess of marriage, women and family, and the protector of women during childbirth. In Greek mythology, she is queen of the twelve Olympians and Mount Olympus, sister and wife of Zeus, and daughter of the Titans Cronus and Rhea.

Rough setup

  • Partition the disk. Initially, I wanted to make a super small ESP (EFI System Partition), but I quickly learned a reason to make it slightly bigger: fwupd stores the firmware there before flashing. So let’s make 1G EFI System Partition and use the rest for one LUKS encrypted Linux LVM. We stick to LUKS1 as GRUB 2.06 doesn’t do Argon yet anyway, and can’t autodetect LUKS2.

    mkfs.fat -F 32 -n EFI /dev/nvme0n1p1
    
    
    cryptsetup luksFormat --type luks1 /dev/nvme0n1p2
    cryptsetup luksOpen /dev/nvme0n1p2 cryptlvm
    
    
    pvcreate /dev/mapper/cryptlvm
    vgcreate ssd /dev/mapper/cryptlvm
    
    
    lvcreate -n swap -L 16G ssd
    lvcreate -n root -L 128G ssd
    lvcreate -n home -L 128G ssd
    lvcreate -n data -L 1024G ssd
    
    
    mkfs.ext4 -L root /dev/mapper/ssd-root
    mkfs.ext4 -L home /dev/mapper/ssd-home
    mkfs.ext4 -L data /dev/mapper/ssd-data
    mkswap -L swap /dev/mapper/ssd-swap
    
  • There was a BIOS update available for version 1.39, we had 1.37. This can be updated from hrmpf:

    fwupdmgr get-devices
    fwupdmgr refresh
    fwupdmgr get-updates
    fwupdmgr update
    
  • Enable “Fn and Ctrl Key swap” in BIOS (Config -> Keyboard/Mouse).

  • Enable “F1-F12 as Primary Function” in BIOS (Config -> Keyboard/Mouse).

  • Enable VTx / VTx in BIOS (Security -> Virtualization).

  • We need to set GRUB_ENABLE_CRYPTODISK=y in /etc/default/grub. Ensure the grub.cfg does some unlocking to check if it worked.

Hacks

  • Make the Print key work as compose:

    xmodmap -e 'keycode 107 = Multi_key'
    
  • Allow dragging with middle mouse button:

    xinput set-prop 'TPPS/2 Elan TrackPoint' 'libinput Scroll Method Enabled' 0 0 0
    
  • Change backlight and volume with acpid:

    video/brightnessup) light -A 5;;
    video/brightnessdown) light -U 5;;
    button/volumeup) amixer sset Master 2+;;
    button/volumedown) amixer sset Master 2-;;
    
  • ALSA: You need to install sof-firmware.

  • Graphics: You need to use modesetting with X.org, xf86-video-intel has terrible performance and makes Chromium flicker and lag like hell.

  • Suspend/Resume seems to work fine, expect for a major issue: the fan keeps running while it’s suspended! (WTF?)

    I work around this for now by adding a hook to zzz that turns off the fan for 15s on suspend:

    echo watchdog 15 > /proc/acpi/ibm/fan
    echo disable > /proc/acpi/ibm/fan
    

    This requires having a file in modprobe.d with:

    options thinkpad_acpi fan_control=1
    

    (I may want to use thinkfan in the future, I don’t think the fan needs to run all the time when it’s on AC.)

  • perf top is broken on mainline until at least 6.6.5, but there’s a patch now.

Changelog

  • 22nov2023: Flash BIOS version 1.39 (was 1.37).