Linux Mint on Framework Laptop 16

UPDATED Jan 29TH 2025: Linux Mint is now a community supported distro for Framework laptop 16.


10 Likes

As a Linux Mint user of over 15 years, I thought I’d share my experience installing LM on a brand new DIY Framework16 over the last couple of days. I had Claude AI follow right through and had it summarise it for me. As you’ll see it was a 15 hr nightmare. If it wasn’t for Claude I wouldn’t be able to pull it all together. Basically it took 2 attempts because the 1st one was led astray by use of a USB-A slot on the right hand side, not left, and a low rent USB stick - things to watch out for. Second attempt took 15 mins! Anyway, here’s the summary with conclusions and some items for Framework to look at at the end.

Framework 16 - Linux Mint 22.3 Installation Journey


Hardware

  • Framework 16 laptop
  • AMD Radeon 780M integrated GPU
  • AMD Radeon RX 7700S discrete GPU (expansion bay module)
  • 2TB WD Black SN850x NVMe SSD
  • 64GB RAM
  • 2x USB-A expansion cards
  • 2.5G Ethernet expansion card

Part 1: Initial Manual Installation (Attempt 1)

UEFI Settings That Needed Changing

  • Secure Boot → Disabled
  • Fast Boot → Disabled
  • Quiet Boot → Disabled
  • New Boot Device Priority → First
  • Linux Audio Compatibility → Linux (this was set first, before anything else)

USB Boot Issues

The Framework 16’s UEFI was extremely reluctant to recognise USB boot drives. Issues encountered included:

  • The UEFI simply not listing the USB drive in the boot menu
  • Fast Boot and Quiet Boot preventing USB detection
  • The original USB drive becoming corrupted after forced shutdowns
  • The UEFI only recognising the USB drive when plugged into a left side USB-A expansion card — right side ports caused compositor crashes and unresponsive desktops in the live session
  • Eventually having to use Boot from File in the UEFI and manually navigating to EFI/boot/bootx64.efi to boot from USB

Graphical Installer Issues

Every attempt to use the standard graphical Mint installer failed:

  • The installer welcome screen loaded but the Continue button never became active
  • The installer body was blank
  • The desktop compositor crashed silently, making the desktop unresponsive
  • An I/O error /var/log/installer/version was traced to the original USB drive being unreliable
  • Switching to a higher quality PNY 250GB USB drive resolved the I/O errors but the graphical installer still failed due to graphics/compositor issues with the AMD GPU

Manual Terminal Installation

With the graphical installer unusable, a full manual installation was performed from the terminal using debootstrap:

  1. Booted live session and immediately switched to text console with Ctrl+Alt+F2
  2. Partitioned the 2TB NVMe manually using parted:
    • 512MB EFI partition (FAT32)
    • 8GB swap partition
    • Remainder as root partition (ext4)
  3. Formatted all three partitions
  4. Mounted partitions and installed base system using debootstrap with Ubuntu Noble as the bootstrap base
  5. Switched package sources to Linux Mint zena repositories
  6. Installed mint-meta-cinnamon desktop
  7. Configured locale, timezone, hostname, hosts file
  8. Created user account
  9. Installed and configured GRUB bootloader
  10. Generated fstab with correct partition UUIDs

Post-Installation Issues (Manual Install)

  • Black screen on boot — caused by a nomodeset typo (nomodset) in the GRUB configuration
  • Emergency mode on boot — caused by incorrect partition UUID in fstab
  • Emergency mode recurring — caused by systemd timing out waiting for EFI and swap partitions; fixed by adding x-systemd.device-timeout=60 to fstab entries
  • NVMe not detected in initramfs — fixed by adding nvme_load=YES to initramfs configuration
  • No display manager — lightdm not installed, had to be installed manually
  • Wrong desktop session — lightdm defaulting to XFCE instead of Cinnamon; fixed by adding user-session=cinnamon to lightdm.conf
  • GRUB dropping to cursor on boot — fixed by correcting EFI boot order using efibootmgr
  • Ubuntu branding — system showed Ubuntu references due to debootstrap bootstrap process
  • Missing applications — minimal install method left only 7 menu sections instead of the standard 10+
  • Update Manager false corrupt warning — caused by empty dpkg_lock_check.sh script; partially investigated but not fully resolved
  • Brightness keys not working — backlight device not exposed to kernel due to nomodeset

