[ipxe-devel] iPXE EFI handover protocol - experienced developer wanted

2020-10-28 Thread Felix Jacobi
Dear iPXE developers,

I am asking on behalf of our managing director and head of software
development at IServ GmbH, Brunswick, Germany. We're using iPXE as part
of our software deployment and client management solution to perform the
PXE network boot. With some of our customer's devices (usually
notebooks) we encountered the error "Exec format error
(http://ipxe.org/2e008081)" while booting Linux kernels together with an
initramfs using iPXE.

Last year in September I opened a thread on this mailing list asking for
support to analyze the problem:
https://lists.ipxe.org/pipermail/ipxe-devel/2019-September/006759.html.
Following recommendations from other participants here, various
potential causes of the problem were investigated and dismissed.

In the past we have used the PXELINUX component of the SYSLINUX project
instead of iPXE to perform the PXE boot which worked fine on the
affected devices. According to the last result of the causal analysis I
performed, it seems that PXELINUX uses a feature called "EFI Handover
Protocol" (see
https://lists.syslinux.org/archives/syslinux-commits/2013-July/002387.html)
which probably circumvents broken EFI image loading function of the
firmware and instead executes the EFI stub of the Linux kernel directly.

We're therefore searching a developer experienced in iPXE who is able to
implement support for the EFI Handover Protocol in iPXE in exchange for
payment like it is already implemented in the PXELINUX project, as we
assume that this way the problems with the faulty firmware can be
circumvented.

We already addressed a similar request to vendor-supp...@ipxe.org
several months ago - unfortunately it came to nothing after a good start
and no further response was received although it looked very promising.
As we did not see further possibilities I am trying it on this way now.

If you are interested and experienced, please contact us at
i...@iserv.eu to discuss more precise details with our managing director.

-- 
Best regards,

Felix Jacobi

IServ GmbH
Bültenweg 73
38106 Braunschweig

Phone:  0531-2243666-0
Fax:0531-2243666-9
E-mail: felix.jac...@iserv.eu
Web:https://www.iserv.eu
Tax ID: DE265149425
Executive directors:Benjamin Heindl, Martin Hüppe, Jörg Ludwig
Principles on privacy:  https://www.iserv.eu/privacy

Verify my identity: https://github.com/FelixJacobi/gpg-keys



OpenPGP_0xDC56298737E1DA91.asc
Description: application/pgp-keys


OpenPGP_signature
Description: OpenPGP digital signature
___
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo/ipxe-devel


Re: [ipxe-devel] Error "Could not select: Exec format error (2e008081)" while loading EFI images via HTTP/TFTP

2019-09-10 Thread Felix Jacobi
Hi Geert,

> 
> So back to Error "Could not select: Exec format error (2e008081)" while
> loading EFI images via HTTP/TFTP
> 
> My educated guess is with Christian Nilssons posting from yesterday
>   the file gets damaged during transport
> 
> Please pursuit this interresting problem

I compiled an iPXE binary with the DIGEST_CMD option included as
described in http://ipxe.org/dev/drvtest/md5sum.

The output of the md5sum command looks fine compared to the test on the
boot server:

felix.mein-iserv.de ~ # md5sum /srv/tftpboot/efi64/install
577a82ef6530d4a17c651617cfdd98a2  /srv/tftpboot/efi64/install

https://community.iserv.eu/upload/pahquei9agohmeekahcesaimoiG9Eg9keathawaev5lei2ieQuaiwee3au9Avaqu/md5sum.jpg

So I guess that the file is transferred undamaged as already implied by
the byte size comparison.

Regards, Felix

-- 
Best regards,

Felix Jacobi

IServ GmbH
Bültenweg 73
38106 Braunschweig

Phone:  0531-2243666-0
Fax:0531-2243666-9
E-mail: felix.jac...@iserv.eu
Web:https://www.iserv.eu
Tax ID: DE265149425
Executive directors:Benjamin Heindl, Martin Hüppe, Jörg Ludwig
Principles on privacy:  https://www.iserv.eu/privacy

Verify my identity: https://github.com/FelixJacobi/gpg-keys

___
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel


Re: [ipxe-devel] Error "Could not select: Exec format error (2e008081)" while loading EFI images via HTTP/TFTP

2019-09-10 Thread Felix Jacobi
On 10.09.19 at 13:25, Felix Jacobi wrote:
> Yeah, I will try to research on that point. As already mentioned before
> there is no such option in the firmware. That either implies that there
> is no support for secure boot or secure boot is always active. I am not
> sure if the latter case is even possible, as the iPXE binary itself is
> loaded without problems at the beginning.

I installed a Windows manually on the broken notebook, Windows says via
the system information program that secure boot isn't active.

Regards, Felix

-- 
Best regards,

Felix Jacobi

IServ GmbH
Bültenweg 73
38106 Braunschweig

Phone:  0531-2243666-0
Fax:0531-2243666-9
E-mail: felix.jac...@iserv.eu
Web:https://www.iserv.eu
Tax ID: DE265149425
Executive directors:Benjamin Heindl, Martin Hüppe, Jörg Ludwig
Principles on privacy:  https://www.iserv.eu/privacy

Verify my identity: https://github.com/FelixJacobi/gpg-keys



signature.asc
Description: OpenPGP digital signature
___
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel


Re: [ipxe-devel] Error "Could not select: Exec format error (2e008081)" while loading EFI images via HTTP/TFTP

2019-09-10 Thread Felix Jacobi
Hi Christian,

> My guess is that your server returns something other than what you
> expect it to - maybe because it is ipxe, and not a browser, and your
> server detects this. or something similar which "corrupts" the data.

I checked that the URL is correct, it definitely serves a Linux kernel
image:

felix.mein-iserv.de ~ # wget -q
https://felix.mein-iserv.de/tftpboot/efi64/install
felix.mein-iserv.de ~ # file install
install: Linux kernel x86 boot executable bzImage, version
5.0.0-27-generic (buildd@lgw01-amd64-016) #28-Ubuntu SMP Tue Aug 20
19:53:07 UTC 2019, RO-rootFS, swap_dev 0x8, Normal VGA

> use imgstat before boot
> verify that it says that it is an EFI image.
> Also verify that the filesize is correct.
> And that you have the correct url (that install is the actual image)
> Also used imgfetch and imgstat to verify that the image has the
correct size in bytes:

Broken notebook:
https://community.iserv.eu/upload/faepiegho7oosh9ut8zieshe2PhaavieVohF0cooxi8ahgho8aic6Aicee4eikee/broken.jpg
Other working device:
https://community.iserv.eu/upload/faepiegho7oosh9ut8zieshe2PhaavieVohF0cooxi8ahgho8aic6Aicee4eikee/working.jpg

Image on boot server:

felix.mein-iserv.de ~ # ls -la /srv/tftpboot/efi64/install

lrwxrwxrwx 1 root root 35 Sep  3 13:20 /srv/tftpboot/efi64/install ->
../opsi-linux-bootimage/x64/vmlinuz
felix.mein-iserv.de ~ # ls -la
/srv/tftpboot/opsi-linux-bootimage/x64/vmlinuz
lrwxrwxrwx 1 root root 24 Sep  3 13:20
/srv/tftpboot/opsi-linux-bootimage/x64/vmlinuz -> vmlinuz-5.0.0-27-generic
felix.mein-iserv.de ~ # ls -la
/srv/tftpboot/opsi-linux-bootimage/x64/vmlinuz-5.0.0-27-generic
-rw-r--r-- 1 root root 8,4M Aug 20 21:25
/srv/tftpboot/opsi-linux-bootimage/x64/vmlinuz-5.0.0-27-generic
felix.mein-iserv.de ~ # du --bytes
/srv/tftpboot/opsi-linux-bootimage/x64/vmlinuz-5.0.0-27-generic
8711928 /srv/tftpboot/opsi-linux-bootimage/x64/vmlinuz-5.0.0-27-generic

> in your last image you can see that your imagefetch is not able to
> detect the fileformat.

The interesting point is that the broken notebook seems to does not
detect the image as EFI binary. The working reference device seems to
doesn't have this problem.

> And yes, disable secure boot, unless you have both ipxe, and the
> kernel signed by a certificate that has been added inside firmware
> config.

Yeah, I will try to research on that point. As already mentioned before
there is no such option in the firmware. That either implies that there
is no support for secure boot or secure boot is always active. I am not
sure if the latter case is even possible, as the iPXE binary itself is
loaded without problems at the beginning.

> You can follow the link to see each place in the sourcecode where this
> error can come from. (also, always include the link that are shown
> together with the error message to get help easier)

I will include the link to the error code here afterwards to ease
comprehending this thread for other ones:

http://ipxe.org/err/2e0080

Thank you for your time.

Regards, Felix

-- 
Best regards,

Felix Jacobi

IServ GmbH
Bültenweg 73
38106 Braunschweig

Phone:  0531-2243666-0
Fax:0531-2243666-9
E-mail: felix.jac...@iserv.eu
Web:https://www.iserv.eu
Tax ID: DE265149425
Executive directors:Benjamin Heindl, Martin Hüppe, Jörg Ludwig
Principles on privacy:  https://www.iserv.eu/privacy

Verify my identity: https://github.com/FelixJacobi/gpg-keys



signature.asc
Description: OpenPGP digital signature
___
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel


Re: [ipxe-devel] Error "Could not select: Exec format error (2e008081)" while loading EFI images via HTTP/TFTP

2019-09-09 Thread Felix Jacobi
Hi Arne,

Thank you for your reply.

On 09.09.19 at 15:17, should be q931 wrote:
> As per your screenshot, the error code given is in a URL 
> 
> The error provides a URL http://ipxe.org/err/2e008081

Yeah, I am aware of the error page and checked the list from the
additional notes. That's the reason I wrote that the Linux kernel is
compiled with the CONFIG_EFI_STUB option.

I am also definitely sure that the kernel image isn't corrupted in some
way as it works seamlessly with other hardware in UEFI mode. The same
applies for the iPXE binary itself which works on other hardware, too.

> If a BIOS iPXE is able to be chainloaded, then it would indicate that it
> is BIOS mode rather than UEFI mode, and this may be why it will not
> chain load a UEFI iPXE

The notebook has definitely no BIOS legacy mode, it just boots in UEFI
mode. The iPXE EFI binary itself is loaded correctly by the firmware via
HTTP with the URL supplied by DHCP. Chainloading further iPXE scripts
works correctly, but iPXE is unable to load subsequent EFI binaries.

Regards, Felix

-- 
Best regards,

Felix Jacobi

IServ GmbH
Bültenweg 73
38106 Braunschweig

Phone:  0531-2243666-0
Fax:0531-2243666-9
E-mail: felix.jac...@iserv.eu
Web:https://www.iserv.eu
Tax ID: DE265149425
Executive directors:Benjamin Heindl, Martin Hüppe, Jörg Ludwig
Principles on privacy:  https://www.iserv.eu/privacy

Verify my identity: https://github.com/FelixJacobi/gpg-keys



signature.asc
Description: OpenPGP digital signature
___
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel


Re: [ipxe-devel] Accessing information from dmitable

2019-03-05 Thread Felix Jacobi
Am 05.03.19 um 13:21 schrieb Christian Nilsson:
> First check config, it has as system (smbios) subsection with some
> information, some of what you want is there.
> but these names are just alias for the actual table. So after that
> continue with reading http://forum.ipxe.org/showthread.php?tid=7749

Thank you, the advices on the smbios/* values were very helpful!

-- 
Mit freundlichen Grüßen,

Felix Jacobi

IServ GmbH
Bültenweg 73
38106 Braunschweig

Telefon:0531-2243666-0
Fax:0531-2243666-9
Mobil:  01515-2525304
E-Mail: felix.jac...@iserv.eu
Internet:   www.iserv.eu
USt.-IdNr.: DE265149425
Geschäftsführer:Benjamin Heindl, Martin Hüppe, Jörg Ludwig

Verify my identity: https://github.com/FelixJacobi/gpg-keys



signature.asc
Description: OpenPGP digital signature
___
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel


[ipxe-devel] Accessing information from dmitable

2019-03-05 Thread Felix Jacobi
Hi there,

I am currently trying to access some information in the system's dmitable.

In the past I used the following Lua code in SYLINUX for that case:

local dmi = require "dmi"

if(dmi.supported())
  dmitable = dmi.gettable()
  if (dmitable["system"]) then
sm = dmitable["system"]["manufacturer"]
sv = dmitable["system"]["version"]
sp = dmitable["system"]["product_name"]
  end
  if (dmitable["base_board"]) then
bm = dmitable["base_board"]["manufacturer"]
bp = dmitable["base_board"]["product_name"]
  end
end

I already figured out that the value of
dmitable["system"]["manufacturer"] can be obtained in iPXE using "show
manufacturer". Same for dmitable["system"]["product_name"] using "show
product".

I am currently searching for ways to access the "version" value from
"system" and the "base_board" values using iPXE. Is there any way to do
that?

-- 
Mit freundlichen Grüßen,

Felix Jacobi

IServ GmbH
Bültenweg 73
38106 Braunschweig

Telefon:0531-2243666-0
Fax:0531-2243666-9
Mobil:  01515-2525304
E-Mail: felix.jac...@iserv.eu
Internet:   www.iserv.eu
USt.-IdNr.: DE265149425
Geschäftsführer:Benjamin Heindl, Martin Hüppe, Jörg Ludwig

Verify my identity: https://github.com/FelixJacobi/gpg-keys



signature.asc
Description: OpenPGP digital signature
___
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel