Pop!_OS 22.04 - Video and Power Problems Solved

By Brad Lazaruk, Wed 23 April 2025, modified Wed 23 April 2025, in category Linux workstation build and maintenance

Arcmenu, Dash to Dock, de crash, docking, gnome, jittery video, lagging video, Linux, Pop!_OS, undocking

When I first moved to Linux it was with Pop!_OS 22.04 and the only thing that really brought me grief was that I had a lot of problems with the video and the docking station. It took a while for me to sort out what I could and could not do without crashing the system. I was unable to put the system into standby or let the external monitors be powered off, as that would most likely crash the system. I had to install a screensaver to darken the monitors, and I had to remember to suspend the system before docking or undocking. Even then there was a 20-25% chance that the system would hang on restore. Very annoying.

And there there was an annoying jitter on the external monitors; almost like the system paused from time to time for a quarter of a second or so.

Eventually I decided I needed to resolve this, instead of working around it. The pausing of the system before switching the video I could deal with. But the jitter was unacceptable. It was just distracting enough that I couldn’t get anything done when using the external monitors.

So I began troubleshooting

Forcing the system to run in high performance mode didn’t solve it. Neither did forcing to run with the discrete GPU on. However, several times I thought I may have solved the problem with one of those choices because the jitter disappeared on the laptop panel. Later I discovered it had re-appeared … and then I realised that it only occurred when I had the system plugged into the docking station and the external monitors enabled.

I wondered if this was then perhaps related to the discrete video card in the machine, as that would be in play if I were using the docking station through the USB-C port. So I switched the system to use the integrated video only and while I forgot to take any notes on whether or not that solved the jitter problem it did of course limit the usage of my external monitors such that I quickly gave it up. I need both the external monitors at their proper resolution, and the onboard graphics card was just too strained to do that alone.

I began to suspect from online posts that the root cause may be one of my GNOME extensions. So I re-enabled the system to hybrid video mode, and tried disabling GNOME extensions. I didn’t find any improved performance from this, nor did I stop the jittering in the video on the external monitors. In hindsight, likely I did not test disabling the extension that turned out to be part of the problem.

I moved on to testing older video drivers. The version I was running were current at the time, 565, and since the OS itself was two years old I figured perhaps they just were not compatible anymore. But after fiddling around with downgrading to several versions, the problem remained.

After restoring the video drivers to the current version I tried bypassing some of the cables and adapters that I was using with the dock. Since the laptop has Thunderbolt and USB-C video and HDMI ports I tried plugging the monitors directly into those ports. But, the problems remained, no matter which combination I was using and even after rebooting.

I went back out for some more research and I came across this: https://github.com/ventureoo/nvidia-tweaks, which is not just a list of tweaks that have been suggested to squeeze the most performance out of NVIDIA GPUs on Linux, but a very well written explainer of those tweaks as well.

There is also another set of tweaks for NVENC and NvFBC patches which can be found here: https://github.com/keylase/nvidia-patch?tab=readme-ov-file.

So, content in the knowledge that I had found actual help from well researched sources, I installed all the hacks and patches from both repos, and rebooted the system, expecting all my problems to have been solved.

Of course, they were not solved. All those hacks made no appreciable difference, and surely did not solve the jittery video problem I was having.

Note here that I committed a troubleshooting sin and I did not back out the changes that had not solved the problem. That’ll be important later. 8-)

I went back to the idea of the GNOME extensions being the problem. Rather than disabling and testing them, I started searching for similar problems in forums. Eventually I came across an issue that was describing pretty much the exact behaviour I was seeing on my system. It wasn’t that my system was just in general “periodically” or “randomly” pausing for a moment. And it wasn’t just when I was actively using the external monitors. It was happening exactly every 30 seconds, so long as the external monitors were plugged in, regardless of how they were plugged in.