Conclusion of Attempt 1

The manual installation produced a working but non-standard system with several unresolved issues. Decision made to wipe and perform a clean fresh installation.


Part 2: Fresh Installation (Attempt 2)

Key Lesson From Attempt 1

The right side USB-A expansion card slots caused compositor crashes in the live session. Using the left side USB-A slot resolved this entirely.

UEFI Settings Applied (After Restore Defaults)

  • Linux Audio Compatibility → Linux
  • Secure Boot → Disabled
  • Boot Timeout → 0 (left at default — Framework do not mention changing this, and it was not needed for the second attempt)

Installation Process

With the USB in the left side USB-A slot, the live session loaded cleanly and the graphical installer worked without any issues. Installation completed in approximately 20 minutes.

  • Language: English UK
  • Keyboard: English UK
  • Multimedia codecs: Installed
  • Installation type: Erase disk and install Linux Mint
  • Home folder encryption: Enabled

Post-Installation Issues (Fresh Install)

Issue 1: Black screen on first boot
The system booted but displayed a black screen after the Mint decal. Fixed by adding nomodeset to GRUB:
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash nomodeset”

Issue 2: Brightness keys not working
The brightness keys do not work with nomodeset enabled because it prevents kernel mode setting which is required for backlight control.

Investigation findings:

  • Without nomodeset: /sys/class/backlight/amdgpu_bl2 is created and systemd manages it correctly, but lightdm crashes with a black screen
  • With nomodeset: System is stable but /sys/class/backlight/ is empty
  • Root cause: The Framework 16 has both an integrated GPU (AMD Radeon 780M) and a discrete GPU expansion bay (AMD Radeon RX 7700S). The internal display is connected to the integrated GPU, but without nomodeset the discrete GPU takes over and reports the internal display as disconnected
  • All display outputs on card1 (discrete GPU) show as disconnected
  • Various kernel parameters tried without success: amdgpu.sg_display=0, amdgpu.dcdebugmask=0x610, radeon.modeset=0, amdgpu.modeset=1
  • Creating an xorg.conf with incorrect BusID caused complete boot failure requiring recovery mode

Current workaround: Use nomodeset for system stability. No GUI method found to adjust brightness — brightness keys remain non-functional.


Hardware Status (Fresh Install)

WiFi: Working
Touchpad: Working
Sound: Working
Volume keys: Working
Ethernet: Working
Bluetooth: Working (icon in system tray)
Brightness keys: NOT WORKING — blocked by nomodeset requirement


Outstanding Issues

  • Brightness keys not functional due to dual GPU conflict
  • nomodeset required for stable display — this is a workaround not a fix

Root Causes Summary

  1. Right side USB-A slots cause live session compositor crashes — always use left side slots
  2. Secure Boot blocks drivers in the live session — must be disabled
  3. Dual GPU configuration (integrated + discrete expansion bay) causes display detection issues without nomodeset
  4. Boot Timeout of 0 prevents USB drive detection — set to 3

Key Configuration

GRUB (/etc/default/grub):
GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash nomodeset”

APT Sources (/etc/apt/sources.list):
deb http://packages.linuxmint.com zena main upstream import
deb http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu noble-security main restricted universe multiverse


Issues To Report To Framework

  1. Right side USB-A expansion card slots cause live session compositor crashes — left side slots must be used for installation
  2. Dual GPU configuration (integrated + discrete expansion bay) causes display detection conflict without nomodeset
  3. Brightness keys non-functional when discrete GPU expansion bay is installed
  4. Internal display reported as disconnected by discrete GPU, preventing proper kernel mode setting
  5. Live session instability with AMD GPU causing graphical installer failures

