HP ProBook 445 G2 Not Displaying iPXE Menu Correctly
-
@Sebastian-Roth When scheduling a task to run when the system is booting using iPXE/UEFI, the lines that you have displayed are garbled. But as soon as it loads everything is fine and you can clearly see all the associated text.
-
@quinniedid Could you take a video of a host booting into a task? To be able to further investigate we need to see where exactly it switches from garbled to proper display.
Make sure you rest the smartphone/camera on a pile of books to get a steady recording. Upload to some file hoster and post a link here.
-
@Sebastian-Roth I PM’ed you a link to the video. This is showing when we select a task to start from the menu. Right now, we don’t have any of these PC’s registered but we might be able to get that done for testing purposes.
-
@quinniedid Ok, looks like it switches over to “normal” display output as soon as the Linux kernel is started. Those messages
no_IRQ ...: no handler for vector
are harmless but stem from the kernel.Before we reach out to the iPXE developers on this I may ask you to build binaries from the latest source to conform it’s still an issue. Within the FOG archive/code repo you should have a sub directory
utils/FOGiPXE
. In that you find a script to build the binaries:cd fogproject/utils/FOGiPXE ./buildipxe.sh cd ../../packages/tftp ls -al ipxe.efi cp ipxe.efi /tftpboot/
Make sure the second last command (
ls ...
) shows a recent date of the file so we know the compilation went fine. If not than please post output of the compile output here.If it went fine that should give you the very latest version of iPXE. Let’s see if that makes a difference.
-
@sebastian-roth I was finally able to get this done. We are not always in the office due to the current pandemic. After updating the iPXE we are still getting the same behavior.
-
@quinniedid Now that I read this again I am wondering at what stage of the boot process this scrambled display output starts? Sorry I didn’t ask earlier but it just came to my mind.
Do you see the initial iPXE messages like this?
Just ignore the error on screen. I just want to find out up to which point you see things normal on the screen.
-
@sebastian-roth So far we see all the iPXE messages and everything looks fine until we get to the FOG menu itself. That is when we get scrambled display output.
-
@quinniedid Good, then we might be able to find a quick fix for you. Open the file
/var/www/html/fog/lib/fog/bootmenu.class.php
and find the text “goto get_console” in line 1901 and change that to “goto alt_console”. Save the file and boot one of your ProBooks that show the issue. -
@sebastian-roth That change worked! The screen doesn’t have our background image and different colored text. What does that mean we need to do to get the regular console back?
-
@quinniedid said in HP ProBook 445 G2 Not Displaying iPXE Menu Correctly:
The screen doesn’t have our background image and different colored text.
The “alt_console” is a backup console when everything else fails. Normally this console should never be called unless something happens configuring the default console. The alt_console only sets a standard text color and does not load any background images, or sets any fancy colors. It would be difficult for FOG to trap this issue unless it was something that iPXE could detect beforehand.
Again this points to a flaw in the target computer’s bios and not with fog directly.
-
@quinniedid I have an idea but I need to see the inventory data for this computer. So register it with FOG and do a full inventory of the computer. Then go into the host definition and inventory page. Copy and paste the results as text into this thread. I don’t need to see anything like serial numbers, mac address, or anything that is personally/company identifiable. I do want to see what inventory (smbios) does say so that we can find something unique to identify this specific model of computer.
-
@george1421 That is understandable.
Here is the data you requested:
System Manufacturer Hewlett-Packard System Product HP ProBook 455 G2 System Version A3009DD10303 System Serial Number <omitted> System UUID <omitted> System Type Type: Notebook BIOS Vendor Hewlett-Packard BIOS Version M75 Ver. 01.09 BIOS Date 12/04/2014 Motherboard Manufacturer Hewlett-Packard Motherboard Product Name 2235 Motherboard Version KBC Version 66.20 Motherboard Serial Number <omitted> Motherboard Asset Tag Base Board Asset Tag CPU Manufacturer AMD Corporation CPU Version AMD A8-7100 Radeon R5, 8 Compute Cores 4C+4G CPU Normal Speed Current Speed: 1800 MHz CPU Max Speed Max Speed: 1800 MHz Memory 3.30 GiB Hard Disk Model WDC WD2500BEVT-22ZCT0 Hard Disk Firmware 11.01A11 Hard Disk Serial Number WD-WXT0E59HNE56 Chassis Manufacturer Hewlett-Packard Chassis Version Chassis Serial <omitted> Chassis Asset Not Specified
-
@quinniedid said in HP ProBook 445 G2 Not Displaying iPXE Menu Correctly:
System Product: HP ProBook 455 G2
Motherboard Product Name: 2235Warning none of this gibberish will be understandable at the moment but I’m building a path to an answer. This won’t be a quick fix, but a durable one if what I’m thinking works well.
In ipxe terms the
product
variable might access one of these values.${product:uristring}
Looking at the ipxe source code the ipxe settting
product
points to System Product So for this hardwareproduct
should equal “HP ProBook 455 G2”Offset +1898
+ if (isset($_REQUEST['alt_console'])) { + $gconsole = "alt_console"; + } else { + $gconsole = "get_console"; + } $Send['head'] = self::fastmerge( array( 'cpuid --ext 29 && set arch x86_64 || set arch i386', + 'goto ' . $gconsole, - 'goto get_console', ':console_set', ), explode("\n", $mainColors), explode("\n", $mainCpairs),
OMG, if it was easy I guess everyone would be doing this. String functions in iPXE, to put it nicely… stink.
default.ipxe
#!ipxe cpuid --ext 29 && set arch x86_64 || set arch ${buildarch} set testalt HP ProBook 455 G2 params param mac0 ${net0/mac} param arch ${arch} param platform ${platform} param product ${product} param manufacturer ${product} param ipxever ${version} param filename ${filename} param sysuuid ${uuid} iseq ${product} ${testalt} && param alt_console 1 || isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme :bootme chain http://<fog_server_ip_address>/fog/service/ipxe/boot.php##param
Nothing is tested I can pass a param of alt_console=1 and the right code runs and creates the ipxe menu.
-
@quinniedid said in HP ProBook 445 G2 Not Displaying iPXE Menu Correctly:
That change worked! The screen doesn’t have our background image and different colored text. What does that mean we need to do to get the regular console back?
Sounds like you were using a custom background image. I am wondering if it’s that in particular causing the scrembled output? Have you tried using the default picture that comes with the FOG install on the HP ProBook 445 G2 yet (download here if you don’t have it anymore)?
Great we figured out the background picture is causing this! A first major step. George’s idea is great to just use the alternative console (no picture) for this model. But still I would try to use the default picture first.
-
@sebastian-roth I just wanted to check-in. Just letting you know I am trying to get this tested but because of the holidays and COVID exposure I am unable to be on-site to test this. It will most likely be in early January as to being able to go back on-site. I will provide an update once we are able to get this tested. We are using a custom background and will try to use a default background of both the white and black.
-
@sebastian-roth Ok. We were finally able to test this today. I tried both the standard bg and bgdark images and all of them are doing the same thing.
-
@quinniedid Ok, looks like this is not due to the picture you used but a general issue with displaying the image on the HP ProBook 445 G2. So far I have not found any hint on other people reporting this issue to iPXE and I would suspect this to be kind of an endeavor to figure out even with the help of iPXE developers. Though you can still report it on github or the forums.
The easier way is just using the workaround that George came up with. Not fancy but way less effort than figuring this one out I suppose.