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 --
wavemobile Warning: The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender immediately and delete the material from any computer. wavemobile Ltd is registered in England and Wales, Registration Number: 04780898.
On 3/4/19 3:39 PM, Mike McTernan (wavemobile) wrote:
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!
That directory (kernel/ under altarch) is basically for the armhfp main kernel, but we are building also for aarch64, i386 and even x86_64. Its purpose (other than armhfp, where it is the main kernel) is mainly for IoT type hardware (think hobby boards, embedded systems, etc that need newer kernels for hardware support .. think things like this:
https://www.intel.com/content/www/us/en/products/solutions/iot.html
or
64 bit aarch64 bit type IoT boards, etc.
You certainly CAN use them on anything you want and it will be maintained as it is the main kernel for armhfp.
There is also an experimental/ repo in altarch with is the NEXT kernel for armhfp .. that one is currently 4.19.x. When we upgrade to CentOS 7.7.<DATE> (no idea when that will be, we obviously wait on Red Hat to release RHEL 7.7 and then rebuild the source code) we will be moving to the 4.19.x kernel in the kernel/ repo .. and for the experimental/ repo we will pick a newer LTS kernel from kernel.org to maintain in that repo.
Both of these branches / repos are NOT designed to run Enterprise type workloads (that is why we have the main RH kernel from RHEL sources) .. but, you can do whatever you want with them .. and we will be maintaining them for major updates from kernel.org as required, especially CVEs released from kernel.org.
On 3/5/19 5:48 PM, Johnny Hughes wrote:
On 3/4/19 3:39 PM, Mike McTernan (wavemobile) wrote:
Looking around, I found the following repo: https://mirrors.dotsrc.org/centos-altarch/7/kernel/i386/
...
That directory (kernel/ under altarch) is basically for the armhfp main kernel, but we are building also for aarch64, i386 and even x86_64. Its purpose (other than armhfp, where it is the main kernel) is mainly for IoT type hardware (think hobby boards, embedded systems, etc that need newer kernels for hardware support .. think things like this:
https://www.intel.com/content/www/us/en/products/solutions/iot.html
or
64 bit aarch64 bit type IoT boards, etc.
You certainly CAN use them on anything you want and it will be maintained as it is the main kernel for armhfp.
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
Both of these branches / repos are NOT designed to run Enterprise type workloads (that is why we have the main RH kernel from RHEL sources) ..
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 --
wavemobile Warning: The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender immediately and delete the material from any computer. wavemobile Ltd is registered in England and Wales, Registration Number: 04780898.
On 3/6/19 6:26 AM, Mike McTernan (wavemobile) wrote:
On 3/5/19 5:48 PM, Johnny Hughes wrote:
On 3/4/19 3:39 PM, Mike McTernan (wavemobile) wrote:
<snip>
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.
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
On 3/6/19 1:28 PM, Johnny Hughes wrote:
On 3/6/19 6:26 AM, Mike McTernan (wavemobile) wrote:
On 3/5/19 5:48 PM, Johnny Hughes wrote:
<snip>
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.
The only reason is .. it is not included in the mainline RHEL 7 kernel source code.
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.
...
I have no objections trying to make PAE work with that kernel .. Patches accepted :D
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 --
wavemobile Warning: The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender immediately and delete the material from any computer. wavemobile Ltd is registered in England and Wales, Registration Number: 04780898.
On Wed, Mar 6, 2019 at 7:23 AM Mike McTernan (wavemobile) mike.mcternan@wavemobile.com wrote:
On 3/6/19 1:28 PM, Johnny Hughes wrote:
On 3/6/19 6:26 AM, Mike McTernan (wavemobile) wrote:
On 3/5/19 5:48 PM, Johnny Hughes wrote:
<snip>
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.
The only reason is .. it is not included in the mainline RHEL 7 kernel source code.
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.
...
I have no objections trying to make PAE work with that kernel .. Patches accepted :D
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
On 3/6/19 9:49 AM, Akemi Yagi wrote:
On Wed, Mar 6, 2019 at 7:23 AM Mike McTernan (wavemobile) mike.mcternan@wavemobile.com wrote:
On 3/6/19 1:28 PM, Johnny Hughes wrote:
On 3/6/19 6:26 AM, Mike McTernan (wavemobile) wrote:
On 3/5/19 5:48 PM, Johnny Hughes wrote:
<snip>
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.
The only reason is .. it is not included in the mainline RHEL 7 kernel source code.
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.
...
I have no objections trying to make PAE work with that kernel .. Patches accepted :D
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
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.
<snip>
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.