Total Time

Approximately 15+ hours across two days

1 Like

I installed Mint 21.3 Cinnamon over a year ago, on the NVME2230 internal drive, multiple partitions, 3 Linux OSes, including Mint.

I don’t recall any problems like yours, my FW16 system is of the first release batches, iGPU only.

Same here… installed LM 22.1, upgraded to 22.2 then 22.3 on a FW16 with dGPU and ran it for about year… no glitches or issues on install or daily use.

I have since move to Fedora which I’m really enjoying and will eventually move to Cachy OS which i am currently trialling on another laptop (Alienware).

If you’re curious why i moved away from LM… as stable as it was it was reminding me too much of Windows.

If I’d have happened to put my USB-A socket in the left side and used a decent USB key for the ISO, I’d probably have got to where it is now in 15 mins, then just wondered why the brightness keys don’t work. Just (bad) luck I guess, but a revealing journey nonetheless.

It’s going back anyway as it has a sticky power button, cuts off the the bottom of the bottom line of text on a TTY session, can’t control screen brightness, and worst of all, the touchpad panel top left corner is raised up into a dangerous point. Have refitted it several times, can’t find a reason for it. So not at all happy with it, particularly for the price. These machines aren’t cheap.

Hi @Craig_Stevens, hope FW replace the laptop for you pronto.

1 Like

After another couple of hours I managed to get the screen brightness buttons working. But it means I can’t use the AMD RX 7700S that I’ve paid for, and there’s some system instability. The explanation is courtesy of Claude again.

Framework 16 + Linux Mint 22.3: GPU & Brightness Fix — Addendum

March 2026 — follow-up to previous installation notes


Following on from the original installation notes, this addendum documents further work carried out to resolve the remaining issues: no GPU acceleration, software rendering (llvmpipe), and non-functional brightness keys. The machine has a Framework 16 with the AMD Radeon RX 7700S discrete GPU expansion bay module.


The Problems

  • OpenGL renderer showing as llvmpipe (software rendering) instead of AMD GPU
  • Brightness keys non-functional
  • No backlight control interface (/sys/class/backlight/ empty)
  • amdgpu driver failing with “probe with driver amdgpu failed with error -22” for both GPUs
  • Xorg falling back to DRISWRAST software GL provider

Root Causes Identified

1. Missing RX 7700S Firmware

The RX 7700S (Navi 33) firmware is not included in the linux-firmware package shipped with Ubuntu Noble (version 20240318). The firmware files for this GPU are named gc_11_0_2_* rather than navi33_* in modern kernels, which makes them difficult to find. Neither the kernel.org nor Google kernel firmware mirrors contained these files at time of writing — they were only available from the GitLab kernel firmware repository.

2. simpledrm Conflict

With nomodeset removed, the kernel creates a simple framebuffer (simpledrm) at boot. Xorg starts using this device, but udev then removes it while Xorg is running, causing a black screen. This was visible in the Xorg log as:

removing GPU device... failed to find screen to remove

3. Wrong GPU Selected by Xorg

The Framework 16 has two AMD GPUs — the integrated 890M (c4:00.0) which drives the internal display, and the discrete RX 7700S (c3:00.0). Without an explicit Xorg config, Xorg selects the wrong card, resulting in a black screen even when the driver loads correctly.

4. Discrete GPU Still Failing (error -22)

The discrete RX 7700S continues to fail to probe with error -22 (EINVAL). This appears to be related to the ATPX Hybrid Graphics switching mechanism conflicting with the modern amdgpu driver. This may be a kernel regression in 6.17.0. The integrated 890M works correctly and handles all rendering.


Fixes Applied

Fix 1: Install Missing Firmware

Clone the GitLab kernel firmware repository and copy the gc_11_0_2 files:

