16 minute read

I did not think I’d get to this as quickly as I did, but somehow I got to upgrading Linux Mint 21.3 in my uni laptop to Linux Mint 22. In a different timeline I would’ve done the same thing on my red Acer laptop, but, as you may remember from my blog posts, that ain’t happening, so uni laptop it is!

Honestly, most of the upgrade process was fairly straightforward, except for one particular bugbear to do with getting the webcam to work, but I’ll get to that in time.

Upgrades between minor versions (i.e. Mint 21 to Mint 21.1) are fairly simple. Upgrades between major versions, such as the upgrade I carried out yesterday, aren’t, because an update to a new package base involves a lot of uninstalling old packages and reinstalling new ones in its place. See, Linux Mint (at least, for now) bases its operating system on Long-Term Support versions of Ubuntu. For example, Mint 19.x is based on Ubuntu 18.04, Mint 20.x is based on Ubuntu 20.04, Mint 21.x is based on Ubuntu 22.04 and now Mint 22 is based on Ubuntu 24.04. Future minor point releases of Mint 22 (22.1, 22.2 and 22.3) will also all be based on Ubuntu 22.04.

This isn’t the first time I carried out a major Mint upgrade like this. It’s actually the second. I already upgraded my red laptop to Linux Mint 21 from Linux Mint 20.3 back in the day. I actually waited a few months to carry out the upgrade, but this time I only waited a few days. Mint 22 was released on July 25th, and I carried out this upgrade on July 31st, so it was less than a week between Mint 22’s release and me carrying out the upgrade to it.

I also forgot how mintupgrade worked the first time around, when I upgraded my red laptop to Mint 21, so I didn’t have enough material for a blog post about it.

However, I do vaguely remember how mintupgrade worked for me this time around, and this time I hopefully won’t forget it, since this blog will have been published a few days after I carried out the upgrade itself. While I’ve forgotten a considerable quantity of things about my previous experience with mintupgrade, more and more details from back then came back into my mind as I both carried out the upgrade and wrote this blog post afterwards, which I did not think would happen.

And while I was remembering these details, I also realised how similar the upgrade process was. After all, part of Mint’s strength is its familiarity and ease of use, and mintupgrade is no exception. However, I also realised that quite a few things were different this time around.

What was different about this upgrade to the previous major Mint upgrade I carried out

Firstly, as you may have already picked up on from my previous blog posts, I am now using a different laptop to the red one I used to use, namely a Dell Latitude laptop which the KCL Informatics department gave me to borrow until the end of my PhD. Compared to the red one, which went bust last year, this one has 32GB of RAM (compared to 8GB), 12 logical cores (compared to 4) and 1TB NVMe SSD (compared to a 1TB SSD connected through SATA), all of which meant that the upgrade itself went quicker than even I expected. The Mint team said it would take several hours, and on my red laptop it did, indeed, take several hours, but once I commenced the upgrading of the packages themselves it only took me a little over an hour and a half.

One more thing that changed: Me using more Flatpaks. Many more Flatpaks. Which may not seem like it would help much on the surface, but because I ended up using less apt packages for GUI applications as a result of this, I actually ended up having to downgrade less of them. Far less of them! I remember it a bit more clearly now: When I carried out the upgrade the first time around, a lot of packages arose as being orphaned packages. Well, I say a lot. Most if not everything arose as being orphaned, even LibreOffice, which, I should remind you, came preinstalled with Linux Mint! I don’t know how or why that happened (maybe it was an issue with the repositories, maybe it was mintupgrade itself, maybe it was neither), but I somehow resolved it in the end, and I forgot what I did to do so. This time, however, only a select number of packages showed up as being orphaned, and those were mainly packages from external apt repositories, so all I had to do here was uninstall those packages, disable and/or delete the affected repos and then click the “Check again” button. Even then, I only had to delete two external repos, and those were for Microsoft’s distribution of .NET and the official Wine binaries from WineHQ, both of which I could easily re-add after the upgrade was complete (and I did easily do that). So that was a relief, and overall I had a much smoother experience with mintupgrade this time around.