I tried the hacks in the post that claimed to solve the problem and this finally led me to realise that despite having everything set up to automatically update system software and extensions, I had very outdated versions of some extensions on my system. Still being fairly new to Linux at the time I hadn’t realised some of the dependencies could not be updated because of the version of the OS, and this blocked the updating of the extensions. Pretty basic OS maintenance stuff, but it really slipped my mind after many years of not having to worry too much about this on Windows systems which were always forcibly upgrading regardless of the chaos that may cause. Argh.

But I also discovered the final, definitive root cause of my problem. In the end the jitter / pause every 30 seconds was caused by the Arcmenu setting to “Display ArcMenu on all Panels”. With this disabled the pause was gone and the system far more functional when plugged into the docking station. Problem solved.

But I was unhappy to not have Arcmenu visible on all the monitors when the docking station was in use. Problem created. Being unable to upgrade GNOME and the extensions any further while I was using Pop!_OS 22.04, I decided to take the plunge and force upgrade to 24.04 despite it being still in alpha at the time.

( Honestly, at this point I was also so bothered by this that I considered just giving up and going back to Windows. Eww. )

Remember to make sure you’ve got good lists of all your installed software, verified backups, and enough time to completely reinstall your system from scratch if you decide to do something like this. 😁

But it was good news for me as …

Ultimately, upgrading to Pop!_OS 24.04 solved video problems.

After the upgrade succeeded (whew!) I installed the GNOME desktop environment and all the extensions that I had come to rely on. Unplugging the system from the docking station while it was on was now possible where previously that crashed the system most of the time. Even better, with the upgraded extensions I was able to re-enable Arcmenu being visible on all monitors without it causing the system to pause every 30 seconds.

Excellent.

But, of course there was one last step. You see, above, I had gone too far. But I hadn’t realised it until after I did the upgrade to Pop!_OS 24.04.

One day, while I was working on another little project, I went to fire up Anaconda. Previously it had worked just fine on my system. But now I discovered that Anaconda refused to load. I was still able to use conda to get my job done, so the fact that Ananconda wasn’t loading was a bit of an annoyance. I tried reinstalling it, looked around for some hacks, but I found nothing. Since it wasn’t particularly high on my list of priorities I put this one aside as something to fix later.

Later finally came along when I tried to fire up a GOG game through Heroic Games Launcher, and nothing happened. I fiddled around with a number of the settings on Heroic, and I was unable to get the game to launch. Testing further I found that previously installed and previously working games also were not running. Oh great.

After tweaking and fiddling a bit I came to the realisation, or the hope I suppose, that likely I had broken something when I performed all the NVIDIA GPU hacks from https://github.com/keylase/nvidia-patch?tab=readme-ov-file and https://github.com/ventureoo/nvidia-tweaks. (see above where I noted I had installed these hacks and then not removed them after they had not helped me. Whoops.) So I backed up the system with timeshift and starting working backwards undoing those hacks and testing Anaconda for launch as verification. Backing off the NVENC patch and NvFBC patch did not solve the problem. However, removing the Wayland + NVIDIA environment variables that were suggested in the NVIDIA-Tweaks repo were the ticket. After I removed those and restored my environment file to the default, and rebooted, both Anaconda and all my Heroic GOG games were launching just fine.

Pulling the docking cable from the system while it’s on no longer crashes the system. Suspending the system or allowing it to time out and suspend itself is working again. Plugging the hot system into the dock turns on the external monitors without crashing the DE … it all seems so normal and expected, yet it was such a pain to get it working.

But now that it’s working, I’m never playing with that again. I haven’t yet gone back to test to see which exact hacks I could install without breaking the system and I don’t think I will either. Enough of this. Things work as I expect them to so I’m not playing around anymore. :)

So in the end …

The problem turned out to be that I was running too old a version of the OS. Basically I was trying to get functionality of a Windows 10 version of an app to work on a Windows 7 machine, and not realising that the problem was not the app, it was the OS. In the future I’ll probably be moving to a distro that allows for rolling releases or at least is not locked on an LTS model. But for now, the situation is resolved and I can get back to not playing around with getting basic functionality working. Whew.