git clone https://gitlab.com/kernel-firmware/linux-firmware.git --depth=1
sudo cp linux-firmware/amdgpu/gc_11_0_2_* /lib/firmware/amdgpu/
sudo cp linux-firmware/amdgpu/dcn_3_2_* /lib/firmware/amdgpu/ 2>/dev/null
sudo cp linux-firmware/amdgpu/psp_13_0_7* /lib/firmware/amdgpu/ 2>/dev/null
sudo cp linux-firmware/amdgpu/sdma_6_0_2* /lib/firmware/amdgpu/ 2>/dev/null
sudo cp linux-firmware/amdgpu/vcn_4_0_4* /lib/firmware/amdgpu/ 2>/dev/null
sudo update-initramfs -u
rm -rf ~/linux-firmware

Fix 2: Blacklist simpledrm

Prevents udev from removing the framebuffer device while Xorg is using it:

echo "blacklist simpledrm" | sudo tee /etc/modprobe.d/blacklist-simpledrm.conf
sudo update-initramfs -u

Fix 3: Xorg Config to Force Correct GPU

Create /etc/X11/xorg.conf.d/20-amdgpu.conf with the following content:

Section "Device"
    Identifier "AMD"
    Driver "amdgpu"
    BusID "PCI:196:0:0"
EndSection

Note: BusID PCI:196:0:0 is the decimal equivalent of PCI address c4:00.0 (the integrated GPU which drives the internal display).

GRUB Config

nomodeset is no longer required. Remove it if present:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Results After Fixes

  • OpenGL renderer: AMD Radeon 890M Graphics (radeonsi, gfx1150) — no longer llvmpipe
  • Brightness keys: Working (Fn+F7 / Fn+F8)
  • Brightness slider: Visible in Power Manager > Display tab
  • nomodeset: No longer required
  • System stability: Generally stable

Outstanding Issues

  • Discrete RX 7700S still failing to probe with error -22 — only the integrated 890M is used for rendering
  • Brave browser requires hardware acceleration disabled to prevent occasional input freezes
  • Double LightDM flash on boot — cosmetic, caused by display handoff timing
  • ATPX Hybrid Graphics conflict with amdgpu driver — may be resolved in a future kernel update

Note for Framework

The discrete GPU expansion bay module (RX 7700S) does not work correctly on Linux with the current kernel due to the ATPX hybrid graphics conflict. Users with this expansion bay will need to follow the above workarounds to get basic GPU acceleration working via the integrated GPU. The discrete GPU itself remains unused. This appears to be a driver/kernel issue rather than a hardware fault, and is worth reporting to both Framework and the Linux kernel team with the specific ATPX/error -22 details.

Mate, it just sounds like you had a bad USB drive the first time around, and/or something got corrupted when you made the install drive. Ie, either the drive was unreliable depending on how it was plugged in, or the data on it was corrupted. Either way, the live image didn’t have access to all the right bits to do its thing properly. I’ve had this kind of thing happen before when an ISO corrupted when I paused then resumed the download.

Also, nobody wants to read your AI’s hundred page report. Either post stuff you wrote yourself, or please refrain from posting.

2 Likes

Thanks for the knee-jerk. Not particularly appropriate nor appreciated. Hope your day gets better :wink:

1 Like

I’m actually having the black screen after boot issue and posted about it over on the Mint forums. I too had trouble with the installer over USB A and just got lucky to get through it once (maybe the cause of my problems?) I also had graphical stuttering glitches until I added amdgpu.dcdebugmask=0x12 as a boot parameter.

I can’t figure out the black screen issue, but it seems to happen about 1 second after everything is up. I can see the login screen briefly or the desktop if I auto-login, but after that it’s a black screen. I can swap over to tty1 and startx without an issue, though. I thought it might be related to the GPU issue in your report, but GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" alone doesn’t work for me.

I’m a bit disappointed that I seem to have more issues with AMD cards than Nvidia ones.

https://forums.linuxmint.com/viewtopic.php?p=2809900#p2809900