Fog iPXE Menu no input
-
@SotY said in Fog iPXE Menu no input:
I’m new to FOG and this is an issue I also faced from the beggining. We have multiple Lenovo tiny computers: M710q, M910q, M70q gen 2, M70q gen 3 and usb keyboard is not working in iPXE menu for any of them when booting in EFI mode. Everything is fine when booting in bios mode.
I found this discussion on iPXE project github: https://github.com/ipxe/ipxe/discussions/308
After recompiling iPXE binaries with define>USB_HCD_USBIO uncommented keyboard started working for all in EFI mode. I used FOG build script but had to modify it a little bit. Compilation of ncm–ecm–axge.efi fails when USB_HCD_USBIO is enabled, but I won’t use it, so I just disabled compilation of it. All other images compile just fine. I also modified make to use all available cpu cores to make compilation faster. This is modified script: https://pastebin.com/9ViJBATgAfter upgrading FOG from release 1.5.10.1660 to release 1.5.10.1667 iPXE images won’t compile with USB_HCD_USBIO enabled. I didn’t dig deep yet, but it seems that changes in console.h, general.h or settings.h that script use causes this.
-
@SotY The files of console.h/general.h/settings.h were updated 2 - 4 months ago. I don’t think anything here is the cause of the failure. I’ve attempted building and am seeing the same error.
This leads me to think something changed with ipxe code particularly surrounding USB_HCD_USBIO and efi built binaries. It seems the efi builder has a native compiler point for it’s own USBIO that’s being constructed separately from the “common” source.
If you just build the binaries without the USBIO configured, does it break things? I know you found a fix and wanted to try it, but it seems mcb30 (main developer of ipxe) made a change that seems to make the usbio drivers act differently in the past. What those changes were, I do not know at this time.
I am more surprised, in my quick review of things, that this even worked before as the components I see erroring haven’t change significantly.
If I change the usbio_driver line to efi_usbio_driver in the drivers/usb/usbio.c file, and re-run the builder, things build successfully. (Including the ncm–ecm-axge.).
If that works, I can put my diff file and copy it with the build script but I’m scared something I’m doing in the driver/usb/usb.c file might be unintentionally making things worse (not better) even though I’m getting successful builds now.
-
@Tom-Elliott said in Fog iPXE Menu no input:
@SotY The files of console.h/general.h/settings.h were updated 2 - 4 months ago. I don’t think anything here is the cause of the failure. I’ve attempted building and am seeing the same error.
This leads me to think something changed with ipxe code particularly surrounding USB_HCD_USBIO and efi built binaries. It seems the efi builder has a native compiler point for it’s own USBIO that’s being constructed separately from the “common” source.
If you just build the binaries without the USBIO configured, does it break things? I know you found a fix and wanted to try it, but it seems mcb30 (main developer of ipxe) made a change that seems to make the usbio drivers act differently in the past. What those changes were, I do not know at this time.
I am more surprised, in my quick review of things, that this even worked before as the components I see erroring haven’t change significantly.
If I change the usbio_driver line to efi_usbio_driver in the drivers/usb/usbio.c file, and re-run the builder, things build successfully. (Including the ncm–ecm-axge.).
If that works, I can put my diff file and copy it with the build script but I’m scared something I’m doing in the driver/usb/usb.c file might be unintentionally making things worse (not better) even though I’m getting successful builds now.
I have config files from previous version and all 3 were changed. I just narrowed it down to changes in general.h file. Compiling with USB_HCD_USBIO enabled works fine when using previous general.h and new console.h and settings.h files. I need more time to find out which change broke it. These are the changes:
------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ -+ #define NET_PROTO_EAPOL /* EAP over LAN protocol */ #define NET_PROTO_LLDP /* Link Layer Discovery protocol */ ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ -+ * 802.1x EAP authentication methods * */ #define EAP_METHOD_MD5 /* MD5-Challenge port authentication */ //#define EAP_METHOD_MSCHAPV2 /* MS-CHAPv2 port authentication */ /* ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ -+ #define IMAGE_ZLIB /* ZLIB image support */ #define IMAGE_GZIP /* GZIP image support */ //#define IMAGE_UCODE /* Microcode update image support */ ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ -+ #define FORM_CMD /* Form commands */ ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ -+ //#define IMAGE_CRYPT_CMD /* Image encryption management commands */ ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ #define PARAM_CMD /* Form parameter commands */ <> #define PARAM_CMD /* Request parameter commands */ ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ -+ #define IMAGE_MEM_CMD /* Read memory command */ #define IMAGE_ARCHIVE_CMD /* Archive image management commands */ #define SHIM_CMD /* EFI shim command (or dummy command) */ #define USB_CMD /* USB commands */ //#define FDT_CMD /* Flattened Device Tree commands */ /* * Certificate sources * */ //#undef CERTS_EFI /* EFI certificate sources */ ------------------------------------------------------------------------------------------------------------------------
It’s weird, git shows the last update for general.h on May 11, but I installed FOG on June 10 and that’s when I did git clone and back then the files were different than they are now. These are the files I got on June 10:
console.h: https://pastebin.com/wmy449T0
general.h: https://pastebin.com/GUyqbY3F
settings.h: https://pastebin.com/Ta738Fmn