There was another thing that was different about this upgrade: The OEM drivers. Although Wi-Fi can and does work without them, my uni laptop is meant to use Intel’s iwlwifi drivers for Wi-Fi. More importantly, though, the laptop uses an Intel MIPI Camera as its webcam, which is built into the laptop itself but does not use plug-and-play drivers. It requires its own drivers in order to be recognised and function properly. That was the hard part this time around. I think I spent longer trying to get them to work than I spent actually carrying out the upgrade, but I got there in the end, and I also got the iwlwifi drivers installed and working as well, but for the sake of this article, I’ll be focusing on the webcam drivers.

Why I decided to upgrade so early (despite everything that could’ve gone wrong)

Several reasons:

  • I wanted to see if it could be done while still retaining support for the webcam, since I read online and found out that it was somehow possible. After some wrangling, I did indeed manage to get them working (more about that later).
  • I wanted to get it done before September. I have an important thing potentially coming up, namely me hopefully becoming a Teaching Assistant for certain Informatics modules at KCL (wish me luck!), and I didn’t want to leave it too late such that upgrading while those things are happening becomes unnecessary trouble.
  • Mint 22 had a whole new set of changes I was excited for, apart from the new package base, of course:
    • Pipewire as the default sound server. This means I can start using Sonic Pi, which I’ve been meaning to learn, once the upgrade is done – and I did manage to run Sonic Pi once the upgrade was done!
    • A brand spanking new kernel (6.8 LTS). From now on, Mint will ship the new current LTS kernel with each major release, instead of consistently using an older LTS kernel (combined with a newer kernel for EDGE ISOs, which will no longer be needed from now on because of this change).
    • Continuing to retain theming support for all of the preinstalled apps that Linux Mint comes with.
    • A new XApp (the Mint team’s suite of GTK3 apps) for online account support, spurred on by the above bullet point.
    • Thunderbird being packaged as a DEB (as opposed to Ubuntu 24.04 deciding to package it as a Snap).
    • xed displaying the 10 most recently opened files, as opposed to 5 before. It’s a minor quality-of-life improvement, but I’m glad it’s there.
    • Support for DEB packages in the DEB822 format.
    • I’m not as enthusiastic at unverified Flatpaks not showing up on the Software Manager by default, especially as an occasional maintainer of mostly unverified Flatpaks, but I wholeheartedly understand why the Mint team decided to do so. I do think disabling reviews and review scores on unverified Flatpaks is a step too far, though.

The Importance of creating a system snapshot using Timeshift

Of course, if things did go wrong, I needed a backup I could reliably turn to. And, man, this could’ve easily been a section in my previous blog post, but heck, I’ll take any good excuse to praise Timeshift!

Timeshift was originally developed by Tony George (teejee2008/TeejeeTech), and the Linux Mint team included it in a version of the OS. Tony later moved on from its development, so, with his blessing, the Mint team took official stewardship of the project. I’m glad they did, as I found Timeshift to be super efficient with both creating and restoring system snapshots. And Linux Mint is especially upfront with the need to set up system snapshots, as even after installing it, the Welcome Screen highly recommends you set up an automated routine snapshot with it. I currently have it set to take a snapshot every day and keep 3 of them (provided there’s at least 1GB of free storage available to it), deleting the oldest one of the three every time a new snapshot is created. The snapshots are created in the background, so it’s not an intrusive process by any means, though, on Cinnamon at least, the panel (Cinnamon’s equivalent to Windows’s taskbar) shows a handy little widget on the right-hand side to let you know Timeshift is creating a snapshot.

