$linuxjunkies
>

New Linux Laptop Setup Checklist

Post-install laptop checklist covering TLP power management, systemd lid actions, S3 suspend, fingerprint enrollment with fprintd, and Wi-Fi tuning for reliability and battery life.

BeginnerUbuntuDebianFedoraArch9 min readUpdated June 7, 2026

Before you start

  • Linux installed and booting to a desktop or TTY
  • sudo or root access
  • Internet connection for package installation
  • Basic familiarity with a terminal text editor (nano, vim)

You've just installed Linux on a new laptop. The desktop works, but a dozen small things will quietly drain your battery, break suspend, or leave your fingerprint reader collecting dust unless you address them now. This checklist walks through the essential post-install tuning — power management, lid behaviour, suspend/resume, battery optimisation, fingerprint enrollment, and Wi-Fi performance tweaks — in the order that matters.

1. Install and Enable Power Management

The single highest-impact tool for laptop power on Linux is TLP. It sets aggressive power-saving defaults for CPU scaling, USB autosuspend, SATA link power, and more, all via a single service.

Install TLP

# Debian / Ubuntu
sudo apt install tlp tlp-rdw

# Fedora / RHEL family
sudo dnf install tlp tlp-rdw

# Arch
sudo pacman -S tlp
sudo systemctl enable --now tlp

If your laptop has a ThinkPad battery controller or an ASUS/Lenovo charging threshold feature, install the matching extras:

# ThinkPad only
sudo apt install tp-smapi-dkms acpi-call-dkms   # Ubuntu/Debian
sudo dnf install kernel-devel akmod-tp_smapi    # Fedora

TLP's configuration lives in /etc/tlp.conf. The defaults are sensible; edit only what you need. Key entries to review:

  • CPU_SCALING_GOVERNOR_ON_BAT=powersave — keeps the CPU in the efficient governor on battery.
  • START_CHARGE_THRESH_BAT0=75 / STOP_CHARGE_THRESH_BAT0=80 — limits charge to extend long-term battery health (ThinkPad/ASUS/Huawei only).
  • WIFI_PWR_ON_BAT=on — enables Wi-Fi power saving on battery (more on this below).

2. Configure Lid and Power-Button Actions

systemd-logind controls what happens when you close the lid or press the power button. No need for a DE-specific tool for the base behaviour.

sudo nano /etc/systemd/logind.conf

Relevant options:

HandleLidSwitch=suspend          # close lid on battery
HandleLidSwitchExternalPower=lock  # close lid while plugged in
HandleLidSwitchDocked=ignore     # close lid when docked/external display
HandlePowerKey=poweroff
IdleAction=suspend
IdleActionSec=20min

Apply changes without rebooting:

sudo systemctl restart systemd-logind

Warning: restarting logind will briefly drop your graphical session on some compositors. Save open work first.

3. Fix Suspend and Resume

Modern laptops support s2idle (S0ix, shallow suspend) and deep (S3, classic suspend-to-RAM). Most hardware sleeps better on deep; some ultrabooks only offer s2idle.

Check what your hardware supports

cat /sys/power/mem_sleep
# Example output: s2idle [deep]   (brackets = current default)

Force S3 deep sleep if needed

sudo kernelstuck=0
# Add to GRUB: mem_sleep_default=deep
sudo nano /etc/default/grub

Find the GRUB_CMDLINE_LINUX_DEFAULT line and add mem_sleep_default=deep:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem_sleep_default=deep"
# Debian / Ubuntu
sudo update-grub

# Fedora / RHEL / Arch (grub2)
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# Arch (grub)
sudo grub-mkconfig -o /boot/grub/grub.cfg

If resume from suspend leaves you with a black screen, the most common culprits are the NVIDIA proprietary driver or missing firmware. Check journalctl -b -1 (the previous boot) for errors immediately after the resume timestamp.

4. Enroll Your Fingerprint Reader

fprintd is the standard daemon for fingerprint hardware on Linux. Most modern readers (Goodix, Synaptics, ELAN) are supported via libfprint.

# Debian / Ubuntu
sudo apt install fprintd libpam-fprintd

# Fedora
sudo dnf install fprintd fprintd-pam

# Arch
sudo pacman -S fprintd
sudo systemctl enable --now fprintd

Enroll a finger

fprintd-enroll
# Follow the prompts; swipe or press your finger ~5 times

Enable fingerprint for sudo and login

# Debian / Ubuntu — interactive PAM configurator
sudo pam-auth-update

Select Fingerprint authentication in the list, then OK. On Fedora and Arch, edit PAM manually or use authselect:

# Fedora
sudo authselect enable-feature with-fingerprint
sudo authselect apply-changes

