[syslinux] Syslinux 5 (i)pxelinux.0 unnecessary PATH requests

Shao Miller sha0.miller at gmail.com
Tue Dec 11 10:50:58 PST 2012


On 12/11/2012 11:37, Arends, R.R. wrote:
>
> i just build a new ipxelinux.0 with an EMBED=../../syslinux-5/core/pxelinux.0.
> i'm trying to load up my vesamenu.c32 menu from http:.
>
> and offcorse i want this as optimal as possible, with the least needed GET requests.
>
> OLD situation with v4:
> PXE ROM -> ipxelinux.0 (tftp) -> menu.php (http) -> vesamenu.c32 (http)
>
> NEW situation with v5:
> PXE ROM -> ipxelinux.0 (tftp) -> /ldlinux.c32 (http 404) -> //ldlinux.c32 (http 404) -> //boot/isolinux/ldlinux.c32 (http 404) -> //isolinux/ldlinux.c32 etc. etc. -> menu.php (http 200) -> /mods/vesamenu.c32 (http 200)
> that can be fixed with adding ldlinux.c32 to the root of my webserver (ugly... but oke).
> but then we still have the other libraries, which it tries to fetch in the same directories first, and yes we can add those to the root aswel as a work around.... but i'd love to have them seperate.
>
> menu.php has the UI directive as /mods/vesamenu.c32 and the PATH as mods configured
> but then still with that PATH directive in the menu it still tries to find the libraries in this order:
>
> GET /libcom32.c32 (http 404)
> GET //libcom32.c32 (http 404)
> GET /mods//libcom32.c32 (http 200) < --- success!
> GET /libutil_com.c32 (http 404)
> GET //libutil_com.c32 (http 404)
> GET /mods//libutil_com.c32 (http 200) <--- success!
>
> in my opinion these are atleast 4 unnecessary requests to the webserver before finding the correct one.
> and another thing the PATH directive can only be read after ldlinux.c32 is loaded, so ldlinux.c32 should always be in the root?
>
> i'm looking for a way to configure this to only search the libs and ldlinux.c32 in ./mods/ to limit the needed GETs to the server, speed things up a bit and have a neat directory structure.
>
> i was already found the 'search_directories' static const in load_env32.c, but after changing that to:
>    static const char *search_directories[] = {
>      "/mods",
>      NULL
>    };
>
> it still does these requests:
> GET /libcom32.c32
> GET //libcom32.c32

Are you using DHCP option 210?  It is documented in doc/pxelinux.txt and 
is related to where PXELINUX goes looking for things.  Yes, PATH cannot 
be processed until ldlinux.c32 is fetched, but option 210 is processed 
before.  - Shao



More information about the Syslinux mailing list