Framework Laptop (12th Gen) with Fedora 37
Table of Contents
These are my notes on installing a brand new Framework Laptop DIY Edition (12th Gen Intel® Core™) from Batch 1 for myself.
This very similar to the previous post, the 12th Gen model was announced shortly after my nephew got his 11th Gen and overall I liked the Gen11 so much that I wanted a machine from Framework for myself.
Installing Fedora was completely painless and is fully documented.
Installing Fedora on this machine is actually so smooth that I did not even do a write-up when I originally got the machine and installed Fedora 36.
F36 also smoothly did dnf system-upgrade to 37.
But, to do a neat and tidy F37 write-up, I also did a fresh F37 install.
Today (2023-02-21), I noticed that I had forgotten to publish this write-up. :facepalm: I’ll publish now, but will leave the original date.
The Framework Support page should be your entry point.
Be sure to check out the Setup, Upgrade, and Repair Guides.
And if you already have a Gen11 but want a Gen12, see their Upgrade Kit Guide.
- CPU: 12th Gen Intel(R) Core(TM) i7-1260P
- Memory: 64GB (2 x 32GB) DDR4-3200
- Storage: 2TB - WD_BLACK™ SN850 NVMe™
- Keyboard: English International
Make, Model, Version
[root@ipu ~]# dmidecode --type system | head --lines=9 # dmidecode 3.4 Getting SMBIOS data from sysfs. SMBIOS 3.3 present. Handle 0x0001, DMI type 1, 27 bytes System Information Manufacturer: Framework Product Name: Laptop (12th Gen Intel Core) Version: A6
For the Gen 12 today’s latest is what is factory installed, 03.04
[root@ipu ~]# dmidecode -s bios-version 03.04
Since this version is vulnerable to
I recommend you apply a later release of the BIOS once available.
12th Gen Intel Core BIOS 3.06 Beta
While this is certainly not everyone’s view, I was fully prepared for a beta BIOS to have issues but I wanted the 9 CVE fixes and am comfortable in tryin gbetas and reporting back.
I did have to do the documented work-around of power off, remove AC, wait 2 minutes to get it to apply. And reported to the forum as requested.
Read the linked thread for details when deciding if you want to test the beta.
If you are not adventurous, do wait for a non-beta release. Not everyone shares my a beta could worst case brick the machine, I accept that when I beta test view :-)
My USB-A ports feel more finicky since the update. But I have not yet looked at that in depth.
12th Gen Intel(R) Core(TM) i7-1260P aka Alder Lake. It has 4 Performance-cores, 8 Efficient-cores and can do 16 Total Threads.
[root@ipu ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 39 bits physical, 48 bits virtual Byte Order: Little Endian CPU(s): 16 On-line CPU(s) list: 0-15 Vendor ID: GenuineIntel BIOS Vendor ID: Intel(R) Corporation Model name: 12th Gen Intel(R) Core(TM) i7-1260P BIOS Model name: 12th Gen Intel(R) Core(TM) i7-1260P To Be Filled By O.E.M. CPU @ 1.9GHz BIOS CPU family: 198 CPU family: 6 Model: 154 Thread(s) per core: 2 Core(s) per socket: 12 Socket(s): 1 Stepping: 3 CPU(s) scaling MHz: 44% CPU max MHz: 4700.0000 CPU min MHz: 400.0000 BogoMIPS: 4992.00 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art ar ch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_f req pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdc m pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdran d lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single ssbd ibrs ibpb stibp ibrs _enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsa vec xgetbv1 xsaves split_lock_detect avx_vnni dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req hfi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid movdiri movdir64b fsrm md_clear serialize arch_lbr ibt flush_l1d arch_capabili ties Virtualization features: Virtualization: VT-x Caches (sum of all): L1d: 448 KiB (12 instances) L1i: 640 KiB (12 instances) L2: 9 MiB (6 instances) L3: 18 MiB (1 instance) NUMA: NUMA node(s): 1 NUMA node0 CPU(s): 0-15 Vulnerabilities: Itlb multihit: Not affected L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Not affected Retbleed: Not affected Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling, PBRSB-eIBRS SW sequence Srbds: Not affected Tsx async abort: Not affected
[root@ipu ~]# nvme list Node Generic SN Model Namespace Usage Format FW Rev --------------------- --------------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- -------- /dev/nvme0n1 /dev/ng0n1 [REDACTED] WDS200T1X0E-00AFY0 1 2.00 TB / 2.00 TB 512 B + 0 B 614900WD
[root@ipu ~]# df -h -x tmpfs -x devtmpfs Filesystem Size Used Avail Use% Mounted on /dev/dm-0 1.9T 7.0G 1.9T 1% / /dev/dm-0 1.9T 7.0G 1.9T 1% /home /dev/nvme0n1p2 974M 226M 681M 25% /boot /dev/nvme0n1p1 599M 18M 582M 3% /boot/efi
Note that Fedora uses btrfs by default since F33.
Click to show technical details.
[root@ipu ~]# dmidecode -t memory # dmidecode 3.4 Getting SMBIOS data from sysfs. SMBIOS 3.3 present. Handle 0x0018, DMI type 16, 23 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 64 GB Error Information Handle: Not Provided Number Of Devices: 2 Handle 0x0019, DMI type 17, 92 bytes Memory Device Array Handle: 0x0018 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 32 GB Form Factor: SODIMM Set: None Locator: Controller0-ChannelA-DIMM0 Bank Locator: BANK 0 Type: DDR4 Type Detail: Synchronous Speed: 3200 MT/s Manufacturer: Crucial Technology Serial Number: [REDACTED] Asset Tag: 9876543210 Part Number: CT32G4SFD832A.M16FF Rank: 2 Configured Memory Speed: 3200 MT/s Minimum Voltage: Unknown Maximum Voltage: Unknown Configured Voltage: 1.2 V Memory Technology: DRAM Memory Operating Mode Capability: Volatile memory Firmware Version: Not Specified Module Manufacturer ID: Bank 6, Hex 0x9B Module Product ID: Unknown Memory Subsystem Controller Manufacturer ID: Unknown Memory Subsystem Controller Product ID: Unknown Non-Volatile Size: None Volatile Size: 32 GB Cache Size: None Logical Size: None Handle 0x001A, DMI type 17, 92 bytes Memory Device Array Handle: 0x0018 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 32 GB Form Factor: SODIMM Set: None Locator: Controller1-ChannelA-DIMM0 Bank Locator: BANK 0 Type: DDR4 Type Detail: Synchronous Speed: 3200 MT/s Manufacturer: Crucial Technology Serial Number: [REDACTED] Asset Tag: 9876543210 Part Number: CT32G4SFD832A.M16FF Rank: 2 Configured Memory Speed: 3200 MT/s Minimum Voltage: Unknown Maximum Voltage: Unknown Configured Voltage: 1.2 V Memory Technology: DRAM Memory Operating Mode Capability: Volatile memory Firmware Version: Not Specified Module Manufacturer ID: Bank 6, Hex 0x9B Module Product ID: Unknown Memory Subsystem Controller Manufacturer ID: Unknown Memory Subsystem Controller Product ID: Unknown Non-Volatile Size: None Volatile Size: 32 GB Cache Size: None Logical Size: None
[root@ipu ~]# free -h total used free shared buff/cache available Mem: 62Gi 2.5Gi 53Gi 1.7Gi 6.3Gi 57Gi Swap: 8.0Gi 0B 8.0Gi
I went for the following
|1||DisplayPort Expansion Card|
|1||HDMI Expansion Card|
|3||USB-C Expansion Card|
|2||USB-A Expansion Card|
|1||MicroSD Expansion Card|
Insert RAM and NVMe
Is well documented in the Framework Laptop DIY Edition Quick Start Guide. Yes, same guide for Gen11 and 12.
Install Fedora 37 KDE Plasma
Is well documented in Framework’s article Fedora 37 Installation on the Framework Laptop
Although, preferring KDE Plasma, I installed that Spin instead of the default Gnome one.
Yes, of course under Wayland and SecureBoot is on, it’s 2022. :-)
I know I can not hibernate in SecureBoot mode, that’s OK, shutdown and bootup is super snappy. And so far I am fine that suspending eats a bit of battery.
Post installation set-up
Not using Gnome, I skipped the fractional desktop workaround, Plasma has been doing fractional scaling out of the box for quite a while.
Not having a SN750 with older firmware (I have a SN850), I did not bother with the nvme.noacpi=1 workaround.
Neither did I bother with TLP so far, I’ll first see how batter life is out of the box in F37 KDE Plasma.
The module_blacklist=hid_sensor_hub workaround I did put in place (because brightness keys were not working under
I did not bother with a Windows install, Linux is a first class citizen an this hardware, I do not expect to need a legacy OS like Windows 11 for anything (Yes, I’m biased).
I disabled Management Engine (ME) / Active Management Technologies (AMT) and strongly recommend you also change the default password (and potentially disable ME completely).
I set up HW decode as per https://fedoraproject.org/wiki/Firefox_Hardware_acceleration I used
KDE Plasma Configuration
Not much to say really. It all just works out of the box (ootb). Here’s what I configured;
- fingerprint for sudo and screen unlock.
- no fingerprint for initial login. I would not want that. If it was available, I would disable it.
- screen refresh reduced to 48 Hz, not sure this is needed as PSR (see below) works ootb.
I did run a
powertop --calibrate, like I always do for a new battery powered machine.
And I enabled a run of
powertop --auto-tune at boot with
[root@ipu ~]# systemctl enable powertop.service Created symlink /etc/systemd/system/multi-user.target.wants/powertop.service → /usr/lib/systemd/system/powertop.service.
Again, like i have been doing on my machines for quite a few years now and it’s been ages since I needed to work around powertop related issues. With Fedora a first class citizen on this hardware I want to know if something breaks even though I expect it not to.
Panel Self Refresh
Is enabled out of the box, nice.
[root@ipu ~]# cat /sys/kernel/debug/dri/1/i915_edp_psr_status Sink support: yes [0x03] PSR mode: PSR2 enabled Source PSR ctl: enabled [0x80000226] Source PSR status: DEEP_SLEEP [0x80000100] Busy frontbuffer bits: 0x00000000 Frame: PSR2 SU blocks: 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 PSR2 selective fetch: enabled
Potential Battery Life Tuning
If, when travelling regularly again, I find battery life not good enough, then I’ll look into the thread Linux battery life tuning.
Install Packages for Virtualization
Also as usual, just read Getting started with virtualization and Installing virtual operating systems with GNOME Boxes in the Fedora Quick Docs before choosing between the two options.
Are so far few but definitely worth mentioning.
Glossy screens are annoying
This is my first glossy screen on a laptop in decades and I find the reflections highly irritating, even in an office setting. So much in fact that I changed my tune from how bad can a glossy screen be, the Framework laptop has so many things that speak for it to I will never again buy a laptop without a matte screen :-(
And that means a matte screen shipped by the vendor! I failed to locate a completely dust free environment to apply a matte screen protector and gave up after what felt like 20 minutes of trying to apply it without a single dust mote stick between screen and protector.
With enough effort and time, it seems very feasible to apply one cleanly. See the forum thread Matte screen protector. But I expect the vendor to deal with that amount of hassle (dust free, perfectly aligned, …).
After decades of ThinkPads as laptops (X31, X60, X230, X270) I have very hight expectations towards keyboards. I was fully aware that The Framework laptop’s keyboard would feel like a drop in typing quality to me.
In light of this, for me, the Framework laptop’s keyboard is OK for 15 minutes to maximum an hour, but if I ever need to type at it for multiple hours a day, then I will definitely use an external keyboard of high quality.
Mind you this is Meckern auf hohem Niveau as the Germans say. It is definitely not a bad keyboard, it’s just not at ThinkPad typing feel levels.
Conclusion (after 3 months of light use)
As of today (2023-02-21), thanks to mostly working from home, the machine got little use so this conclusion is only of limited value;
- If it was offered with a matte screen I certainly would buy one again.
- But with a glossy screen, nope (nor any other brand with a glossy screen for that matter).
Sure, it’s not perfect, but consumer grade hardware rarely is, hell pretty much nothing ever is.
The fact that the machine can be easily serviced with standard components is highly valued, as is Framework’s attitude towards hardware upgrades for Gen11 owners (not only are upgrade boards readily purchasable, on top of that the price is reasonable and Framework has suggestions plus 3D plans to recycle a Gen11 motherboard)
Also a big big thanks to Framework for their superb documentation. While not quite at the level of ThinkPads (the Hardware Maintenance Manuals to be precise) it is close enough in technical detail and even more palatable in how the information is presented (scan QR code on a piece of Framework hardware, get URL to relevant documentation section without any pay-wall hassle) I wish all laptop vendors offered this level of technical details and ease of access!
I’m hoping that I can buy a matter screen at some point in the future and swap out the only major annoyance I have so far.
Update, May 2023
A matte screen became available. Of course I ordered one immediately as the glossy screen annoyed me massively.
Shipping was fast (took less than a week for the lovely matter screen to make it halfway across the planet). Swapping was quick and is well documents. Well done Framework!
This quickly and for a reasonable prive fixed the biggest gripe I had with this hardwae. Verry happy.
Obviously any future purchases would be off the bat with a matte screen.