Framework Laptop 16 (AMD Ryzen 7040 Series) [Merged #1]


---
layout:
  'hcl'
type:
  'Notebook'
hvm:
  'yes'
iommu:
  'yes'
slat:
  'yes'
tpm:
  '2.0'
remap:
  'yes'
brand: |
  Framework
model: |
  Laptop 16 (AMD Ryzen 7040 Series)
bios: |
  04.04
cpu: |
  AMD Ryzen 7 7840HS w/ Radeon 780M Graphics
cpu-short: |
  FIXME
chipset: |
  Advanced Micro Devices, Inc. [AMD] Phoenix Root Complex [1022:14e8]
chipset-short: |
  FIXME
gpu: |
  Advanced Micro Devices, Inc. [AMD/ATI] Navi 33 [Radeon RX 7600/7600 XT/7600M XT/7600S/7700S / PRO W7600] [1002:7480] (rev c1) (prog-if 00 [VGA controller])
  Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev c2) (prog-if 00 [VGA controller])
gpu-short: |
  FIXME
network: |
  MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter [14c3:0616]
memory: |
  32060
scsi: |

nvme: |
  24192L800400         WD_BLACK SN850X 1000GB                   620361WD
usb: |
  8
certified:
  'no'
versions:
  - works:
      'FIXME:yes|no|partial'
    qubes: |
      R4.3.1
    xen: |
      4.19.4
    kernel: |
      6.18.31-1
    remark: |
      FIXME
    credit: |
      FIXAUTHOR
    link: |
      FIXLINK

Remarks

To copy from previous entries I’ve seen (please let me know if more would be helpful), especially this one for comparison/contrast: https://forum.qubes-os.org/t/framework-laptop-16-amd-ryzen-7040-series

Installation:

  • No issues at all.
  • Secure boot is enabled, contrary to many reports/claims I see online.