I’ve never used MacOS Recovery, so I don’t have much to say about it here. Of course, almost everyone knows about System Restore on Windows… but no one ever uses it, so I have no idea how it works or how it compares to Timeshift on Linux, and if I ever needed System Restore on Windows, since I never set it up, I’d’ve been capital D Doomed. So thank goodness Timeshift exists and Linux Mint is upfront about using it. In fact, it won’t even let you carry out the upgrade without having access to at least one readily available snapshot. Ideally, you want it to be a snapshot that doesn’t get automatically deleted after a set time period, at least in my opinion, so, before I started the upgrade, I made sure to carry out a manual snapshot of the Linux Mint 21.3 system I had back then. I don’t know when I’ll remove it. Probably not immediately. For now, it’s still on my system, and it’s there when I really need it, especially to browse through.

Hopefully I’ve instilled in you the importance of setting up system restore points on any computer and any operating system you use, just in case something happens to your computer. Since jumping to Mint, I feel safe knowing that Timeshift has my back when I need it. And there were definitely other times when I needed it!

Using mintupgrade

I reckon that mintupgrade took about 1-and-a-half-hours this time around to complete the upgrade. I remember it taking me about 3-4 hours last time (I forgot exactly how long). Having a more efficient computer with more resources definitely helps in most cases!

Just to be clear, this is what I remember going through while using mintupgrade myself. Of course, other people will have had different experiences with it, so please keep that in mind as you read through this section (and this whole article, really).

The first phase: preparing for the upgrade, and also some repository configuration

The first phase was a preparation phase, to see which apt repositories and packages would be kept and which ones mintupgrade would ditch. Some sanity checks were performed by mintupgrade first, for the existence of a Timeshift snapshot, as well as a completely up-to-date system (at the time, anyway), before finally checking the apt cache for possible changes to all the apt repositories currently in use, then checking for foreign packages and packages that would end up orphaned. Any foreign packages (that is, packages from external apt repositories, not from Mint’s and/or Ubuntu’s own repos) would either have to be downgraded to versions housed in Mint’s and/or Ubuntu’s apt repositories or deleted entirely and reinstalled after the upgrade.

The first problem I encountered was with the Wine sources. Mint wanted me to delete the /etc/apt/sources.list.d/winehq-jammy.sources file as the repo contained packages in the DEB822 format, which mintupgrade didn’t support yet but Mint 22 does. I’m not the only one this has happened to, so there might be a solution to it? Eh, ‘twas a minor thing, I guess. I just deleted the repository source file and reinstalled Wine from WineHQ’s noble repository after that.

Next up was seeing which packages would end up being orphaned. These were apt packages from mostly external repositories, which I had way more of back when I upgraded to Mint 21 on that red laptop. I guess me using Flatpaks more helped greatly to alleviate certain burdens with disabling certain external repositories, removing them or even rerouteing them to point to sources intended for Ubuntu 24.04. Well, for most cases, anyway. Sometimes, like with the Dell drivers, thankfully, they stuck with the 22.04 repositories (I noticed as I checked after the upgrade). Thankfully, I could open a new tab in GNOME Terminal and keep it open while the upgrade was happening in its own tab, so I did that in order to uninstall whichever packages needed uninstalling without having to close mintupgrade every single time. I kept that second tab open throughout the upgrade.

The second phase: Simulation, more repository configuration and package downloads

The second was the “simulation” phase, which involved actually downloading the packages themselves and seeing if they can be upgraded properly before actually upgrading them.

Before the upgrade commenced, mintupgrade ran me through a list of packages that were getting (1) held back, (2) installed and/or upgraded and (3) deleted. Any packages held back, mintupgrade says, should not be the case and may indicate some sort of issue. Five packages were held back at first, so I removed those, and checked again. After that, nothing was held back, so I proceeded with the upgrade. Weirdly enough, Celluloid (a media player Mint comes with preinstalled) was held back for some reason, but that got reinstalled during the upgrade, so no problems there.

The third phase: The upgrade itself

Now comes the third and final phase: Carrying out the upgrade itself. This was the one with the least human input, but it was by far the longest, but it was mostly idle time that I could spend staring at the screen. There was one bug I had to correct via mintupgrade, but otherwise I just let mintupgrade do its thing. I forgot what it was now that I had to sort out, but I remember it being a fairly quick fix. I think it had something to do with some packages being orphaned and/or held back again.

