[SOLVED] Linux Mint on Framework

Kernel is at 5.14.0-1018 now. Still no issues. And I see 5.14.0-1020 is out, issued January 13th. I just upgraded to it - no issues.

You can find these kernels through Synaptic (apt-get too for the more advanced. :wink:) They’re not available the “normal” way through Update Manager.

You will need:

linux-headers-5.14.0-10XX-oem
linux-image-5.14.0-10XX-oem (OR linux-image-unsigned-5.14.0-10XX-oem)
linux-modules-5.14.0-10XX-oem
linux-oem-5.14-headers-5.14.0-10XX
linux-oem-5.14-tools-5.14.0-10XX
linux-tools-5.14.0-10XX-oem

Just search for “5.14” in Synaptic and you’ll find them all.

Some of these will get pulled in automatically when you select one.

It’s possible some of these are unnecessary, but it’s better to have them and not need them than need them and not have them…

I’m looking to buy a framework laptop and hope to be able to run Linux properly on it. I am thus wondering if anyone can clarify on whether the previous issues with networking still present on Linux Mint 20.3 “Edge”

The networking issues caused by the AX210 without vPro are completely resolved with certain kernel versions which can be updated to by going to the Update Manager and selecting View -> Linux Kernels or searching for linux-image- in Synaptic Package Manager. 20.3 ships with a kernel which does not support the AX210 no vPro, so an update to one of the versions others have stated as working is your best bet. Try the most recent one available (@Fraoch just confirmed that 5.14.0-1020 is working), then work backwards in confirmed working versions if you still experience issues. The caveat is that you will require some way to connect to the internet (a tethered phone hotspot, ethernet hub, etc) in order to upgrade.

2 Likes

We’ve published a guide to installing 20.3 Edge: Mint 20.3 Installation on the Framework Laptop - Framework Guides

The kernel it currently defaults to does seem to work smoothly with AX210 (5.13.0.27-generic after running a system update). It is potentially worth switching to the latest regardless though, as Intel has continued to update AX210 support through at least 5.17.

5 Likes

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)
fprintd-enroll
(keep touching fingerprint reader until utility returns to command prompt)

(Delete all enrolled fingerprints for the current user)
fprintd-delete

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

blkid

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.
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

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]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Enable hibernate in logind] 
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

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!

9 Likes

@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.

2 Likes

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!!

2 Likes

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:
https://wiki.archlinux.org/title/avahi#systemd-resolved_prevents_nss-mdns_from_working

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:

/etc/nsswitch.conf

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

/etc/mdns.allow

.local.
.local

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:

Namely:

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”).

2 Likes

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.