Outstanding issues:

  • Known hardware limitation: no S3 sleep support, so suspend does not work.
    • I have no sleep mode options in BIOS, and:
      $ cat /sys/power/mem_sleep
      [s2idle]
    • Issue tracking S0ix (and s2idle?) support in general for Qubes: Support for the S0ix sleep state · Issue #6411 · QubesOS/qubes-issues · GitHub
    • Current workaround:
      • Tell logind to shut down instead of sleep:
        • Create sudo vim /etc/systemd/logind.conf (or edit your existing one / add another file to logind.conf.d/*)
          • [Login]
            HandleLidSwitch=poweroff
            HandleLidSwitchExternalPower=lock
            HandleLidSwitchDocked=ignore
            
          • Check /usr/lib/systemd/logind.conf for a template file and instructions, but (from what I hear) do not edit it. (doesn’t break things, just might get overwritten later)

        • Run sudo systemctl restart systemd-logind to apply the changes (or reboot)
          • systemd-analyze cat-config systemd/logind.conf to verify changes
      • Stop XFCE from stealing control and trying to suspend:
        • Set the hidden config to yield to logind: xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/logind-handle-lid-switch -s true
        • Change both power and battery idle/lid actions to “suspend” in the GUI
          • Unsure if this is truly necessary, but it’s widely recommended.
          • I will likely be experimenting with this further to find a minimal set of changes.
  • “Suspend” is everywhere despite zero support for my suspend mode.
    ”Hibernate” is also displayed many places despite zero hibernation support in Qubes (afaict).
    • Honestly this is not great, and probably contributes a lot to general “no S3 support” AMD hardware confusion. There are a lot of snake-oil suggestions out there that cannot possibly work for some of the people recommending it (e.g. using the same hardware as me).
    • I’d be happy to contribute to improving the user experience here, I’m just new to Qubes and don’t know where to start coding.

Resolved issues:

  • Known hardware issue: occasional brief display glitches.
    • Framework 16’s dGPU is known to do this, and it happens in all Linuxes I’ve tried (I have not tried Windows).
    • This resolves it completely for me, in all Linuxes, including Qubes:
      • Add to /etc/default/grub:
        GRUB_CMDLINE_LINUX_DEFAULT=“amdgpu.dcdebugmask=0x410”
      • Regenerate grub:
        sudo grub2-mkconfig -o /boot/efi/EFI/qubes/grub.cfg
  • Built-in microphone “works” but shows noisy near-max-volume input at all times.
    Fixed by changing settings in the taskbar’s microphone “audio mixer” / “volume control” tool:
    • Input Devices tab → reduce input until the sound-meter bar shows a more reasonable range of values.
    • Recording tab → Change from “Monitor of Family 17h…” to “Family 17h…”.
      You should see the same sound-meter bar behavior as on Input Devices tab.
      • Changing volume here does change the recorded volume, but the sound-meter bar does not change.
        Run Audacity or something to see the sound levels to adjust it by hand.

Verified working:

  • Wifi
  • Keyboard
  • Trackpad
  • Function keys
  • Speaker output
  • Display output (no tearing, 165hz selected by default)
    • Clearly supports the full 165hz and most things look great, but dragging non-dom0 windows stutters a bit for several seconds before it becomes smooth. Still well above 60hz while stuttering though.
  • Webcam
  • Microphone (see above)
  • GPU passthrough (so far only tested without external display)
    • Caution: this might cause suspend attempts to be unrecoverable and need force power-off, so you probably want to switch to poweroff or ignore instead.
      • Not fully confirmed to be related, but I’m like… 70% confident?
    • Changed in grub:
      GRUB_CMDLINE_LINUX_DEFAULT=”rd.drive.pre=xen-pciback xen-pciback.hide=(0000:03:00.0)(0000:03:00.1)” (plus above amdgpu) as suggested by GitHub - david-cant-code/Framework-16-QubesOS-Gaming-GPU-Passthrough-Guide: A step by step guide to pass the 7700s GPU module on a Framework 16 laptop through to create a gaming HVM qube in QubesOS · GitHub
      • This guide works to install and run a standalone VM with a normal OS with GPU access, though the displayed(?) framerate is low
        • Display settings only allow up to 59.x hz, not 165 (possibly due to OS choice), and anecdotally it lags when dragging windows inside the full-VM-desktop window.
    • With xen-pciback above, and the rest from Secure AI Inference with Qubes OS: A GPU Passthrough & Ollama Guide works to show GUI windows like normal with GPU acceleration (still low displayed framerate though)
      • This did not work with debian-13-xfce (and iirc fedora-43-xfce and fedora-44-xfce).
        • Somewhat expected, as many guides I found said it required installing a “normal” OS, like Fedora from an ISO.
        • Each VM would work for its initial boot only, with GPU acceleration, but after restarting them all GUI apps crash roughly immediately.
      • Game framerate is rather low, e.g. 1024x768 gets 10-20hz.
        • Reminder: no external display! This is just displayed inside a normal window. I do not yet know if an external display will improve this.
        • No luck with VirtualGL, but also I’m probably missing some obvious things as I am not familiar with it.
      • I’ll be fiddling with passthrough to try to find out what is truly necessary, and if xen-pciback vs hide_pci changes things.
        • Feel free to suggest experiments! I’m happy to be a guinea pig.

Battery:

Feels similar to the other similar Framework 16 thread, around 2 hours. No real experiment yet though.

Is there a way to change my power-governor mode? I’d love to compare with a “low” mode.

Miscellaneous: (to contrast with the other Framework 16 thread)

  • Fans behave like I would expect / exactly like other well-behaving Linuxes:
    • When doing as little as possible and fully idle for a while and cool, they fully turn off.
    • Start any qube and they’ll spin quietly for a bit, as the case heats up somewhat.
    • Do anything significant (like booting up) and they’re easily audible, almost certainly going well into “loud” if stress-testing / gaming / etc but not yet experienced.
      • The dGPU fans move a LOT of air when running hot.
    • Overall definitely heats up more than other Linuxes with normal use, e.g. “idle personal VM with an idle web browser open” never stops the fans but they are inaudible unless extremely close.
      • Fully expected, likely the cause of ~2h battery.

Attachments

Pasted above as “new users can not upload attachments”.
I also have a -s cpio report available from the same command, but cannot upload it currently.

Qubes-HCL-Framework-Laptop_16__AMD_Ryzen_7040_Series_-20260728-154350.yml (1.1 KB)

Qubes-HCL-Framework-Laptop_16__AMD_Ryzen_7040_Series_-20260728-154350.cpio.gz (12.8 KB)

2 Likes

A post was merged into an existing topic: Framework Laptop 16 (AMD Ryzen 7040 Series)