[SOLVED] Linux Mint on Framework

I ran into an issue with the Bitlock and Windows 11 fresh install, but turning that off everywhere was the easy work around :slight_smile:

This was an awesome thread and a great guide!

Installed Mint 20.3; running kernel 5.13.0-27-generic. Wifi works out of the box.

To set up fingerprint reader I did this:

sudo apt list --installed | grep fprintd

shows that fprintd v1.90.9-1 IS installed
But libpam-fprintd is NOT installed

So install missing lib:

sudo apt install libpam-fprintd

Now have to enable fingerprint identification in pam

sudo pam-auth-update
(enable fingerprint authentication)

Some useful fprintd commands:

(List enrolled fingerprints for username)
fprintd-list (username)

(Enroll a fingerprint)
(keep touching fingerprint reader until utility returns to command prompt)

(Delete all enrolled fingerprints for the current user)

To enable Hibernate:

Linux Mint on Framework setup guide says disable secure boot before trying to set up Hibernate. F2 on boot gets you into BIOS.

Requires a swap file space at least as large as installed RAM.

There is an automated installation script using SALT (a remote administration and configuration tool) but while SALT may be part of the Ubuntu 20.04 repository, it is apparently not available in Linux Mint repositories.

The manual steps are straightforward though. See for instance

A fresh install of Linux Mint 20.3 has a 2GB swap file already created in the root directory (i.e. “/swapfile”)
This command sequence replaces that with a 16GB swapfile:

sudo swapoff /swapfile  
sudo rm  /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=16K
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Next, get the UUID of the disk for root filesystem (/) with


and file physical_offset of /swapfile with

sudo filefrag -v /swapfile

The number you are looking for is fourth column from the left in the row for ext: 0 under physical_offset.

Edit /etc/default/grub:

