Framework Laptop 13 (13th Gen Intel Core)

---
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-1360P
cpu-short: |
  FIXME
chipset: |
  Intel Corporation Device [8086:a707]
chipset-short: |
  FIXME
gpu: |
  Intel Corporation Device [8086:a7a0] (rev 04) (prog-if 00 [VGA controller])
gpu-short: |
  FIXME
network: |
  Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz (rev 1a)
memory: |
  32475
scsi: |

usb: |
  4
versions:

- works:
    'FIXME:yes|no|partial'
  qubes: |
    R4.1.2
  xen: |
    4.14.5
  kernel: |
    6.3.9-1
  remark: |
    FIXME
  credit: |
    FIXAUTHOR
  link: |
    FIXLINK
---

Remarks

QubesOS Version

4.1.2

dom0 Kernel

6.1.35-1.fc32

  • Requires disabling Secure Boot in the BIOS
  • Requires setting time and date in BIOS to match UTC/GMT

If there is something missing from the section below, it is assumed to be working:

State During and Immediately After Installation

  • Screen tearing/slow display refresh rate (depends on how “busy” the window manager is) (see fix below)
  • Brightness hotkeys not working (see temporary workaround below)
  • Suspend/resume completely broken (does not come back from apparent low-power state and must be power-cycled) (see fix below)
  • Terrible battery life (4 hours, doing light tasks)

Known Fixes

The following has been tested on a new installation, with the commands being run exactly as shown:

SSL Issues

  • Set BIOS time and date to match UTC/GMT

Screen tearing

From dom0:

sudo qubes-dom0-update
sudo qubes-dom0-update kernel-latest

Suspend / Resume

From dom0 - feel free to use nano, if preferred:

