Hardware/Framework/Laptop 16: Difference between revisions

adding workaround to resolve waking up in backpack issue to Configuration
0x4A6F (talk | contribs)
No edit summary
 
(14 intermediate revisions by 9 users not shown)
Line 10: Line 10:
|-
|-
!Manufacturer
!Manufacturer
|Framework
|[[Hardware/Framework|Framework]]
|-
!Support
|[https://knowledgebase.frame.work/framework-component-linux-support-matrix-B1gwmFtPgg components]
|-
|-
!Architecture
!Architecture
Line 17: Line 20:
!colspan="2" class="title"|7040 Series
!colspan="2" class="title"|7040 Series
|-
|-
!Status
!Maintainer
|maybe supported
|-
|}
|}
</div>
</div>
Line 31: Line 34:


[[Category: Incomplete]]
[[Category: Incomplete]]
The device still has a couple of hardware quirks (see below).
[[Linux kernel|Using the latest kernel]] will fix some issues. Also read configuration hints in this article.


== Configuration ==
== Configuration ==


Framework specific NixOS hardware options are bundled within the nixos-hardware project.
Framework specific NixOS hardware options are bundled within the [https://github.com/NixOS/nixos-hardware nixos-hardware] project.


=== AMD 7040 Series ===
=== AMD 7040 Series ===


It is recommended to use [https://search.nixos.org/options?channel=23.11&show=services.power-profiles-daemon.enable power-profiles-daemon] over <code>tlp</code> for the AMD framework.
It is recommended to use [https://search.nixos.org/options?query=power-profiles-daemon power-profiles-daemon] over <code>tlp</code> for the AMD framework.
 
* NixOS Hardware module for flakes: <code>nixos-hardware.nixosModules.framework-16-7040-amd</code>
* NixOS Hardware module for channels: <code><nixos-hardware/framework/16-inch/7040-amd></code>
 
=== Fix Color accuracy in Power Saving modes ===
[https://docs.kernel.org/gpu/amdgpu/module-parameters.html?highlight=abmlevel Active Backlight Management] is used to reduce [https://community.frame.work/t/solved-color-issues-in-linux-6-9/52158/34 battery power consumption] causing the colors of the screen to be inaccurate.


=== Touchpad Palm Rejection ===
Some desktop environments may already be able to modify this setting.
The Framework 16 keyboard is treated as an external USB device by libinput causing the touchpad to stay enabled when typing.


Fix sourced from here: [https://community.frame.work/t/nixos-on-the-framework-laptop-16/46743/162 community.frame.work] by: [https://community.frame.work/u/sumiflow/summary @sumiflow]
To disable it add the kernel parameter:
  environment.etc = {
  boot.kernelParams = [ "amdgpu.abmlevel=0" ];
<nowiki> </nowiki> "libinput/local-overrides.quirks".text = <nowiki>''</nowiki>
<nowiki> </nowiki>  [Keyboard]
<nowiki> </nowiki>  MatchUdevType=keyboard
<nowiki> </nowiki>  MatchName=Framework Laptop 16 Keyboard Module - ANSI Keyboard
<nowiki> </nowiki>  AttrKeyboardIntegration=internal
<nowiki> </nowiki> <nowiki>''</nowiki>;
};


=== Prevent wake up in backpack ===
=== Prevent wake up in backpack ===
Putting your Framework in a backpack can cause it to wake up due to the screen flexing onto the keyboard. While this is not resolved in Firmware, you can workaround this issue with a udev rule:
Putting your Framework in a backpack can cause it to wake up due to the screen flexing onto the keyboard. While this is not resolved in Firmware, you can workaround this issue with a udev rule:
  services.udev.extraRules = <nowiki>''</nowiki>
  services.udev.extraRules = <nowiki>''</nowiki>
  <nowiki> </nowiki>  ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", ATTR{power/wakeup}="disabled", ATTR{driver/1-1.1.1.4/power/wakeup}="disabled"
  <nowiki> </nowiki>  SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", ATTR{power/wakeup}="disabled", ATTR{driver/1-1.1.1.4/power/wakeup}="disabled"
  <nowiki> </nowiki>  ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0014", ATTR{power/wakeup}="disabled", ATTR{driver/1-1.1.1.4/power/wakeup}="disabled"
  <nowiki> </nowiki>  SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0014", ATTR{power/wakeup}="disabled", ATTR{driver/1-1.1.1.4/power/wakeup}="disabled"
  <nowiki>''</nowiki>;
  <nowiki>''</nowiki>;
The Product and Vendor IDs can be found using lsusb.
{| class="wikitable"
|+
!Product
!Vendor and Product ID
|-
|RGB Macropad
|32ac 0013
|-
|Backlit keyboard ISO
|32ac 0018
|}
Other Product and Vendor IDs can be found using lsusb.


This does not prevent the trackpad from waking up the device. This however seems to happen less in a backpack.
This does not prevent the trackpad from waking up the device. This however seems to happen less in a backpack.
=== Bios Configuration ===
[https://guides.frame.work/Guide/Ubuntu+22.04+LTS+Installation+on+the+Framework+Laptop+16/306?lang=en#s1974 Enable Linux Audio Compatibility in the bios] to improve speaker audio quality.
== Useful Utilities ==
There are also utilities, which are helping managing your framework.   
The framework-tool provides Rust libraries and tools to interact with the system.         
Also there is a tool for controlling the inputmodules like the led matrix.         
It can be enabled by specifing the following:
inputmodule.enable = true;
With the following command you can display the time on your inputmodule.   
It might be necassary to specify your device which will be usually ttyACM0 and ttyACM1, if you have two input modules.
inputmodule-control  --serial-dev /dev/ttyACM1 led-matrix --clock
== External resources ==
There is [https://community.frame.work/t/nixos-on-the-framework-laptop-16/46743 a NixOS thread on the Framework forum], where you can find additional help, guidance and example configurations.