I have a working Centos7 system on a NUC5CPYH. To get the drivers for video and wireless that aren't in the Centos 3.10 kernel, we're using a 4.10.9 kernel. Since the NUC5CPYH is coming up on end of life, I'm trying to migrate to the NUC6CAYH.
Our system plays video in Chrome. On the NUC5CPYH, everything runs fine. On the NUC6CAYH I'm seeing high CPU on gnome-shell which I found (atop "y" command) to have 4 threads of
llvmpipe-[0-3] attached to gnome-shell's PID -- so we're using CPU (not GPU) rendering.
On the NUC6CAYH, glxinfo errors with message
i965_dri.so does not support the 0x5a85 PCI ID which looks to be a Mesa error message from
src/mesa/drivers/dri/i965/brw_device_info.c Looking at
the 5a85 PCI ID is not in the 11.2 (Centos 7 includes mesa 11.2.2-2.20160614.el7) tree but is in the 12.0 and later.
It appears that we need a new version of Mesa. So the question is how do I do that?
- Is this analysis correct?
- Is there a better way to solve this problem?
- Intel has a nice "recipe" for a video stack, but it looks to be a daunting task to implement.
- Is there a packaged path for Centos 7 to get to Mesa 12+.
- Could this be as "simple" as building Mesa from source? I tried to build 12.0.6 and ran into a series of errors so it doesn't look so simple...
Update Since there are no replies, I'm going to update this question 'in place' and edited the title to include "Apollo Lake/Goldmont" make it more general than just the particular NUC product.
Good news is that I successfully built the Intel 2017Q1 Graphic Stack Recipe (link above) from source on a Centos 7 image. I observed a number of compiler warning messages but ignored them since someone smarter than me had already seen them. The build did take few manual tweaks to paths and moving some libraries to the correct destination.
Now, running the 17Q1 graphics stack on the NUC6CAYH seems to solve the problem of the llvmpipe threads running and burning up CPU so it looks like the GPU is engaged. Indeed CPU load is moderate (as expected) which is good. Subjectively, our video app (rendered inside Google Chrome browser) seems to run "OK" but not 100% smooth. To provide some more objective data, I used glxgears (which notes that the reported fps should equal the device refresh rate of 60 Hz) to see how they compared.
- NUC6CAYH - Centos 7 + 17Q1 graphics stack - glxgears 48-53 fps and stutters, top CPU: X.org 75-85%, conky refresh is very visible
- NUC5CPYH - Centos 7 + included graphics stack - glxgears 60.0 fps and smooth - top CPU: gnome-shell 38%, X.org 18% N
- NUC5CPYH - Centos 7 + 17Q1 graphics stack - glxgears 60.0 fps and smooth, top CPU: gnome-shell 17%, X.org 13%, conky refresh fine
It looks like I need to dig in to the X.org high CPU problem next. Does the 17Q1 Graphics stack require/prefer a particular version of X? Is it possible for mere mortals to build X from source?