iPXE discussion forum

Full Version: Could not use image
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

I need help to activate a[/code] background picture.

I use undionly.kpxe, generated on rom-o-matic with :
Advanced > PXE bootstrap loader keep [Keep PXE stack method 1 (.kxpe)
Choose a NIC type > undioonly
Download protocols > TFTP, HTTP, HTTPS, FTP, NFS- IMAGE_PNG, PNG image support
- CONSOLE_CMD, Console command
- CONSOLE_VESAFB, VESA framebuffer console

My menu.ipxe :

Code:
#!ipxe
console --x 1024 --y 768
console --picture http://192.168.0.17/images/splash.png --left 32 --right 32 --top 32 --bottom 48

menu
...

When I boot on nic with a laptop this error appears :
Code:
http://192.168.0.17/images/splash.png... ok
Could not use picture: Operation not supported (http://ipxe.org/3c008003)
Could not boot image: Operation not supported (http://ipxe.org/3c008003)
No more network devices

I don't understand why Huh
Is PNG must be 24 or 8 bits?
(The resolution of my image is 1024 x 768)

Any idea ?
Thank you
Try to rebuild your iPXE with DEBUG=vesafb, that way you should at least know if your resolution is supported on the hardware, but your error seems to indicate lack of support for the image type, or that the image is not a proper pixel buffer. You might have used some funky PNG format not supported by iPXE. Try to use the "Export for web" feature to create your PNG file. That usually creates the most compatible files. Also, the last message seems to indicate that you are trying to boot the PNG image, which obviously seems wrong. I'm just assuming that it might be something wrong further down in your script.
Thank you Robin.

I think the CONSOLE_CMD was missing in my kpxe, I generated again and it's good. But the error message was not very helpful ^^
PNG 24 works, great news Smile
Best way to test if lpxe is good is to use your online picture :
Code:
console --picture http://boot.ipxe.org/texture.png --left 32 --right 32 --top 32 --bottom 48

I have some other general questions :

- is it possible to use iPXE with PXELINUX configuration (default file), if yes, which options must be add to the kpxe ? I tried to chainload lpxelinux.0 but freeze on "peter anvin" boot message
- why "reboot" command works even though REBOOT_CMD is not check for compil ?
- is there any way to memorize options on rom-o-matic (with get param url or something else) ?
- is there any documentation who list all rom-o-matic option ?
- in virtualbox I use a nic with native iPXE rom but not all necessary modules are present. How can I force to use my compiled kpxe file ? because ipxe tag is already present the PXE send directly the ipxe file...
* iPXE can't parse or use pxelinux config file directly. You need to run pxelinux.0 for that.
* Reboot command should not be available if REBOOT_CMD is not checked. Must be a rom-o-matic issue.
* Not sure if you can store params to rom-o-matic in the URL. Post an issue on the github page for rom-o-matic.
* AFAIK, there is no docs for rom-o-matic except for what you see on the page and whatever you can gleam from the source at github.
* VirtualBox comes with a built-in PXE ROM which uses iPXE if you don't install the non-free extension package. This iPXE is very cut-down in terms of features. You'll need to use the extended chainloading recipe which you can find via my menu at http://ipxe.org/examples/.
Thank you.

I wrote to rom-o-matic, and good news because you can pass GET URL to build, like this :
Code:
https://rom-o-matic.eu/build.fcgi?BINARY=ipxe.efi&BINDIR=bin-x86_64-efi&REVISION=master

I try again de chainload to pxelinux.0 (and lpxelinux.0)... and it works with this :

Code:
:pxelinux
set 210:string tftp://${next-server}/
chain ${210:string}lpxelinux.0 || goto erreur

but not with this (look the "slash" after next-server variable) :

Code:
:pxelinux
set 210:string tftp://${next-server}
chain ${210:string}/lpxelinux.0 || goto erreur

error is :
Code:
PXELINUX 6.03 iwIP 2014..... Peter Anvin et al
Unable to locate configuration file

Boot failed: press a key to retry, or wait for reset...

Is is a bug or normal ?
Other question: space character or accent failed with NFS path, is there any workaround ? (except delete or replace them)
It all depends on how the NBP (pxelinux) requests TFTP files. If it has /XXX then obviously you can't have / at the end of the prefix.

You probably need to use %20 instead of space. Normal URI-escaping rules apply.
Sorry my post was incorrect, I edited the code, please read again Wink

OK for the space, but same issue with accents. with "é" in path iPXE show "%FFFFFFC3%FFFFFFA9", what is the conversion method.
Use a URI-escaper to convert the character to escaped representation. If you're a programmer you can use the URI::Escape perl module, or you can use a e.g. a plugin for Notepad++ to do the job.
Reference URL's