Once that was done, all I had to do was uninstall mintupgrade and reboot my PC, and that was the end of it. Or so I thought.

Post-upgrade webcam driver shenanigans

The upgrade process was honestly pretty straightforward. It only took me about an hour, unlike in my old red laptop where it took much longer. And I would have just been done with it… if it weren’t for one thing: The webcam drivers.

The Intel MIPI Camera uses IPU6 drivers. Thankfully, Intel makes their source code public, and at some point they were added to version 6.10 of the kernel, but version 6.5 was what I was using on Linux Mint 21.3, whereas Mint 22 uses kernel 6.8, so right from the get go I wasn’t bargaining on Mint 22 being able to access my webcam straight after the upgrade. Dell doesn’t officially list the laptop I’m using as supporting Ubuntu 24.04 LTS, which is fair enough because the laptop came out before Ubuntu 24.04’s release, but it’s still not fun and certainly not nice to have to take a shot in the dark on this kind of thing when upgrading your OS.

That said, some people did manage to get them working on Ubuntu 24.04 (see the ongoing discussion on this GitHub issue for more information on how others have got their webcams to work), so I figured the same thing should be possible on Mint 22, since they’re effectively using the same package base.

The following things did it together (I tried so many options that I don’t even remember what actually made it fully work):

  • Installing the somerville-tentacool-meta and somerville-lapras-13-meta packages from the oem-projects-meta PPA and the Canonical repository for Dell drivers respectively, then removing them afterwards since they did their job (adding some repos to /etc/apt/sources.list.d) and the packages themselves didn’t need to be there. And rebooting.
  • Installing libcamhal0. And rebooting. This got the webcam recognised, but it didn’t actually get it working.
  • Using the intel-ipu6 PPA (which they usually advise not to use for daily use of the camera, but as of this post’s publishing, it’s been working fine so far) and installing the driver binaries and libraries from there, including libcamhal0 again, as well as libcamhal0-ipu6ep0. And rebooting.
  • Adding myself to the video user group, per this response on Ask Ubuntu. And rebooting.
  • A lot of rebooting.

Needless to say, after all that, opening this testing page and seeing my own face streamed back at me was a huge sigh of relief, in what turned out to be a long 2 hours or so. Well, it may have only been 2 hours or so (I forget exactly how long), but it still felt like a very long time!

Straight after I got the webcam working, I went on other applications to try it out. For some reason, while opening the webcam in VLC (yes, you can do that) I get a noticeable delay between my movement and it being recreated on stream, but in other applications it seemed to run just fine. I tried it on Discord and it worked without the lag, both there and on the testing page I linked to (which was developed by Mozilla). Matter of fact, I just reinstalled the Cheese Flatpak and it worked without me having to add the -d "Intel MIPI Camera" command line argument to it! Nice!

Anything else I have to say about the upgrade

Not much. To be honest, I’m liking the new Mint. Everything still works and it’s a relief to be using the latest LTS package base.

Well, HexChat didn’t uninstall itself and the Matrix chat app wasn’t automatically installed for some reason, but that was a quick fix (I chose to keep HexChat).

And some icons in Nemo and Cinnamon have become pixelated for some reason (mainly to do with symlinks and broken links), so I opened a Linux Mint forum thread about it.

Apart from that, everything else seems to be working fine. I now have Python 3.12 installed instead of Python 3.10, so that’s cool.

After that, I went about my Linux-using business. I also started writing this blog post later that same day! And now it’s out!

And that’s it!

So now I have a working Mint 22 installation on a laptop that doesn’t formally support it. I’m honestly relieved at this point. I didn’t think this day would come this soon. I just thought I’d give it a go, really. I’m glad it worked, though.

I do hope future upgrades between major Mint versions are more hassle-free than this one was. I only have this laptop until 2028 at the latest, after which I’ll need a new personal one to carry on with my work. I’m not worried about that now, though. I still have time before my degree is complete, so for now I’ll be completing my degree. Well, and doing some other things too, like writing this blog!

Thank you very much for reading this article, and until next time. Peace!