Framework - Laptop 13 (Intel 13th Gen)

Submitting a working report for another Intel Raptor Lake Framework - but with Qubes 4.2.0 out of the box.

Before install:

  • out of own volition, not influenced by Qubes
    • kept AMT/vPro disabled (but interested in testing at some point for dom0 remote control which has some use cases, particularly in testing infrastructure)
    • BIOS TZ set to Etc/UTC
  • influenced by Qubes
    • Secure Boot disabled (but interested in trying to select the Qubes EFI executable as trusted for execution, or add to keklist+esldb alongside other installs)

After install:

Only light testing performed, happy to try specific things upon request.

  • working fine
    • wifi
    • speaker audio
    • volume hotkeys (F1/F2/F3)
    • lock from inactivity to xscreensaver
    • close lid to suspend and resume on open (didn’t really look at sleep state, just “does it wake up again from sleep”)
    • Mouse and Touchpad: hardware exposes three different kinds of devices from the underlying touchpad: a Mouse (was default for me), Touchpad, and “ImExPS/2 Generic Explorer Mouse” which is a whole Insyde BIOS thing. The Touchpad device is correctly identified as a touchpad (which gives me tap to click)
    • USB/HDMI adapter: display goes into partial mirror in the start, but full mirror/extend works fine. USB mouse works. USB keyboard works after configuring a qubes.InputKeyboard policy.
  • does not work out of the box
    • brightness hotkeys as reported
    • USB ethernet (in this case, a RTL8153 that sys-net seems to identify and successfully load but can’t seem to DHCP. Further investigation required.)

What happens is you connect USB controller to some wrong qube (that does not redirect input to dom0), will keyboard and mouse still work like in case of PS/2 keyboard/mouse?

Keyboard and PS/2 mouse are via i8042 (PS/2 / IBM AT) controller. Mouse and Touchpad is also via i2c_designware. In other words, the built-in keyboard/touchpad are not via USB.

Qubes-HCL-Framework-Laptop__13th_Gen_Intel_Core_-20231227-195631.yml as follows:

---
layout:
  'hcl'
type:
  'Notebook'
hvm:
  'yes'
iommu:
  'yes'
slat:
  'yes'
tpm:
  'unknown'
remap:
  'yes'
brand: |
  Framework
model: |
  Laptop (13th Gen Intel Core)
bios: |
  03.04
cpu: |
  13th Gen Intel(R) Core(TM) i7-1370P
cpu-short: |
  FIXME
chipset: |
  Intel Corporation Device [8086:a706]
chipset-short: |
  FIXME
gpu: |
  Intel Corporation Raptor Lake-P [Iris Xe Graphics] [8086:a7a0] (rev 04) (prog-if 00 [VGA controller])
gpu-short: |
  FIXME
network: |
  Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725] (rev 1a)
memory: |
  65243
scsi: |

usb: |
  4
certified:
  'no'
versions:
  - works:
      'FIXME:yes|no|partial'
    qubes: |
      R4.2.0
    xen: |
      4.17.2
    kernel: |
      6.1.62-1
    remark: |
      FIXME
    credit: |
      FIXAUTHOR
    link: |
      FIXLINK
1 Like

Adding a note about the following:

  • brightness hotkeys: this is indeed a libinput/hid_sensor_hub comorbidities as described here [SOLVED-GUIDE] 12th gen not sending XF86MonBrightnessUp / Down - Linux - Framework Community - blacklisting or unloading is the Framework recommended workaround until they probably write their own thing?
  • suspend: kernel reports ACPI PM supports S0 S3 S5, and /sys/power/mem_sleep reports [s2idle] deep - but looks like we were only getting to PM: suspend entry (s2idle). Used the suggested mem_sleep_default=deep nvme.noacpi=1 to get to PM: suspend entry (deep).

I didn’t use rd.qubes.hide_all_usb, opting with a qubes.InputKeyboard policy as previously mentioned.


