I do not believe this message is in any way related to your lack of hardware acceleration. I don't think X even uses those I/O ports for anything anymore; it's a holdover to the days of 640x480 VGA graphics in 16 colors. That range of I/O ports is the entire range of I/O ports that the original IBM PCs from 1981 could use; for cheapness of design, they could only accept add-in devices that used I/O ports below number 1024. Old VGA cards were controlled using a set of I/O ports in that range -- specifically, a number of non-contiguous ports from 0x3B4
to 0x3D8
(so a few ports near the end of the IBM PC's addressable range).
Modern PCs support 65,536 I/O ports -- many more than the IBM PC did -- and modern graphics cards use I/O port ranges starting at much higher addresses. The Xorg.log
taken from the Ask Ubuntu link (above) claims that the Intel GPU in that example uses 64 I/O ports starting at address 0xf000
, which is address 61,440 in decimal -- far, far above what X tried (and failed) to reserve for itself. So, I find it unlikely that this failure to reserve the legacy IBM PC range of I/O port addresses has anything to do with the problem at hand.
The situation with graphics drivers for Intel GPUs is complicated. Since 1999, when Intel started creating integrated graphics solutions, there have been countless drivers released for Linux: i810
, two versions of a driver called i915
, i965
, iris
, and the latest, crocus
. I probably missed a few others. Let me try to explain the full situation.
Today, under any circumstances and with any Intel integrated graphics (whether it's the original "Camino" graphics from 1999 or a modern Raptor Lake), there is a kernel driver called i915
which acts as a bridge between the bare graphics hardware and the main graphics drivers provided by the Mesa library. Then there are the drivers provided by Mesa:
-
i915
(the old driver): Yes, this driver is named the same as the kernel driver. It's a bit confusing. This driver was created by Intel themselves, for the most part. It is primarily for graphics hardware that is older than ~2005.
-
i915
(the new driver): Seriously -- there are two Mesa drivers named the same thing! This one was created by Google, and uses an underlying code library called "Gallium". It is mainly for graphics hardware produced after 2005.
-
i965
: This driver was produced mainly by Intel. It is for graphics hardware from after 2005 and I believe it works with all graphics hardware up to the present, but Intel doesn't recommend using it for anything newer than ~2010. This is probably the driver that your Ubuntu system was using up until your graphics acceleration broke.
-
iris
: Also created by Intel, this driver is for newer graphics hardware post-2010.
-
crocus
: Also by Intel. I think this is mostly for hardware made post-2014, but don't ask me why Intel thought it was necessary to come out with another driver so soon.
I think what happened is that, when you last upgraded, Mesa was updated, and the latest version of Mesa totally removed the i965
driver that you had been using. However, some part of Mesa still expects to find that i965
driver, and when it doesn't find the driver, Mesa falls back to using software rendering via the (vastly inefficient) llvmpipe
driver.
To test my hypothesis, try making a temporary symbolic link from /usr/lib/x86_64-linux-gnu/dri/crocus_dri.so
to /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
:
sudo ln -s crocus_dri.so /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
Then log out and log back in. See if acceleration works again. If not, remove the link, then try the iris
driver instead:
sudo rm /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
sudo ln -s iris_dri.so /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
Warning: There is a small possibility that one or both of these commands will prevent X from starting at all. If this happens, log in at the console (Ctrl-Alt-F1), then remove the link:
sudo rm /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
If none of those commands work, you could try checking if there are any new system updates available. Failing that, this sounds like something that needs to be reported as a bug.
Let me know how things work out for you! I'll be waiting excitedly.