Framework Laptop 13 (12th Gen Intel CPU) 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.
Summary
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.
Hardware Info
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.
Hardware Summary
- 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
BIOS Version
As Shipped
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
- CVE-2022-35893
- CVE-2022-35894
- CVE-2022-35895
- CVE-2022-35896
- CVE-2022-35897
- CVE-2022-36337
- CVE-2022-36338
- CVE-2022-35408
- CVE-2022-36448
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.
CPU
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
Storage
[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.
Memory
2x Crucial 32GB DDR4-3200 SODIMM (CT32G4SFD832A.M16FF)
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
Expansion Cards
I went for the following
count | description |
---|---|
1 | DisplayPort Expansion Card |
1 | HDMI Expansion Card |
3 | USB-C Expansion Card |
2 | USB-A Expansion Card |
1 | MicroSD Expansion Card |
Initial Bring-up
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
6.0.11-300.fc37.x86_64
). -
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
intel-media-driver
.
Usage Notes
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.
powerop
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.
Let-downs
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, …).
Keyboard
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.