sudo vim /etc/default/grub
  • Use the following grub configuration [note the addition of module_blacklist=hid_sensor_hub (for brightness keys) and nvme.noacpi=1 (for better efficiency of power for NVME drives]:
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX rd.qubes.hide_all_usb mem_sleep_default=deep module_blacklist=hid_sensor_hub nvme.noacpi=1"
  • Apply the GRUB config changes (from dom0):
sudo grub2-mkconfig -o /boot/efi/EFI/qubes/grub.cfg
sudo dracut -f
  • Reboot
  • Verify the arg shows up and is applied (from dom0):
sudo cat /etc/default/grub
placeholder root=/dev/mapper/qubes_dom0-root ro rd.luks.uuid=luks-39f8de13-ee6d-46fb-9f15-975f32c850c8 rd.lvm.lv=qubes_dom0/root rd.lvm.lv=qubes_dom0/swap plymouth.ignore-serial-consoles rd.driver.pre=btrfs rhgb quiet rd.qubes.hide_all_usb mem_sleep_default=deep
  • Done

Next Steps

If something is in this section, it means the steps did not work.

Fix Poor Battery Life Performance

Steps Taken

None, yet.

Fix Brightness Hotkeys

Steps Taken

From dom0:

sudo qubes-dom-0-update brightnessctl

The following commands can be mapped to change brightness (from dom0):

brightnessctl set +5%
brightnessctl set 5%-
XFCE

With this knowledge, in XFCE, in System Tools => Settings Manager => Application Shortcuts, the above commands can be Add ed. However, the brightness hotkeys still are not recognized (even after toggling Handle display brightness keys in Power Manager). So, I just use F8 and F7, respectively for now.

Attachments

9 Likes

Great that you describe solutions to the issue you have. Thanks.

1 Like
---
layout:
  'hcl'
type:
  'Notebook'
hvm:
  'yes'
iommu:
  'yes'
slat:
  'yes'
tpm:
  '2.0'
remap:
  'yes'
brand: |
  Framework
model: |
  Laptop (13th Gen Intel Core)
bios: |
  03.03
cpu: |
  13th Gen Intel(R) Core(TM) i5-1340P
cpu-short: |
  FIXME
chipset: |
  Intel Corporation Device [8086:a707]
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:
      'yes'
    qubes: |
      4.2.0-alpha
    xen: |
      4.17.1
    kernel: |
      6.3.2-1
    remark: |
      FIXME
    credit: |
      b34
    link: |
      FIXLINK

---

Remarks

Similar results for Qubes 4.2rc1.

Remarks:

  • Installation with latest kernel goes completely smooth - no screen issues.
  • Had to disable secure boot in BIOS.
  • Camera also works.
  • Battery life appears to be poor as @singlerider reported.
  • Same issue with brightness keys as @singlerider reported.

Small modification to fix sleep (thanks to @idempotent):

  1. sudo nano /etc/default/grub in dom0
  2. Add mem_sleep_default=deep to the end of GRUB_CMDLINE_LINUX
  3. Run sudo grub2-mkconfig -o /book/grub2/grub.cfg

I have not been able to get an external screen to work with the Framework HDMI module. See https://forum.qubes-os.org/t/usb-external-display-framework-laptop/20068.

Attachments

3 Likes

The last time I tested 4.2rc1 (on another laptop), the machine would hard lock randomly, all the time, sometimes even on the hard disk decryption screen. I’m intentionally avoiding it, as the new features are not compelling enough to risk that experience, again.

1 Like

Thank you for the update!
I haven’t encountered any problems yet, but I will update if I experience the same issues.
I did run into issues when I tried to install it without the latest kernel option immediately in the installation, but I didn’t investigate.

1 Like

Thanks for this. Very helpful!

1 Like

Solved!

For some reason, I can’t edit my original post, anymore. But, if you want your Framework running perfectly, simply follow the instructions above, using the following grub configuration (this is the last line in my post above:

GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX rd.qubes.hide_all_usb mem_sleep_default=deep module_blacklist=hid_sensor_hub nvme.noacpi=1"

Note the addition of module_blacklist=hid_sensor_hub (for brightness keys) and nvme.noacpi=1 (for better efficiency of power for NVME drives).

2 Likes

Thank you @singlerider for your HCL report, which is online now!

1 Like

Thank you @b34 for your HCL report, which is online now!

1 Like

How did you checked the difference? How did you know you have a problem with NVMe in the first place?

2 Likes

I just posted up a sort of guide for Framework Laptop users specifically on setting up and tweaking certain aspects of Qubes that I have needed to in order to get everything working exactly I desired. Hopefully it will be helpful to everyone. I am using an 11th gen Framework, but the hardware is nearly the same as the latest versions, so it should still be quite relevant. I will probably make a post about it as well separately to see if there might be a place to put general guides like that.

1 Like

How many USB controllers do you have? What devices and physical USB connectors do they belong?

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?

1 Like

Thanks for this helpful guide. I followed the instructions (with different grub.cfg path for 4.2) and have suspend and resume working and brightness keys.

I did notice that my ethernet card stopped working after suspend/resume. This happen to anyone else? I haven’t had time to debug yet but will report back once I do.

1 Like

Hi,

A few updates. I used the HDMI expansion card and it worked fine with no issues. The ethernet expansion card is still not working after suspend/resume. Anyone have suggestions on how I can diagnose this? I suspect that it might not be specific to the framework laptop and be an issue with usb ethernet adapters more generally - but that is just a suspicion. I’m using 4.2-RC3.

Thanks.

1 Like

I have not been able to install 4.2.0 RC3 nor RC4 (rc1 worked fine) on a Framework 13th Gen.
I get an error message during the installation that sys-net can’t start, and then when I try to use Qubes after the installation, no appVM works (other than dom0). They all fail with
The libxl-driver log says: stubdom_xswait_cb: domain 5: stubdom 6 for 5 startup: startup timed out.

1 Like

I’ve experienced regression as well - though I can’t tell if it was simply the result of updating or if I messed something up. Right now my wifi and ethernet don’t work. Planning to do try a clean install once RC5 is out.

1 Like
---
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

---

Remarks

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.

Attachments

3 Likes

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.

4 Likes

@flavio please feel free to also include my HCL report: Framework Laptop 13 (13th Gen Intel Core) - #17 by leee

I’m not sure what’s important to note in the remarks. Feel free to include any of the following, but they’re mostly optimizations/QoL improvements to get to a “flawlessly” working system. So perhaps unnecessary.

  • brightness hotkeys don’t work out of the box due to conflicting modules preempting each other. Framework recommends blacklisting/unloading hid-sensor-hub.
  • USB ethernet adapters not working, haven’t investigated more.
  • “s2idle” or “freeze” (S0 suspend to idle) is the default suspend mode even though ACPI PM identifies S3 as available. Maybe ACPI table info issue? Anyways usual frobbing of mem_sleep_default does the trick to get “deep” (S3 suspend to RAM) sleep. Also adding nvme.noacpi=1 may help but I haven’t quantified any testing. For what it’s worth, I don’t think any of the SSDs Framework sells have known bad ACPI implementations.

Something notable (at least to me) is the keyboard is exposed to the host as PS/2. The mouse is also exposed as {PS/2 mouse, i2c mouse, i2c touchpad}.


One suggestion - a lot of issues can be CPU arch and generation specific. The only common framework about Frameworks (haha) are the physical dimensions. The underlying mobos are unique. That also includes different 13" and 16" mobo SKUs, since the latter not only has different dims but also needs to support PCIe expansion modules (like GPUs).

My suggestion is to follow Framework’s own mainboard listings https://frame.work/marketplace/mainboards and expand on model name like so:

  • Laptop 13 (AMD 7040 Series)
  • Laptop 13 (Intel 11th Gen)
  • Laptop 13 (Intel 12th Gen)
  • Laptop 13 (Intel 13th Gen)
  • Laptop 16 (AMD 7040 Series)

So the model of @moonlitOrca’s report should be Laptop 13 (Intel 11th Gen). Mine should be Laptop 13 (Intel 13th Gen).

For this reason I also would suggest having separate forum posts.

2 Likes

@leee, I just submitted another pull request with your report. Based on what you said, it does work save for minor issues with brightness control and ethernet port, which I noted in the remarks.

Best,

Flavio

4 Likes