Skip to content

Add ThinkPad T14 Intel Gen 6 support #1572

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

bashfulrobot
Copy link
Contributor

Hardware Profile

Adds support for Lenovo ThinkPad T14 Intel Gen 6 with Intel Core Ultra processors (Lunar Lake architecture).

Changes

  • CPU/GPU Support: Uses module for Intel Core Ultra 5/7 processors with Intel Arc integrated graphics
  • Kernel Requirements: Ensures kernel 6.8+ for full Lunar Lake support
  • Hardware Optimizations:
    • for ThinkPad brightness control
    • for touchpad click registration
    • Disables service for modern Intel power management
  • Module Structure: Added both base Intel T14 profile and Gen 6 specific profile
  • Documentation: Updated README.md table and flake.nix entries

Hardware Tested

  • Intel Core Ultra 7 268V processor
  • Intel Arc Graphics 130V/140V
  • All hardware functionality verified working
  • Kernel 6.16.0 with xe driver loaded successfully

Feedback Requested

The kernel parameters and throttled service settings are marked with TODO comments as they're based on common ThinkPad patterns. Feedback from other T14 Gen 6 users would help validate these optimizations.

Test Plan

  • Graphics acceleration working (Mesa Intel Graphics LNL)
  • xe driver loading correctly
  • Kernel 6.8+ requirement met
  • Hardware detection functional
  • Community testing of brightness keys
  • Community testing of touchpad behavior
  • Community validation of power management settings

- Add T14 Gen 6 hardware profile with Lunar Lake CPU/GPU support
- Include Intel Arc graphics and modern kernel requirements
- Update README.md and flake.nix with new module entries
- Follow CONTRIBUTING.md guidelines for profile structure
- Add acpi_backlight=native for proper brightness control
- Include touchpad fix for click registration issues
- Disable throttled service for modern Intel power management
- Mark additions with TODO comments seeking community feedback
Hardware profiles should not include lock files to maintain compatibility
across different nixpkgs versions
@bashfulrobot
Copy link
Contributor Author

bashfulrobot commented Aug 8, 2025

I reviewed the error, and the component that the nix fmt is complaining about also does not exist in your current flake. Can I ignore that? Or if there is something I need to do. Please let me know. I am currently running this code from my repo on my laptop. Feel free to let me know if there is anything else you need. Appreciate your time.

 nix fmt ..                nixos-hardware on  master took 6m5s error: flake 'git+file:///home/dustin/dev/nix/nixos-hardware' does not provide attribute 'formatter.x86_64-linux'

Cheers.

Enable fprintd service for fingerprint authentication on T14 Gen 6.
This allows users to enroll and use fingerprint login after running
'sudo fprintd-enroll $USER'.
Add PAM configuration to enable fingerprint authentication for login,
sudo, su, and xscreensaver. This makes the fingerprint interface
available in GNOME Settings and enables fingerprint unlock.
Remove PAM fingerprint authentication from hardware profile to avoid
breaking GDM password login as described in nixpkgs#171136. Users
should configure PAM in their host config for safe fingerprint auth.
Add comprehensive comments explaining how to configure PAM services
for complete fingerprint authentication in GNOME, including warnings
about potential login issues and step-by-step setup instructions.
flake.lock Outdated
Copy link

@panchoh panchoh Aug 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi!

Note that there is an issue with flake.lock not being synced with the actual flake.nix that we have, which I’m trying to address on #1570.

At any rate, I’d recommend removing flake.lock from the scope of this PR (to keep things orthogonal, that is).

Thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did end up removing the lock file previously. So that is taken care of. 👍

Copy link

@panchoh panchoh Aug 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Um, that doesn't fly, I'm afraid. If this PR gets accepted, the project as a whole will end up without the flake.lock file. We don't want that. What I propose is that you drop the edit to flake.lock altogether. The resulting PR should then contain no mention of flake.lock. And, when the previous fix is accepted by the project, this PR will have no conflicts as a bonus.

My suggestion would be that you rewrite the history of your PR, and when the changes to flake.lock are gone, then force-push to your branch. Let me know if you need and/or want assistance with this.

Hint: git rebase --interactive is your friend.

Thanks!

@panchoh
Copy link

panchoh commented Aug 11, 2025

I reviewed the error, and the component that the nix fmt is complaining about also does not exist in your current flake. Can I ignore that? Or if there is something I need to do. Please let me know. I am currently running this code from my repo on my laptop. Feel free to let me know if there is anything else you need. Appreciate your time.

 nix fmt ..                nixos-hardware on  master took 6m5s error: flake 'git+file:///home/dustin/dev/nix/nixos-hardware' does not provide attribute 'formatter.x86_64-linux'

Cheers.

(Sorry, I missed this comment before.)

The formatter has been recently moved (a7600ce) to the tests flake, so the GitHub Actions workflow enters the tests directory before running nix fmt:

- run: cd tests && nix fmt .. -- --fail-on-change

So, just run cd tests, and then run nix fmt .. -- --fail-on-change a couple of times until no errors are detected, and you are good to go. (Tecnically, the first pass will fix all the errors, but with the second pass, you get feedback that it won’t fail when run by the workflow.)

Hope that it helps!

Happy hacking,

@bashfulrobot
Copy link
Contributor Author

I reviewed the error, and the component that the nix fmt is complaining about also does not exist in your current flake. Can I ignore that? Or if there is something I need to do. Please let me know. I am currently running this code from my repo on my laptop. Feel free to let me know if there is anything else you need. Appreciate your time.

 nix fmt ..                nixos-hardware on  master took 6m5s error: flake 'git+file:///home/dustin/dev/nix/nixos-hardware' does not provide attribute 'formatter.x86_64-linux'

Cheers.

(Sorry, I missed this comment before.)

The formatter has been recently moved (a7600ce) to the tests flake, so the GitHub Actions workflow enters the tests directory before running nix fmt:

- run: cd tests && nix fmt .. -- --fail-on-change

So, just run cd tests, and then run nix fmt .. -- --fail-on-change a couple of times until no errors are detected, and you are good to go. (Tecnically, the first pass will fix all the errors, but with the second pass, you get feedback that it won’t fail when run by the workflow.)

Hope that it helps!

Happy hacking,

Thanks for the tip! It ran clean locally after two runs. I have now committed that change as well.

@panchoh
Copy link

panchoh commented Aug 12, 2025

Thanks for the tip! It ran clean locally after two runs. I have now committed that change as well.

Glad to be of service!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants