Subcategories

  • Technical help directly related to FOG.
    9k Topics
    86k Posts
    Tom ElliottT

    @Jeremy Good — the file being there confirms the /tftpboot fix landed. Two separate things in your report, and one of them was mine again.

    “Downloads pxelinux, but then stops” — partly expected, partly another FOG bug, now fixed.

    If there was no task queued for the Pi at that moment, the file FOG writes says localboot 0, which tells U-Boot “nothing to do, carry on to local disk”. That’s by design: no task, no imaging. So “stops” after a successful pxe get is correct behavior unless you’d queued a capture first. If there was a task queued, it would still have stopped, and that one is on me: the file named the kernel and init as http://… URLs, which is what boards with wget use. Your U-Boot’s pxe code can’t follow a URL — I checked U-Boot’s source (boot/pxe_utils.c😞 every kernel and initrd line is fetched over TFTP, relative to wherever the config came from, so kernel http://… became a TFTP request for a file literally called that. Fixed in working-1.6 (PR #1679): the file now says kernel arm_Image / initrd arm_init.cpio.gz, and FOG copies those two files into /tftpboot itself the first time a task is queued for an ARM host, and again whenever the kernel is updated. Run the updater once more, queue a capture for the Pi, then on the server check that /tftpboot/pxelinux.cfg/01-88-a2-9e-53-34-c0 contains kernel arm_Image and that /tftpboot/arm_Image and /tftpboot/arm_init.cpio.gz exist.

    The intermittent DHCP is a network-timing problem, not a FOG one, and Tom’s STP question is the right first suspect. On a switch port running classic spanning tree, the port doesn’t forward traffic for roughly 30 seconds after link-up (listening, then learning). U-Boot brings the link up and sends its DHCP discover immediately, retries for a few seconds, and gives up — that’s the “8 seconds searching”. The times it works are the times the port happened to already be forwarding. The Pi’s EEPROM boot succeeds because it retries for much longer. Two fixes, and I’d do both:

    On the switch: enable PortFast / edge-port (or RSTP) on the ports the Pis plug into. That’s the real fix and it helps every PXE client, not just the Pis. In U-Boot, so a slow port doesn’t kill the boot anyway: setenv autoload no setenv netretry yes setenv bootcmd 'dhcp; pxe get; pxe boot' saveenv

    autoload no stops dhcp from also trying to TFTP a bootfile it was never given (that’s an extra timeout and a spurious failure in your sequence). netretry yes makes U-Boot keep retrying DHCP instead of giving up after a few seconds — the right call for a headless board that has nothing else to do, but be aware it means a Pi with no DHCP server on the wire will sit there retrying rather than dropping to the prompt.

    If DHCP still fails after that, the next read is OPNsense’s DHCP log for that MAC: whether the discover even arrives, and what it offers. And as before, pasted text beats a screenshot — the exact lines around pxe boot are the ones I need next.

  • Problems with specific computer models.
    713 Topics
    8k Posts
    R

    @Tom-Elliott

    Thanks so much for your help with this. Happy to feed back any info I can so please do let me know if there’s anything else you need me to test. Will be on annual leave for a couple of weeks after this and have no access to the systems but I think this confirms your suspicion. Please see results below from a Dell OptiPlex 3070:

    Addresses on this machine:

    NIC: 01:00.0 (Realtek RTL8168h)
    Root port: 00:1c.0

    UEFI mode:

    setpci -s 01:00.0 CAP_EXP+10.w = 0142 (last digit 2 = L1 enabled)
    setpci -s 00:1c.0 CAP_EXP+10.w = 0c42 (last digit 2 = L1 enabled)

    Legacy/CSM mode:

    setpci -s 01:00.0 CAP_EXP+10.w = 0040 (last digit 0 = ASPM off)
    setpci -s 00:1c.0 CAP_EXP+10.w = 0c40 (last digit 0 = ASPM off)

    Dell’s UEFI firmware enables L1 on both the NIC and root port. The Legacy/CSM path leaves both off. The only difference between the two readings is those two ASPM bits. Everything else in the register is identical.

    Thanks for the nudge to run these. Anything else needs testing please do let me know. We love using FOG and it’s invaluable in our set of schools that we work in at least so please do keep up the great work!

  • Technical help related to a Windows Problem.
    1k Topics
    8k Posts
    V

    What version of FOG are you running?

  • Technical help related to a Linux Problem.

    730 Topics
    6k Posts
    Mr_____TM

    @JasonNaughton

    Hi, I noticed that this was unresolved after so long. Wonder if you have solved it?
    I recently stumbled across the man page for dhcpcd.conf. In there is a denyinterfaces (pattern) should solve the issue for you. It tells dhcpd to ignore the nic interfaces listed in pattern. Just was wondering if you found the fix otherwise hope this helps.

  • Technical help related to a Mac Problem.

    81 Topics
    943 Posts
    Bristow 0B

    Hello everyone,

    As I work at a secondary school, I was able to get hold of some Catalina iMacs (iMac 14.3).
    I already use FOG to deploy Windows and Linux images on PCs.

    I would like to deploy a LinuxMint image on these iMacs.

    However, I am unable to boot into PXE on them with FOG, and I do not know what is wrong.

    I modified my DHCP server as follows:

    ## FOG class "UEFI-32-1" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00006"; filename "i386-efi/ipxe.efi"; } class "UEFI-32-2" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00002"; filename "i386-efi/ipxe.efi"; } class "UEFI-64-1" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00007"; filename "ipxe.efi"; } class "UEFI-64-2" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00008"; filename "ipxe.efi"; } class "UEFI-64-3" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00009"; filename "ipxe.efi"; } class "Apple-Intel-Netboot" { match if substring (option vendor-class-identifier, 0, 14) = "AAPLBSDPC/i386"; option dhcp-parameter-request-list 1,3,17,43,60; if (option dhcp-message-type = 8) { option vendor-class-identifier "AAPLBSDPC"; if (substring(option vendor-encapsulated-options, 0, 3) = 01:01:01) { # BSDP List option vendor-encapsulated-options 01:01:01:04:02:80:00:07:04:81:00:05:2a:09:0D:81:00:05:2a:08:69:50:58:45:2d:46:4f:47; } elsif (substring(option vendor-encapsulated-options, 0, 3) = 01:01:02) { #BSDP Select option vendor-encapsulated-options 01:01:02:08:04:81:00:05:2a:82:0a:4e:65:74:42:6f:6f:74:30:30:31; # filename "i386-efi/ipxe.efi"; filename "snp.efi"; } } } class "Legacy" { match if substring(option vendor-class-identifier, 0, 20) = "PXEClient:Arch:00000"; filename "undionly.kkpxe"; } ### END FOG

    I tested ipxe.efi in 64-bit and 32-bit, as well as snp.efi, but it still doesn’t work. I get some kind of spinning planet when I try to boot.

    I admit I don’t fully understand the documentation page: https://wiki.fogproject.org/wiki/index.php/FOG_on_a_MAC

    Thanks in advance!

  • General Developer questions relating to FOG.
    687 Topics
    5k Posts
    JJ FullmerJ

    @azm9s actually reading the claude output looks like you’re actually pointing to secureboot/ipxe.efi for option 67. Switch that to either secureboot/snponly-shimx64.efi or secureboot/ipxe-shimx64.efi and that may do the trick

69

Online

12.8k

Users

17.6k

Topics

157.0k

Posts