PXE Vmlinuz Kernel Doesn’t Recognize Memory In Intel NUC?

Home » General » PXE Vmlinuz Kernel Doesn’t Recognize Memory In Intel NUC?
General 4 Comments

Hello all! I’m hoping someone can help. I’m having 2 issues; first:

When trying to load a CentOS LiveCD via PXE on an Intel NUC (NUC6CAY), I
get:
“Not enough memory to load specified image”. The image is 1.1 gigs, and there is 16 gigs of memory in the NUC.

To combat this, I found this forum post
which suggested using the “mem=” kernel parameter to manually set it.

The next problem I get is one of two things:

On a normal working system, I get the dots loading in PXE, then it freezes on “ready.” forever On the NUC, I get a sqaushfs crash saying that the image is unusable.

My questions are:

Has anyone successfully used the “mem=” parameter in a PXE environment?
I wasn’t even aware that drivers were necessary for a kernel image to read RAM; I’d thought this was something that was just inherent. Does the CentOS PXE kernel need to be updated?

4 thoughts on - PXE Vmlinuz Kernel Doesn’t Recognize Memory In Intel NUC?

  • I do a lot of PXE at home. Is it possible the TFTP of the image is failing somehow? I had problems with image size and had to switch to:

    http://www.kernel.org/pub/software/network/tftp/

    found in TFTP-server

    I’ve included my pxelinux.cfg/default for CentOS 6.4 below:

    # CentOS 6.4
    label CentOS6
    kernel CentOS/6.4/64/vmlinuz
    append initrd

  • Bruce, thanks for the reply – I don’t think so. The image works fine on every other supermicro server we’ve ever used, and continues to do so, except for the NUC.

    Using the mem= kernel parameter gets the NUC further in the boot process, but then it complains about the squashfs error (for the same working image everywhere else). The mem= kernel parameter also breaks other normally-working systems, so that’s why I’m trying to either:

    1. Fix the mem= kernel parameter, somehow or
    2. Get the vmlinuz initial kernel to recognize the memory in the NUC, somehow

  • that NUC uses a Celeron J3455 “Apollo Lake” system-on-a-chip, all new in Q3 2016… I wonder if that’s supported by the version (unspecified) of CentOS you’re installing ? You may need a newer kernel… The Apollo Lake is an extension of Skylake, which is generation 6 of the Core I3/5/7 series.

  • Hey John, thanks – it’s CentOS 7.3.

    I was just looking at “newer” vmlinuz kernels; I was going to try scraping one out of Ubuntu or Fedora.