I don’t believe these issues are blockers for nominating Framework 13" Intel laptops as community-recommended computers. Going through the criteria for inclusion:

  • Qubes installer works without any workarounds.
  • Graphics, wireless networking, and audio work out of the box (other than new users learning to attach the mic to a qube of choice).
  • 16 GB is possible, prebuilts come in 16 and 32G configs, DIY orders get you 64G.
  • Keyboard and touchpad are connected via PS/2 even though this is a laptop. The touchpad is also enumerated over i2c.
  • The device is readily available to be purchased. I’ve ordered 4 Framework 13s so far, and in every case I have pushed button received bacon received laptop stateside dropshipped from Taiwan in 3 days or less.

Looking forward to additional reports which would be the final barrier to add to the community-recommended list.

2 Likes

@leee
Thank you for HCL and additional information. Can you please fill the detailed report based on this template:

Example of user providing the answers is here. The more information the better, it may be helpful to other users, thank you.

@balko I’d be happy to. Some questions beforehand:

  • Ethernet: Framework sells GBASE-T modules, but I didn’t order any. I did test other USB ethernet adapters and was having trouble but haven’t investigated further. Since this is a laptop, should the Ethernet items be marked “not working” or “N/A” is acceptable?
  • PassMark: are you looking for people to run the test (in dom0? in a qube?) or just copy-paste a score from PassMark’s website?
  • USB controllers: are you just looking for a lsusb -t here?
  • Internal TPM: anything specific you’re looking for? Or just look for the device in device files, kernel, sysfs, whatever?

If I don’t get to this tomorrow I likely won’t get to it until the new year.

If you model does not have Ethernet, but other models do, you can write either N/A or Not tested. USB-Ethernet adapters is completely different thing, as they are not a part of the laptop.
BTW: I used USB Ethernet dongle with success, even was attaching it to Windows qube and it worked well.

Just copy the CPU score and a link to the result. No need to run anything.

Well, this part is not formalized well yet. The main purpose is to understand if there is a spare USB controller connected to one or more USB ports that is preferably not used by keyboard/touchpad. It is the best case. So, the info I am looking for - how many USB controllers, what they correspond to (USB physical ports) and what internal devices.

No, I personally do not care much about it. I just thought it can be useful for some, especially in Qubes OS, so I added it to the list. So, report what you know.

1 Like

Thanks @balko. I hope this helps.

Installation

  • Any problems with installation: none, disable SecureBoot beforehand
  • Was latest kernel required?: no, R4.2.0 installed out of the box
  • Were some additional kernel options required?: additional boot parameters were not needed to have a successful install

Basic Input

  • Keyboard: works, PS/2
  • External USB mouse: works, usual sys-usb allow applies
  • Touch-pad: works, shows up as 3 devices: PS/2 mouse, i2c mouse, i2c touchpad
  • Touch-pad supports “tap as click” and scrolling with 2 fingers works: 2 finger scroll works as PS/2 and i2c touchpad, touchpad settings available after switching to i2c touchpad in settings
  • Display brightness change shortcuts: does not work out of the box, see above on Framework-recommended workaround (blacklist/unload a module)
  • Sound volume shortcuts: works
  • Keyboard led and keyboard brightness change shortcuts: works, but this is probably a standalone function and not dependent on host OS
  • Output of xinput --list from terminal of dom0: but my clean dom0
[admin@dom0 ~]$ xinput --list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ FRMW0001:00 32AC:0006 Consumer Control  	id=9	[slave  pointer  (2)]
⎜   ↳ PIXA3854:00 093A:0274 Mouse             	id=10	[slave  pointer  (2)]
⎜   ↳ PIXA3854:00 093A:0274 Touchpad          	id=11	[slave  pointer  (2)]
⎜   ↳ ImExPS/2 Generic Explorer Mouse         	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Video Bus                               	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳ FRMW0001:00 32AC:0006 Wireless Radio Control	id=8	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ FRMW0001:00 32AC:0006 Consumer Control  	id=14	[slave  keyboard (3)]
  • Check if keyboard and/or touchpad is PS/2 connected (how to check): both available as PS/2, but touchpad also available via i2c. Paused sys-usb to entertain you though, keyboard and touchpad work fine as expected.

