CentOS 7 I386 & PAE Kernel

Home » CentOS » CentOS 7 I386 & PAE Kernel
CentOS 6 Comments

Hi Gurus,

I’ve been playing with CentOS 7‘s AltArch i386 builds with some good results on one machine, but can’t get it to boot properly on another with a newer Bay Trail CPU. Previously CentOS 6 i386 worked on both, and that set a legacy I’d like to recreate…

I *think* the problem is that the 7 kernel is non-PAE, and that has some peculiar knock on effect that prevents some PCI devices being seen, notably the device with the rootfs. CentOS 6 worked on both machines with the PAE kernel.

Looking around, I found the following repo: https://mirrors.dotsrc.org/CentOS-altarch/7/kernel/i386/

This carries 4.14 (long term support) based -PAE kernels (as well as non-PAE) which look to fix my problem. However, I can’t find any description of this repo or policy on how it is updated or the intended use. Or why PAE kernels aren’t provided as an option in the ‘normal’ i386 CentOS 7 builds.

If anyone could help explain this repo and the view on PAE for the AltArch i386 builds of CentOS 7, I would be really grateful as I can’t find the info anywhere else!

Kind Regards,

Mike

6 thoughts on - CentOS 7 I386 & PAE Kernel

  • That’s excellent, and most helpful. So that brings support for newer hardware, AND provides a PAE version which works on all my hardware nicely.

    This might be useful to a number of people, and it was only through looking around CentOS 7 on Raspberry Pi that I happened across the kernel repo.
    Might it be worth linking to the repo from the AltArch/i386 page:

    https://wiki.CentOS.org/SpecialInterestGroup/AltArch/i386

    Yep – wise words and duly noted, thank you. My application is small scale, so should be fine. Software is only as good as the testing anyway :-)

    Last question, if I may – Is there any specific reason why an i686 PAE kernel built from the main RHEL sources isn’t in the AltArch i386 os- repo?

    Notably CentOS 6 provided both non-PAE and PAE 32-bit kernels, and it’s that step from CentOS 6 32-bit PAE onto CentOS 7 32-bit which made me stumble, but okay now.

    Many Thanks again,

    Mike

  • The only reason is .. it is not included in the mainline RHEL 7 kernel source code.

    The kernel we are using there is our CentOS Plus kernel. The reason it is the CentOS Plus kernel is that the RHEL 7 kernel SPEC does not build anything on i386 except the kernel-headers rpm. We already make modifications to produce a CentOS Plus kernel for x86_64 .. so we also rolled in changes for making that kernel build on i386. Since it does not do PAE by default, we don’t do it.

    CentOS QA team member Akemi Yagi maintains the plus kernels for both CentOS-6 and CentOS-7 and QA team member (and armhfp AltArch maintainer)
    Pablo Greco also helps her frequently to make changes to that kernel to make it work with i386.

    I have no objections trying to make PAE work with that kernel .. Patches accepted :D

    https://bugs.CentOS.org/view.php?id=6828

  • Ah – I guess since mainline RHEL 7 is only 64-bit on x86 now, it doesn’t have to worry about PAE vs non-PAE kernels.

    So with what I know now (thank you!) I recon the mainline 4.14 is probably a better tested path for a 32-bit x86 PAE kernel, rather than starting at RHEL 7. And since you are already building that kernel it’s good news all round :-)

    Kind Regards,

    Mike

  • Going for the 4.14 kernel is absolutely a better choice. The i686 plus kernel is just lucky to be existing. It would not have been possible to maintain it without great support from people like Pablo and @kabe. We initially got the 32-bit version from Springdale (formerly Puias). Then they stopped building at some point. Building it becomes harder and harder with each release, it seems. So, there is no guarantee that there is another update to the i686 plus kernel.

    Akemi

    Akemi

  • Just a follow on to this conversation .. we have, on a couple of occasions, almost shifted i386 to an upstream LTS kernel due to the inability to get the RHEL 7 source to build for i386.

    Kabe and Pablo have thus far been able to help Akemi and I get it to build, but in the future as the RHEL 7 kernel keeps getting harder to maintain for i386 (they don’t check all their backports work on i386 .. only the arches they maintain), we may rebase the kernel on i386 to whichever one we are using on armhfp generic at the time.

  • Interestingly, in the kernels > 4.19.x that we are building, PAE is turned off for x86_32.

    The reason is, there are many errors (according to some people I have talked to in the Fedora Project).

    Therefore, the 4.14 series may be the last kernel we have that has it turned on.