Verify enrollment worked:

fprintd-verify
# Output should say: verify result: verify-match (done)

Note: Fingerprint login does not work as a second factor for sudo commands that require password entry in the same session on all configurations. Test your setup before relying on it.

5. Tune Wi-Fi for Reliability and Power

Linux Wi-Fi drivers apply aggressive power management by default, which causes latency spikes and random disconnects on some adapters. The right setting depends on whether you're on battery or mains.

Check current power management state

iwconfig wlan0 | grep -i power
# or
iw dev wlan0 get power_save

Disable power saving on AC (persistent via udev)

sudo nano /etc/udev/rules.d/81-wifi-powersave.rules
ACTION=="add", SUBSYSTEM=="net", KERNEL=="wlan*", \
  RUN+="/usr/sbin/iw dev %k set power_save off"

TLP (installed in step 1) handles the battery-side setting automatically via WIFI_PWR_ON_BAT=on. You get power saving on battery and full performance on AC without manual toggling.

Intel Wi-Fi: disable 802.11n power-save aggregation if still unstable

sudo nano /etc/modprobe.d/iwlwifi.conf
options iwlwifi power_save=0
options iwlwifi uapsd_disable=1
sudo modprobe -r iwlwifi && sudo modprobe iwlwifi
# or simply reboot

6. Verify Everything Is Working

Run a quick sanity check after completing the steps above.

# TLP status
sudo tlp-stat -s

# Current power source and battery info
sudo tlp-stat -b

# Confirm suspend target
systemctl status sleep.target suspend.target

# Check logind settings took effect
loginctl show-session

# Wi-Fi power state
iw dev wlan0 get power_save

For battery wear, check the design capacity versus the current full-charge capacity:

upower -i $(upower -e | grep BAT)
# Look for: energy-full and energy-full-design

Troubleshooting

  • Suspend works but resume shows a black screen: Add nvidia.NVreg_PreserveVideoMemoryAllocations=1 to kernel parameters if using the NVIDIA proprietary driver. Enable the associated systemd services: sudo systemctl enable nvidia-suspend nvidia-resume nvidia-hibernate.
  • Fingerprint device not detected: Run lsusb or lspci and cross-check against the libfprint supported device list. Some Goodix USB readers need a firmware upload via fwupd.
  • TLP conflicts with power-profiles-daemon: On GNOME 42+ and recent Fedora/Ubuntu systems, power-profiles-daemon is installed by default and conflicts with TLP. Disable one: sudo systemctl disable --now power-profiles-daemon before enabling TLP.
  • Wi-Fi drops on battery even with TLP: Some Realtek adapters need the rtw_power_mgnt=0 module option set in /etc/modprobe.d/realtek.conf.
  • Lid close does nothing: Your desktop environment may be overriding logind. In GNOME, check Settings → Power. In KDE, check System Settings → Power Management. DE settings take precedence over logind for lid events when a session is active.
tested on:Ubuntu 24.04Fedora 40Arch 2024.05Debian 12

Frequently asked questions

Does TLP conflict with GNOME's power-profiles-daemon?
Yes. On GNOME 42+ and recent Fedora and Ubuntu releases, power-profiles-daemon is installed by default and conflicts with TLP. Disable power-profiles-daemon with 'sudo systemctl disable --now power-profiles-daemon' before enabling TLP, or use power-profiles-daemon instead and skip TLP.
My fingerprint reader shows up in lsusb but fprintd can't find it. What's wrong?
The device may need firmware before libfprint can use it. Run 'fwupdmgr get-devices' and 'fwupdmgr update' to push firmware via fwupd. Also check the libfprint supported device list at fprint.freedesktop.org to confirm your exact USB ID is supported.
The lid-close setting in logind.conf isn't doing anything.
Your desktop environment overrides logind for lid events when a graphical session is active. Check your DE's power settings (GNOME Settings → Power, or KDE System Settings → Power Management) and set lid behaviour there as well.
How do I tell if my laptop actually entered S3 deep sleep and didn't just idle?
After waking, run 'journalctl -b | grep -i suspend' and look for 'PM: suspend entry (deep)' in the log. If you see '(s2idle)' instead, deep sleep is not being used despite your kernel parameter — your firmware may not advertise S3 support.
Should I set battery charge thresholds if my laptop isn't a ThinkPad?
Charge thresholds are supported by TLP on select ASUS, Huawei, LG, and Lenovo (non-ThinkPad) models in addition to ThinkPads. Run 'sudo tlp-stat -b' and look for a 'Charge threshold' section — if it shows supported values, you can set START_CHARGE_THRESH_BAT0 and STOP_CHARGE_THRESH_BAT0 in tlp.conf.

Related guides