Internet and bluetooth

  • Ethernet cable connection - works out of the box or actions were required?: not tested - Framework sells USB Ethernet expansion cards but do not have any for this test
  • Ethernet cable connection - speed: not tested
  • Wifi connection - works out of the box or actions were required?: works
  • Wifi connection - speed, is reliable over the time?: works, reliable, works with WPA3 networks, PHY negotiated with 802.11ax up to 1200 MBit/s but only seeing 600-700 Mbps speedtests. Could just be resource limitation of the qube, or local network/clearnet weather.
  • Bluetooth - works out of the box or actions were required?: no. Intel AX210 showed up as USB device in sys-usb, and in my mind sys-usb should handle Bluetooth. So I get the qube online to install blueman, enable/start the bluetooth service, and try to coax blueman-applet to show up but doesn’t work. I can connect the Bluetooth card to sys-net which already has blueman installed, just not enabled, and running blueman-applet there does get me a working tray icon. I connect a mouse but get denied input policy. Could use some help with this one, @moonlitOrca any thoughts?
  • Bluetooth - shows devices, connection process works, sound output or copying works: device search works, more work required to get Bluetooth working.

Suspend

  • Suspend/Resume works - works out of the box or actions were required?: s2idle suspend/resume works out of the box. deep suspend requires some boot parameter work.
  • Does resume breaks WiFi, if it does, how to recover it?: works
  • Does resume breaks Bluetooth, if it does, how to recover it?: not tested

Video [increase VCPU to the qube before test]

  • Fullscreen and windowed video playback of youtube - 720p/1080p/2K/4K in Firefox. Does it drop frames?: 4k@60 vp9 and 720@30 av1 video: about 10-20 dropped frames/half second fullscreen. It’s alright but could be better. This is on battery.
  • Video file playback of file using mpv/mplayer/smplayer - 1080p? Higher resolutions and bitrates?: did not test
  • Multiple displays configuration works (using available DP/Thunderbolt, HDMI or other video ports: only tested USB HDMI, works

Audio

  • Speakers (sound playback) (was sys-audio used?): works out of the box, speakers aren’t the greatest but serviceable.
  • Head-phones via 3.5" jack (works, automatically turns off speakers?): works out of the box, clicks as if turning off when no activity for a bit
  • Sound output via HDMI: did not test
  • Audio-optical (S/PDIF) output: N/A

Fans

  • Are fans silent on idle?: yes
  • Are fans noisier than on Windows/Linux?. If they are, was thankfan or similar software tried?: no, equally silent on idle

The fan on this gets loud under max load though, at least under Windows. Video playback test was moving some air but still quiet.

Other

  • Have you tried running Windows 10 HVM qubes?: no
  • Does CPU boost seem to be working properly?: xenpm get-cpufreq-para reports turbo enabled on all cores. Haven’t tested beyond that.

Specs:

2 Likes

It’s recommended for security reasons to create separate sys-usb qubes for each USB controller (if you have more than one), because it provides more isolation. If you do this, you will be able to see, to which qube your devices go, and in this way to find out which ports belong to which controllers.

1 Like

@leee thank you for such detailed reports.

Well, does the BIOS/EFI even has S3 sleep option?

There is not, but the hw/fw does support it. As noted earlier, just requires mem_sleep_default=deep explicitly set.

I wonder how things will go as we enter the new age of S0 (ix) sleep.

Did not get it. In BIOS/EFI do you have an option to select S3 as a suspend/sleep mode? It can be called list Linux (S3) or something.
Like some Thinkpads do.

  1. There is no such option.
  2. It is not necessary because S3 sleep is supported. The kernel just needs to be configured for it with mem_sleep_default=deep.

Does that help?

Or, so it works but BIOS does not have this switch. I was not aware that it is now possible on modern Intel gens. OK, thank you.