(uncomment your choice of cmdline; only choice #1 will hibernate)

# 1. Deep sleep + resume from hibernate to /swapfile: Drains more normally.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem_sleep_default=deep resume=UUID=<<your UUID>> resume_offset=<<your physical_offset>>"

# 2. Deep sleep: Wakes up fast but drains fast.
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem_sleep_default=deep"

# 3. Light sleep: Wakes up fast but drains very fast.

Save the edits then update GRUB and reboot

sudo update-grub
sudo reboot

Add your UUID and physical_offset to /etc/initramfs-tools/conf.d/resume (create new file if none exisits) e.g.:

resume=UUID=(your UUID) resume_offset=(your physical_offset)

Update initramfs and reboot again:

sudo update-initramfs -c -k all
sudo reboot

Manually invoke hibernate to test:

sudo systemctl hibernate

This will confirm that hibernate works.

Now to enable Hibernate button in the shutdown dialog:

(From How to enable Hibernate Mode on Linux Mint | FOSS Linux)

Create file com.ubuntu.enable-hibernate.pkla then add the lines that follow to it. Filename is arbitrary.

sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

NOTE: Any trailing spaces at the end of a line will silently prevent this file from working! Similarly, no blank lines at top of file.

Carefully add these lines to the file:

[Enable hibernate in upower]

[Enable hibernate in logind] 

As soon as you have saved this file you should see the hibernate button appear in the shutdown dialog. You don’t have to reboot.

If that does not work, review your pkla file carefully. The parser is very picky, particularly about trailing whitespace at end of lines. It won’t complain; it will just ignore the line. (grrrr)

All in all, Linux Mint 20.3 is working great on this laptop!


@Erick_W how did you go about turning off the BitLock?

@Zak_Showers If you search for “Manage BitLocker” in the Windows start menu the top result should be the Control Panel BitLocker Manager.

Within that, you should see all your drives, and options to turn BitLocker off.

Linux thought it was on when it was not, so I had to turn BitLocker on, then turn it off for all my drives.

Very handy with the fingerprint reader!

Now just waiting for the UEFI update to be convenient :wink:

1 Like

@dhmsjs Most of that is done automatically by the amazing 20.04 Ubuntu salt-stack script with the exception of the swapfile. Thanks for documenting the swapfile setup, I did that on my own but since it didn’t really affect usage until I wanted to use hibernate didn’t bother documenting it.


I just wanted to thank you for this. This is helpful for more than just Mint users, It is useful for pretty much any Debian derived distro. Using a swap file is better for a couple of reasons, and your post makes it super easy to configure for debian based distro users. Well done!!


Re: CUPS “server-error-internal-error” failure when trying to connect to a network printer on Linux Mint 20.3

This actually applies to Ubuntu 20.04 focal too, but I’m posting here just because, well, I’m using Mint. :slight_smile:

Got that rather unhelpful error message when trying to set up my Lexmark network printer – which installs just fine on Linux Mint 18.3.

This was a subtle one. Lots of online refs to that cryptic error message – some going all the way back to 2004 (!). Also many solutions which all come down to using the “AppSocket/HP Jet Direct” connection where you specify explicitly the printer’s IP address and port 9100. This connection method does work.

But the other options (Driverless IPP and DNS-SD) always fail with that cryptic error message.

Inspecting more detailed messages in /var/log/cups/error_log gives clues about not being able to get the ppd file from the printer itself.

Further investigations suggest the Avahi-daemon is not configured correctly to support dns-sd name resolution (e.g. when network names that have .local in the URL are used to poll the printer).

Apparently the real problem (and a solution) can be found here:

where it states:

nss-mdns only works if the DNS server listed in /etc/resolv.conf returns NXDOMAIN to SOA queries for the “local” domain.[1] Even if systemd-resolved is configured with MulticastDNS=no in resolved.conf(5), it will not return NXDOMAIN for these queries. See systemd issue 21659.

A solution is to use the full mdns NSS module instead of mdns_minimal and create /etc/mdns.allow to allow only the “local” domain. For example:


hosts: mymachines mdns [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns



After editing /etc/nsswitch.conf to replace the existing “mdns4_minimal” with simply “mdns” and then creating a new /etc/mdns.allow file containing only the two lines above, the printer can now be added using all three connection options.

Note that after changing these files, each time I ran

sudo service network-manager restart

to make sure the changed files were re-read.

Renaming mdns.allow to something different restores the broken behavior, pretty much proving to me that systemd issue 21659 is the root cause of this problem.

In Ubuntu 20.04 it is identified as bug 1950850; see here for a good explanation if you care about details:

1 Like

@dhmsjs thanks for the awesome walk through!

:exclamation: Note (for future followers) that I had to add another step at the end of your process before hibernation would work for me. This is step 4 from this guide:


RESUME_PARAMS="resume=UUID=$(findmnt / -o UUID -n) resume_offset=$(sudo filefrag -v /swapfile|awk 'NR==4{gsub(/\./,"");print $4;}') "
if grep resume /etc/default/grub>/dev/null; then echo -e "\nERROR: Hibernation already configured. Remove the existing configuration from /etc/default/grub and add these parameters instead:\n$RESUME_PARAMS";else sudo sed -i "s/GRUB_CMDLINE_LINUX_DEFAULT=\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$RESUME_PARAMS/" /etc/default/grub;fi
sudo update-grub

The first step seems to circumvent the need to lookup the UUID and physical offset yourself.
The second step may throw an error, but should tell you how to resolve it (in my case, I had to change the UUID and physical offset).
After updating grub, reboot, then test to see if it hibernates (you can also ask the computer if it is able to hibernate by running busctl call org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager CanHibernate, to which it should hopefully answer “yes”).


How are you all getting the fingerprint reader to work out of the box? fprintd seems to see my reader okay but it doesn’t actually seem to register any of the times I touch it. I checked back through the posts I used when I originally tried to install Ubuntu last year and noticed that the Mint edge image is installing libfprint 1.90, while all of the Ubuntu fingerprint troubleshooting threads note that 1.94 is the first version that works with the Goodix reader on the Framework. Am I missing a step somewhere?

Everything else on Mint Edge is working great so far, no WiFi issues and I’m going to work on setting up hibernation tomorrow.

1 Like

There’s a giant thread here about building 1.92 from source - I’ll see if I can find it.

Here it is.

It was confirmed earlier in that thread that 1.92 was the minimum required for it to work.

1 Like

Just used the new mintupgrade script to successfully update LM 20.3 on my 11th gen Framework laptop to LM 21!

$ neofetch
             ...-:::::-...                 user@host 
          .-MMMMMMMMMMMMMMM-.              ------------------ 
      .-MMMM`..-:::::::-..`MMMM-.          OS: Linux Mint 21 x86_64 
    .:MMMM.:MMMMMMMMMMMMMMM:.MMMM:.        Host: Laptop A6 
   -MMM-M---MMMMMMMMMMMMMMMMMMM.MMM-       Kernel: 5.15.0-43-generic 
 `:MMM:MM`  :MMMM:....::-...-MMMM:MMM:`    Uptime: 3 mins 
 :MMM:MMM`  :MM:`  ``    ``  `:MMM:MMM:    Packages: 2860 (dpkg) 
.MMM.MMMM`  :MM.  -MM.  .MM-  `MMMM.MMM.   Shell: bash 5.1.16 
:MMM:MMMM`  :MM.  -MM-  .MM:  `MMMM-MMM:   Resolution: 2256x1504 
:MMM:MMMM`  :MM.  -MM-  .MM:  `MMMM:MMM:   DE: Cinnamon 
:MMM:MMMM`  :MM.  -MM-  .MM:  `MMMM-MMM:   WM: Mutter 
.MMM.MMMM`  :MM:--:MM:--:MM:  `MMMM.MMM.   WM Theme: Mint-Y 
 :MMM:MMM-  `-MMMMMMMMMMMM-`  -MMM-MMM:    Theme: Mint-Y [GTK2/3] 
  :MMM:MMM:`                `:MMM:MMM:     Icons: Mint-Y [GTK2/3] 
   .MMM.MMMM:--------------:MMMM.MMM.      Terminal: gnome-terminal 
     '-MMMM.-MMMMMMMMMMMMMMM-.MMMM-'       CPU: 11th Gen Intel i7-1165G7 (8) @  
       '.-MMMM``--:::::--``MMMM-.'         GPU: Intel TigerLake-LP GT2 [Iris Xe 
            '-MMMMMMMMMMMMM-'              Memory: 966MiB / 15787MiB 

This is the first time a major upgrade did not destroy the previous installation. Usually I have to reinstall.

The tool is very thorough though. It will undo any changes you have made in /etc, uninstall any packages you have installed outside of the official repos and remove incompatible PPAs. You can tell it to ignore some packages and leave them though.

It removed the interim 5.15 kernels but installed finalized 5.15 kernels, so no real change there.

Worked well! On to my desktop!

1 Like

Same as @Fraoch my upgrade from Linux Mint 20.3 to 21 went smoothly. I was glad to see my hibernate setup survived the update process. (Hibernate writes the system state to my swap partition)

1 Like

Glad to hear it @Eph!

I did this yesterday on my much more complicated desktop and I got more experience with the migration tool. This is definitely the best migration tool they’ve ever developed and yes, I have a fully updated and fully working desktop system now.

But as I said - pay attention to 3rd party repositories, any customized files in /etc (for packages installed through the repos) and any programs you’ve installed yourself outside of the repos. It will want to uninstall all programs you’ve installed outside of the repos, downgrade any programs where you’ve installed a version more advanced than what’s in the repos, and deactivate any 3rd party repositories or PPAs not compatible with Ubuntu 22.04 “jammy” as opposed to 20.04 “focal”. If you put anything in the exclude list it will respect it, and it will keep 3rd party repos or PPAs in the sources list, just deactivated. Edit them later if you wish.

I am on Mint 21. I noticed that my display configuration is not saved after it resumes from suspend. There’s a bug report

Did anyone encounter this problem?

1 Like

I’m also experiencing this issue on Mint 21. The temporary fixed provided in the comments of that github post works well enough. The two issues I’ve experienced with it have been that if I sudo apt update && sudo apt upgrade -y it will break the fix. Second, this fix prevents my framework from booting into the desktop environment from hibernation. Hibernation works again when I remove the fix but then my fractional scaling/display config resets.

I followed your instructions here, hibernate and suspend seem to work great now (fresh install of linux mint 21 XFCE on 12th gen) , thanks for putting this together! I’m still wondering:

  • Is there a way to test if suspend-then-hibernate works? I’m super new to linux, the only thing I can think to do is suspend laptop, shut lid, wait for two hours, then check system logs
  • what part of those steps tells the system to go from suspend to hibernate after 2 hours? Is this 2 hour window configurable? I wouldn’t want to change it necessarily, just want to make sure I understand what was done

EDIT: questions above were based on my misunderstanding of what the steps in @dhmsjs 's post were accomplishing. The steps described in that post allow hibernation and suspension, and they make both options available in the power menu, but they don’t automatically activate suspend-then-hibernate, I was mixed up because suspend-then-hibernate was mentioned in this post about idle drain.

In addition to the steps in the post quoted above, I followed steps described in the top answer here to enable suspend-then-hibernate on lid close. Will test tonight when I try to benchmark the drain to make sure it works.

I’m still not quite clear on how I can set the system to use suspend-then-hibernate after inactivity, rather than just suspend, I would appreciate any advice on that.

@Devraj I don’t think I can give you a useful answer to your specific questions. I’m still on 20.3 and as far as I remember I configured my suspend/hibernation behavior entirely in the GUI (under Power Settings). If it is plugged in, then it just suspends. If it is on battery only then closing the lid hibernates immediately.

Occasionally it will do some weirdness on resume (e.g. keyboard or trackpad not working right) – particularly if I close the lid and then reopen quickly. But generally if I just force it to re-hibernate by closing the lid again, it comes back okay. Or if that doesn’t work then holding down the power button to force power off will, when I power back up, generally go through the resume from disk process. So it’s like it thinks it has powered down, but actually hasn’t completely finished the process.

@dhmsjs I had edited my comment before I saw your reply, I’m still trying to work out the best approach for my usage habits but a couple things others may find useful:

  • I was getting prompted to authenticate if I let my screen lock before the suspend time (15 minutes on my system) elapsed, following the steps in the top answer here fixed that
  • I tested out using a symlink to make my laptop always suspend-then-hibernate whenever “suspend” is selected in the power-manager GUI as described here. This doesn’t fully fit my usecase as I would like to only suspend-then-hibernate when using battery power and just suspend when on AC power, but it works, in case it helps anyone else

Update: Linux Mint 21.1 “Vera” was released today.

Our friend @Matt_Hartley indicates it runs fine even when it was in beta.

Update instructions from 21.0 should be out in a few days. Usually these upgrades are easy.