• Wanted to see if anyone had any luck getting a NUC10 to boot to FOG. I’ve tried a variety of the most recent kernels to no avail. I also followed the documented procedure for compiling my own 5.4.12 kernel, with no luck. The NUC has a I219 controller in it, and I’ve seen some similar posts in various forums with people having issues getting the controller to work properly in Linux, but none of the fixes I’ve found seem to do anything.

    Any help would be much appreciated!

  • Moderator

    @nextechinc I can’t answer that. If you can tweak 5.4 with the newer driver then go for it. 5.5rc may also work. I guess the question would be how many NUCs do you have and what would take the least amount of effort to do (probably 5.5). Understand that you can define a custom kernel for each host definition. SO what ever direction you go in keep the kernel name unique and only assign that kernel to the systems that need it.

  • @george1421
    Do you think I’d be better of running with the RC of 5.5? Or with my tweaked version of 5.4, with the 3.6.0 e1000e driver injected in?

  • Moderator


    8086:02f0 is the intel wireless adapter.
    8086:0d4f is the intel 1000e network adapter.

    Looking at the kernel database 8086:0d4f is in the linux 5.5+ kernel and not before. ref: https://cateee.net/lkddb/web-lkddb/E1000E.html So that is why building linux 5.4 did not work for you (you might try adding that hardware ID to the existing 5.4 intel nic driver and it might work or might not). You ARE running on the bleeding edge with that hardware.

    So what can you do? Well a USB3 or USB2 network adapter will work in a pinch. You will need to have both network adapters plugged in. The LOM nic for pxe booting and USB nic for FOS Linux imaging. Its kind of janky but until the linux kernel can catch up to the hardware, sometimes you have to just be janky.

  • Moderator

    @nextechinc Ok let me look up the codes.

  • @george1421
    Here’s the result of the requested command:

  • Ok, my kernel modification ended up working. Here’s a rundown of the steps I took to get it working…

    cd /usr/src
    wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.12.tar.xz
    tar -xf linux-5.4.12.tar.xz
    cd linux-5.4.12
    wget -O .config https://github.com/FOGProject/fos/raw/master/configs/kernelx64.config
    git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
    make oldconfig
    cd /usr/src
    #The following line may need to be modified, if Intel ever changes the location of this driver
    wget https://downloadmirror.intel.com/15817/eng/e1000e-3.6.0.tar.gz
    tar -xf ./e1000e-3.6.0.tar.gz
    cd e1000e-3.6.0/src

    The driver source code needs to be modified to account for a change that was made in the kernel source code. Modify line 2799 of kcompat.h.

    Change: #include <linux/pci-aspm.h>
    to: #include <linux/pci.h>

    Now to inject the 3.6.0 driver, and compile

    cd /usr/src
    rm -rf linux-5.4.12/drivers/net/ethernet/intel/e1000e
    cp -rf e1000e-3.6.0/src linux-5.4.12/drivers/net/ethernet/intel/e1000e
    cd linux-5.4.12
    make -j4 bzImage
    cp arch/x86/boot/bzImage /var/www/html/fog/service/ipxe/bzImage

    I’m sure this is only going to be a temporary fix. I suspect the native linux kernel will be updated soon to include a more recent version of this driver. But until then, this seems to work.

  • Moderator

    @nextechinc Lets collect a bit more information on that NUC. Go back into fog and reschedule another capture/deploy (don’t matter), but before you hit the schedule task button, tick the debug check box then schedule the task. PXE boot the target computer. After a few screens of text you need to clear by pressing enter you will be dropped to the FOS Linux command prompt in debug mode. At the command prompt key in lspci -nn | grep -i net and post a screen shot of the output here.

  • nuc-boot.JPG

    Thanks for the speedy reply!

    Based on this post, I’m currently operating off of the theory that version 3.2.6 of the e1000e driver is currently included with the 5.4.12 kernel, which may not be compatible with the controller built into the NUC. I’ve downloaded version 3.6.0 of the e1000e source code from Intel, and am trying to see if I can build a kernel with that version baked in. I don’t often drill into compiling my own kernels, so I’m not sure how much success, if any, I’ll have with this method.

  • Moderator

    @nextechinc said in NUC10 NIC Compatibility:

    I’ve tried a variety of the most recent kernels to no avail.

    Please post a picture of how far you get in the process of booting. Any error message?