Re: [Dnsmasq-discuss] pxe-service line for UEFI system?

2020-01-28 Thread Michal Zatloukal
On Wed, 22 Jan 2020 at 21:43, Geert Stappers  wrote:
>...
>
> FWIW
> Over here is "PXE service" not used.  I have no idea what I might be
> missing. My reason for involvement in this thread is finding what use
> case O.P. has for dnsmasq. Finding out if it can improve my use case,
> finding out if it can improve dnsmasq (which also benefits me).
>
At this point its mostly curiosity - I am migrating from an older
pxelinux, BIOS-only setup to iPXE for BIOS and UEFI, with possible
expansion into direct-booting specific clients like a Raspberry Pi. I
wanted to keep the option of booting into the old setup. Also, having
read the documentation, it should be possible to use dnsmasq to
provide PXE boot service independently of the DHCP server in the
network, which would be particularly useful for making an appliance-like
setup that is dropped into the network and provides tools like clonezilla,
memtest, etc. I haven't tried that mode yet.

> > > The idea of it is getting a "shared problem". And from
> > > a shared problem to get to a shared solution.
> >
> > A shared problem: Make UEFI PXE client display 2 boot options - one
> > for an existing boot image, and one to exit PXE (boot from disk,
> > etc.).
>
> My approach is default boot from disk and netbooting for a (re)install.
>
> Back to "pxe service".  It is a server-client-combo-issue.
> Here on this mailinglist is dnsmasq the only common factor.
> Dnsmasq is at server side. The explain the server-client-combo-issue
> needs the client side extra care.  So tell about client site.
> That includes the risk of losing audience here due "I don't have such
> clients". Increase audience numbers by "The seen behaviour can be
> reproduced with this libre virtualisation platform".

Oh, so you can't induce the issue/reproduce the preconditions. Now
it's clear to me :)

Sorry, I'm not keeping up with libre VM solutions, so I'm not sure
which, if any, can do PXE UEFI boot. I'm using vmware (Fusion, HW
version 14) to test this. Google finds this article [1], which
suggests it is possible to do in KVM. VirtualBox which I have
installed, does not support network boot in UEFI mode. If you have
UEFI hardware and don't mind using it for this, I would suggest using
the three-service config and seeing if that works correctly. I can
send a packet capture if needed.
I _think_ you should be able to replicate at least the PXE-menu part
of the issue with just a config for dhclient [2] - haven't tested this, as
§it requires the normal dhclient instance to be disabled.

Cheers,
MZ

> Groeten
> Geert Stappers
> --
> Leven en laten leven
>
> ___
> Dnsmasq-discuss mailing list
> Dnsmasq-discuss@lists.thekelleys.org.uk
> http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss

[1] 
https://eatpeppershothot.blogspot.com/2016/07/enable-pxe-netboot-in-kvm-guests-for.html
[2]
# dhclient.conf:
send vendor-class-identifier "PXEClient:Arch:7:UNDI:003016";
option client-system-architecture code 93 = unsigned integer 16;
send client-system-architecture 7;

___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


Re: [Dnsmasq-discuss] pxe-service line for UEFI system?

2020-01-22 Thread Geert Stappers
On Mon, Jan 20, 2020 at 11:34:01PM +0100, Michal Zatloukal wrote:
> On Mon, 20 Jan 2020 at 21:38, Geert Stappers wrote:
> > On Sun, Jan 19, 2020 at 10:40:28PM +0100, Michal Zatloukal wrote:
> > > On Sun, 19 Jan 2020 at 21:45, Geert Stappers wrote:
> > > >
> > > > Please do make the extra mile
> > > > and express how dnsmasq could be better.
> > > >
> > >
> > > What is expected of dnsmasq - a DHCP offer with either a populated
> > > menu, or a populated boot-filename option. As mentioned in the OP,
> > > currently dnsmasq provides broken menu (no items present) and empty
> > > boot-filename, unless another "phantom" boot option is also defined
> > > (in which case it provides the populated menu).
> > >
> > > I looked over the dnsmasq docs again and noticed this bit in pxe-prompt:
> > > } If --pxe-prompt is omitted the system will wait for user input if
> > > } there are multiple items in the menu, but boot immediately if there
> > > } is only one.
> > > As I understand it, if pxe-prompt is defined in the config, the
> > > services should be sent regardless of their count. So that's a bug,
> > > unless...
> > > I also looked at the changelog and found this in the 2.76 release:
> > >
> > > } Workaround problems with UEFI PXE clients. There exist
> > > } in the wild PXE clients which have problems with PXE
> > > } boot menus. To work around this, when there's a single
> > > } --pxe-service which applies to client, then that target
> > > } will be booted directly, rather then sending a
> > > } single-item boot menu.
> > >
> > > It seems like these 2 parts of the code are interacting incorrectly.
> > > 1) the pxe-service exit item is ignored, that's why the phantom option is 
> > > needed
> > > 2) if pxe-prompt is explicitly defined, what _is_ supposed to happen
> > > for UEFI clients?
> > > TBH, I don't see why this UEFI issue even requires a UEFI-specific
> > > code workaround - shouldn't a config like this [1] avoid the problems,
> > > no code workaround needed?
> > >
> > > MZ
> > >
> > > [1]
> > > dhcp-match=set:efi-x86_64,option:client-arch,7
> > > dhcp-match=set:efi-x86_64,option:client-arch,9
> > > pxe-prompt=tag:!efi-x86_64,"dnsmasq PXE menu"
> > > pxe-service=7,...
> > > pxe-service=9,...
> >
> >
> > Seen it.  I still don't understand the OP problem.
> The OP was asking if their configuration of pxe-prompt/pxe-service
> options was correct, as the UEFI client was neither booting nor
> showing the menu from the provided DHCPOFFER. A packet capture
> revealed the problem - missing PXE menu items in the provided
> DHCPOFFER. (DHCP option 43, suboption 9).
> 
> > For some reason I do feel my wish to improve dnsmasq
> > is getting in the way.  I'm gonna spend my energy elsewhere.
> >
> > Advise to Original Poster:  Make your problem reproducable.
> I'm not sure I understand - are you saying your UEFI client gets a
> DHCPOFFER with a valid PXE boot menu when you configure the following
> [1]?
> [1]
> pxe-prompt="dnsmasq menu"
> pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> pxe-service=7, "Exit menu"
 

FWIW
Over here is "PXE service" not used.  I have no idea what I might be
missing. My reason for involvement in this thread is finding what use
case O.P. has for dnsmasq. Finding out if it can improve my use case,
finding out if it can improve dnsmasq (which also benefits me).


> > The idea of it is getting a "shared problem". And from
> > a shared problem to get to a shared solution.
> 
> A shared problem: Make UEFI PXE client display 2 boot options - one
> for an existing boot image, and one to exit PXE (boot from disk,
> etc.).

My approach is default boot from disk and netbooting for a (re)install.


Back to "pxe service".  It is a server-client-combo-issue.
Here on this mailinglist is dnsmasq the only common factor.
Dnsmasq is at server side. The explain the server-client-combo-issue
needs the client side extra care.  So tell about client site.
That includes the risk of losing audience here due "I don't have such
clients". Increase audience numbers by "The seen behaviour can be
reproduced with this libre virtualisation platform".



Groeten
Geert Stappers
-- 
Leven en laten leven

___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


Re: [Dnsmasq-discuss] pxe-service line for UEFI system?

2020-01-20 Thread Michal Zatloukal
On Mon, 20 Jan 2020 at 21:38, Geert Stappers  wrote:
>
> On Sun, Jan 19, 2020 at 10:40:28PM +0100, Michal Zatloukal wrote:
> > On Sun, 19 Jan 2020 at 21:45, Geert Stappers wrote:
> > > On Sun, Jan 19, 2020 at 08:33:54PM +0100, P W wrote:
> > > > On Sun, Jan 19, 2020 at 07:30:44PM +0100, Michal Zatloukal wrote:
> > > > > On Wed, 8 Jan 2020 at 00:16, Michal Zatloukal wrote:
> > > > > >
> > > > > >  
> > > > > >
> > > > >
> > > >
> > > > Patches welcome
> > > >
> > >
> > > Longer version:
> > > * Seen the postings
> > > * Seen that something needs some extra configuration
> > > * What is expected from the dnsmasq project is not seen
> > >
> > > Please do make the extra mile
> > > and express how dnsmasq could be better.
> > >
> >
> > What is expected of dnsmasq - a DHCP offer with either a populated
> > menu, or a populated boot-filename option. As mentioned in the OP,
> > currently dnsmasq provides broken menu (no items present) and empty
> > boot-filename, unless another "phantom" boot option is also defined
> > (in which case it provides the populated menu).
> >
> > I looked over the dnsmasq docs again and noticed this bit in pxe-prompt:
> > } If --pxe-prompt is omitted the system will wait for user input if
> > } there are multiple items in the menu, but boot immediately if there
> > } is only one.
> > As I understand it, if pxe-prompt is defined in the config, the
> > services should be sent regardless of their count. So that's a bug,
> > unless...
> > I also looked at the changelog and found this in the 2.76 release:
> >
> > > Workaround problems with UEFI PXE clients. There exist
> > > in the wild PXE clients which have problems with PXE
> > > boot menus. To work around this, when there's a single
> > > --pxe-service which applies to client, then that target
> > > will be booted directly, rather then sending a
> > > single-item boot menu.
> >
> > It seems like these 2 parts of the code are interacting incorrectly.
> > 1) the pxe-service exit item is ignored, that's why the phantom option is 
> > needed
> > 2) if pxe-prompt is explicitly defined, what _is_ supposed to happen
> > for UEFI clients?
> > TBH, I don't see why this UEFI issue even requires a UEFI-specific
> > code workaround - shouldn't a config like this [1] avoid the problems,
> > no code workaround needed?
> >
> > MZ
> >
> > [1]
> > dhcp-match=set:efi-x86_64,option:client-arch,7
> > dhcp-match=set:efi-x86_64,option:client-arch,9
> > pxe-prompt=tag:!efi-x86_64,"dnsmasq PXE menu"
> > pxe-service=7,...
> > pxe-service=9,...
>
>
> Seen it.  I still don't understand the OP problem.
The OP was asking if their configuration of pxe-prompt/pxe-service
options was correct, as the UEFI client was neither booting nor
showing the menu from the provided DHCPOFFER. A packet capture
revealed the problem - missing PXE menu items in the provided
DHCPOFFER. (DHCP option 43, suboption 9).

> For some reason I do feel my wish to improve dnsmasq
> is getting in the way.  I'm gonna spend my energy elsewhere.
>
> Advise to Original Poster:  Make your problem reproducable.
I'm not sure I understand - are you saying your UEFI client gets a
DHCPOFFER with a valid PXE boot menu when you configure the following
[1]?
[1]
pxe-prompt="dnsmasq menu"
pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
pxe-service=7, "Exit menu"

> The idea of it is getting a "shared problem". And from
> a shared problem to get to a shared solution.

A shared problem: Make UEFI PXE client display 2 boot options - one
for an existing boot image, and one to exit PXE (boot from disk,
etc.).

> Groeten
> Geert Stappers
> --
> Leven en laten leven
> ___
> Dnsmasq-discuss mailing list
> Dnsmasq-discuss@lists.thekelleys.org.uk
> http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss

MZ

___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


Re: [Dnsmasq-discuss] pxe-service line for UEFI system?

2020-01-20 Thread Geert Stappers
On Sun, Jan 19, 2020 at 10:40:28PM +0100, Michal Zatloukal wrote:
> On Sun, 19 Jan 2020 at 21:45, Geert Stappers wrote:
> > On Sun, Jan 19, 2020 at 08:33:54PM +0100, P W wrote:
> > > On Sun, Jan 19, 2020 at 07:30:44PM +0100, Michal Zatloukal wrote:
> > > > On Wed, 8 Jan 2020 at 00:16, Michal Zatloukal wrote:
> > > > >
> > > > >   
> > > > >
> > > >
> > >
> > > Patches welcome
> > >
> >
> > Longer version:
> > * Seen the postings
> > * Seen that something needs some extra configuration
> > * What is expected from the dnsmasq project is not seen
> >
> > Please do make the extra mile
> > and express how dnsmasq could be better.
> >
> 
> What is expected of dnsmasq - a DHCP offer with either a populated
> menu, or a populated boot-filename option. As mentioned in the OP,
> currently dnsmasq provides broken menu (no items present) and empty
> boot-filename, unless another "phantom" boot option is also defined
> (in which case it provides the populated menu).
> 
> I looked over the dnsmasq docs again and noticed this bit in pxe-prompt:
> } If --pxe-prompt is omitted the system will wait for user input if
> } there are multiple items in the menu, but boot immediately if there
> } is only one.
> As I understand it, if pxe-prompt is defined in the config, the
> services should be sent regardless of their count. So that's a bug,
> unless...
> I also looked at the changelog and found this in the 2.76 release:
> 
> > Workaround problems with UEFI PXE clients. There exist
> > in the wild PXE clients which have problems with PXE
> > boot menus. To work around this, when there's a single
> > --pxe-service which applies to client, then that target
> > will be booted directly, rather then sending a
> > single-item boot menu.
> 
> It seems like these 2 parts of the code are interacting incorrectly.
> 1) the pxe-service exit item is ignored, that's why the phantom option is 
> needed
> 2) if pxe-prompt is explicitly defined, what _is_ supposed to happen
> for UEFI clients?
> TBH, I don't see why this UEFI issue even requires a UEFI-specific
> code workaround - shouldn't a config like this [1] avoid the problems,
> no code workaround needed?
> 
> MZ
> 
> [1]
> dhcp-match=set:efi-x86_64,option:client-arch,7
> dhcp-match=set:efi-x86_64,option:client-arch,9
> pxe-prompt=tag:!efi-x86_64,"dnsmasq PXE menu"
> pxe-service=7,...
> pxe-service=9,...


Seen it.  I still don't understand the OP problem.
For some reason I do feel my wish to improve dnsmasq
is getting in the way.  I'm gonna spend my energy elsewhere.

Advise to Original Poster:  Make your problem reproducable.
The idea of it is getting a "shared problem". And from
a shared problem to get to a shared solution.



Groeten
Geert Stappers
-- 
Leven en laten leven


signature.asc
Description: PGP signature
___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


Re: [Dnsmasq-discuss] pxe-service line for UEFI system?

2020-01-19 Thread Michal Zatloukal
Yeah - sorry, I'm not much help when it comes to C code. I was coming
in with assumption my config was somehow incorrect.

What is expected of dnsmasq - a DHCP offer with either a populated
menu, or a populated boot-filename option. As mentioned in the OP,
currently dnsmasq provides broken menu (no items present) and empty
boot-filename, unless another "phantom" boot option is also defined
(in which case it provides the populated menu).

I looked over the dnsmasq docs again and noticed this bit in pxe-prompt:
> If --pxe-prompt is omitted the system will wait for user input if there are 
> multiple items in the menu, but boot immediately if there is only one.
As I understand it, if pxe-prompt is defined in the config, the
services should be sent regardless of their count. So that's a bug,
unless...
I also looked at the changelog and found this in the 2.76 release:

> Workaround problems with UEFI PXE clients. There exist
> in the wild PXE clients which have problems with PXE
> boot menus. To work around this, when there's a single
> --pxe-service which applies to client, then that target
> will be booted directly, rather then sending a
> single-item boot menu.

It seems like these 2 parts of the code are interacting incorrectly.
1) the pxe-service exit item is ignored, that's why the phantom option is needed
2) if pxe-prompt is explicitly defined, what _is_ supposed to happen
for UEFI clients?
TBH, I don't see why this UEFI issue even requires a UEFI-specific
code workaround - shouldn't a config like this [1] avoid the problems,
no code workaround needed?

MZ

[1]
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-match=set:efi-x86_64,option:client-arch,9
pxe-prompt=tag:!efi-x86_64,"dnsmasq PXE menu"
pxe-service=7,...
pxe-service=9,...

On Sun, 19 Jan 2020 at 21:45, Geert Stappers  wrote:
>
> On Sun, Jan 19, 2020 at 08:33:54PM +0100, P W wrote:
> > On Sun, Jan 19, 2020 at 07:30:44PM +0100, Michal Zatloukal wrote:
> > > On Wed, 8 Jan 2020 at 00:16, Michal Zatloukal  wrote:
> > > >
> > > > In the meantime, I tried a simpler case [1] of UEFI PXE services
> > > > config, which I confirmed to work.
> > > >
> > > > I intended to replace my config with this and work up towards the
> > > > fancier tag-operated version, but made a wrong assumption and _added_
> > > > the trivial config to existing set of config files (adding .bak to the
> > > > filename didn't stop the original from being loaded). Strangely, now
> > > > option 43 contained all services for CSA 7 - both conditional, and
> > > > unconditional ones, which were previosly missing. This actually
> > > > happens even when the new config file is reduced to a single,
> > > > unconditional pxe-service line. That's not how this should work, or is
> > > > it? Is there a particular order to these pxe-* config options? IMHO
> > > > the fact that only the menu items are missing, but prompt is sent,
> > > > should indicate that setting tags is correct.
> > > >
> > > > I'll do from-the-ground-up experiment soon, hopefully finding at which
> > > > point dnsmasq stops sending the boot options.
> > > >
> > > > Cheers,
> > > > MZ
> > > >
> > > > [1]
> > > > # Commented out to use my existing config, must be included if using 
> > > > standalone.
> > > > #dhcp-range=10.0.0.10,10.0.0.240,2h
> > > > #log-dhcp
> > > > #tftp-root=/tftpboot
> > > > #dhcp-no-override
> > > > pxe-prompt="dnsmasq menu"
> > > > pxe-service=0, "Boot BIOS PXElinux", bios/pxelinux
> > > > pxe-service=0, "Boot BIOS iPXE", ipxe/undionly.kpxe
> > > > pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> > > > pxe-service=7, "Other item CSA 7",etc/other.efi
> > > > pxe-service=9, "Boot UEFI CSA 9", efi64/syslinux.efi
> > > > pxe-service=9, "Other item CSA 9",etc/other.efi
> > > > pxe-service=0, "Exit menu"
> > > > pxe-service=7, "Exit menu"
> > > > pxe-service=9, "Exit menu"
> > >
> > >
> > > Finally got to troubleshoot this today...
> > > The issue arises when there's only a single "proper" pxe-service
> > > configured (one that actually has a boot-filename defined). Is this
> > > expected?
> > >
> > > So this works:
> > > pxe-prompt="dnsmasq menu"
> > > pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> > > pxe-service=7, "Other item CSA 7",etc/other.efi
> > > pxe-service=7, "Exit menu"
> > >
> > > But this does not:
> > > pxe-prompt="dnsmasq menu"
> > > pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> > > pxe-service=7, "Exit menu"
> > >
> >
> > Patches welcome
> >
>
> Longer version:
> * Seen the postings
> * Seen that something needs some extra configuration
> * What is expected from the dnsmasq project is not seen
>
> Please do make the extra mile
> and express how dnsmasq could be better.
>
>
> Groeten
> Geert Stappers
> --
> Leven en laten leven
>
> ___
> Dnsmasq-discuss mailing list
> Dnsmasq-discuss@lists.thekelleys.org.uk
> http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss

___

Re: [Dnsmasq-discuss] pxe-service line for UEFI system?

2020-01-19 Thread Geert Stappers
On Sun, Jan 19, 2020 at 08:33:54PM +0100, P W wrote:
> On Sun, Jan 19, 2020 at 07:30:44PM +0100, Michal Zatloukal wrote:
> > On Wed, 8 Jan 2020 at 00:16, Michal Zatloukal  wrote:
> > >
> > > In the meantime, I tried a simpler case [1] of UEFI PXE services
> > > config, which I confirmed to work.
> > >
> > > I intended to replace my config with this and work up towards the
> > > fancier tag-operated version, but made a wrong assumption and _added_
> > > the trivial config to existing set of config files (adding .bak to the
> > > filename didn't stop the original from being loaded). Strangely, now
> > > option 43 contained all services for CSA 7 - both conditional, and
> > > unconditional ones, which were previosly missing. This actually
> > > happens even when the new config file is reduced to a single,
> > > unconditional pxe-service line. That's not how this should work, or is
> > > it? Is there a particular order to these pxe-* config options? IMHO
> > > the fact that only the menu items are missing, but prompt is sent,
> > > should indicate that setting tags is correct.
> > >
> > > I'll do from-the-ground-up experiment soon, hopefully finding at which
> > > point dnsmasq stops sending the boot options.
> > >
> > > Cheers,
> > > MZ
> > >
> > > [1]
> > > # Commented out to use my existing config, must be included if using 
> > > standalone.
> > > #dhcp-range=10.0.0.10,10.0.0.240,2h
> > > #log-dhcp
> > > #tftp-root=/tftpboot
> > > #dhcp-no-override
> > > pxe-prompt="dnsmasq menu"
> > > pxe-service=0, "Boot BIOS PXElinux", bios/pxelinux
> > > pxe-service=0, "Boot BIOS iPXE", ipxe/undionly.kpxe
> > > pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> > > pxe-service=7, "Other item CSA 7",etc/other.efi
> > > pxe-service=9, "Boot UEFI CSA 9", efi64/syslinux.efi
> > > pxe-service=9, "Other item CSA 9",etc/other.efi
> > > pxe-service=0, "Exit menu"
> > > pxe-service=7, "Exit menu"
> > > pxe-service=9, "Exit menu"
> > 
> > 
> > Finally got to troubleshoot this today...
> > The issue arises when there's only a single "proper" pxe-service
> > configured (one that actually has a boot-filename defined). Is this
> > expected?
> > 
> > So this works:
> > pxe-prompt="dnsmasq menu"
> > pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> > pxe-service=7, "Other item CSA 7",etc/other.efi
> > pxe-service=7, "Exit menu"
> > 
> > But this does not:
> > pxe-prompt="dnsmasq menu"
> > pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> > pxe-service=7, "Exit menu"
> > 
> 
> Patches welcome
> 

Longer version:
* Seen the postings
* Seen that something needs some extra configuration
* What is expected from the dnsmasq project is not seen

Please do make the extra mile
and express how dnsmasq could be better.


Groeten
Geert Stappers
-- 
Leven en laten leven

___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


Re: [Dnsmasq-discuss] pxe-service line for UEFI system?

2020-01-19 Thread P W
On Sun, Jan 19, 2020 at 07:30:44PM +0100, Michal Zatloukal wrote:
> On Wed, 8 Jan 2020 at 00:16, Michal Zatloukal  wrote:
> >
> > In the meantime, I tried a simpler case [1] of UEFI PXE services
> > config, which I confirmed to work.
> >
> > I intended to replace my config with this and work up towards the
> > fancier tag-operated version, but made a wrong assumption and _added_
> > the trivial config to existing set of config files (adding .bak to the
> > filename didn't stop the original from being loaded). Strangely, now
> > option 43 contained all services for CSA 7 - both conditional, and
> > unconditional ones, which were previosly missing. This actually
> > happens even when the new config file is reduced to a single,
> > unconditional pxe-service line. That's not how this should work, or is
> > it? Is there a particular order to these pxe-* config options? IMHO
> > the fact that only the menu items are missing, but prompt is sent,
> > should indicate that setting tags is correct.
> >
> > I'll do from-the-ground-up experiment soon, hopefully finding at which
> > point dnsmasq stops sending the boot options.
> >
> > Cheers,
> > MZ
> >
> > [1]
> > # Commented out to use my existing config, must be included if using 
> > standalone.
> > #dhcp-range=10.0.0.10,10.0.0.240,2h
> > #log-dhcp
> > #tftp-root=/tftpboot
> > #dhcp-no-override
> > pxe-prompt="dnsmasq menu"
> > pxe-service=0, "Boot BIOS PXElinux", bios/pxelinux
> > pxe-service=0, "Boot BIOS iPXE", ipxe/undionly.kpxe
> > pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> > pxe-service=7, "Other item CSA 7",etc/other.efi
> > pxe-service=9, "Boot UEFI CSA 9", efi64/syslinux.efi
> > pxe-service=9, "Other item CSA 9",etc/other.efi
> > pxe-service=0, "Exit menu"
> > pxe-service=7, "Exit menu"
> > pxe-service=9, "Exit menu"
> 
> 
> Finally got to troubleshoot this today...
> The issue arises when there's only a single "proper" pxe-service
> configured (one that actually has a boot-filename defined). Is this
> expected?
> 
> So this works:
> pxe-prompt="dnsmasq menu"
> pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> pxe-service=7, "Other item CSA 7",etc/other.efi
> pxe-service=7, "Exit menu"
> 
> But this does not:
> pxe-prompt="dnsmasq menu"
> pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
> pxe-service=7, "Exit menu"
> 

Patches welcome

___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


Re: [Dnsmasq-discuss] pxe-service line for UEFI system?

2020-01-07 Thread Michal Zatloukal
In the meantime, I tried a simpler case [1] of UEFI PXE services
config, which I confirmed to work.

I intended to replace my config with this and work up towards the
fancier tag-operated version, but made a wrong assumption and _added_
the trivial config to existing set of config files (adding .bak to the
filename didn't stop the original from being loaded). Strangely, now
option 43 contained all services for CSA 7 - both conditional, and
unconditional ones, which were previosly missing. This actually
happens even when the new config file is reduced to a single,
unconditional pxe-service line. That's not how this should work, or is
it? Is there a particular order to these pxe-* config options? IMHO
the fact that only the menu items are missing, but prompt is sent,
should indicate that setting tags is correct.

I'll do from-the-ground-up experiment soon, hopefully finding at which
point dnsmasq stops sending the boot options.

Cheers,
MZ

[1]
# Commented out to use my existing config, must be included if using standalone.
#dhcp-range=10.0.0.10,10.0.0.240,2h
#log-dhcp
#tftp-root=/tftpboot
#dhcp-no-override
pxe-prompt="dnsmasq menu"
pxe-service=0, "Boot BIOS PXElinux", bios/pxelinux
pxe-service=0, "Boot BIOS iPXE", ipxe/undionly.kpxe
pxe-service=7, "Boot UEFI CSA 7", efi64/syslinux.efi
pxe-service=7, "Other item CSA 7",etc/other.efi
pxe-service=9, "Boot UEFI CSA 9", efi64/syslinux.efi
pxe-service=9, "Other item CSA 9",etc/other.efi
pxe-service=0, "Exit menu"
pxe-service=7, "Exit menu"
pxe-service=9, "Exit menu"

___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss


[Dnsmasq-discuss] pxe-service line for UEFI system?

2020-01-06 Thread Michal Zatloukal
Hi.
I'm putting together a "booting section" fo my config, where I want to
provide various boot images, according to the machine architecture
provided by the client. As I understand the pxe-service functionality,
there are 2 ways to to netboot:
- either provide bootfile-name (67), which the client downloads
immediately and executes, or
- provide pxe menu, (prompt, items), within option 43, client makes a
selection,  DHCP provides filename for the selected item, and from
there it's the same as the above.

The config (attached below [1]) works fine for PC-BIOS, but I just
can't get dnsmasq to provide any PXE menu items to X86-64_EFI clients.
Tried the CSA keyword (X86-64_EFI), integer (7), removed the skipmenu
tag filter, commented out all pxe options specific to other
architectures, nada. For the UEFI client (using vmware VM), the
provided option 43 only contains the prompt suboption, and end
character (the VM doesn't display anything and just goes back to boot
menu, but that's down to their PXE ROM, I assume). Double-checked CSA
provided by the client, it is indeed 7 (+
PXEClient:Arch:7:UNDI:003016 in VendorClass).  What am I missing?

The dnsmasq instance is a full DHCP server, not just proxy. I can
private-message the full config if you need it. I'm on ubuntu-provided
version 2.80-1ubuntu2.

Cheers,
MZ

[1]
# set custom tag for matching architectures - used for option that
don't have implicit filtering
dhcp-match=set:efi-arm64,option:client-arch,11
dhcp-match=set:efi-arm32,option:client-arch,10
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-match=set:efi-x86_64,option:client-arch,9
dhcp-match=set:efi-x86,option:client-arch,6
dhcp-match=set:bios,option:client-arch,0

# iPXE will make a 2nd DHCP request with custom user class - this is
where we provide path for script to run
dhcp-userclass=set:ipxe,iPXE

## Script for iPXE
dhcp-boot=tag:ipxe,"http://${dhcp-server}/shared/scripts/main.ipxe;

# Don't offer menu to ipxe- or directboot-tagged requests
#tag-if=set:directboot,tag:vmware
tag-if=set:skipmenu,tag:ipxe
tag-if=set:skipmenu,tag:directboot

# Directboot mappings
dhcp-boot=tag:bios,tag:skipmenu,tag:!ipxe,ipxe/undionly.kpxe
dhcp-boot=tag:efi-x86_64,tag:skipmenu,tag:!ipxe,ipxe/ipxe.efi

# ...or go through a menu
pxe-prompt=tag:!skipmenu,"Where do you want to go today?"

# Common menu
pxe-service=tag:!skipmenu,x86PC,"Boot from local disk"
pxe-service=tag:!skipmenu,X86-64_EFI,"Boot from local disk"

# BIOS menu
pxe-service=tag:!skipmenu,x86PC,"Raspberry Pi - pxelinux",bios/pxelinux.0
pxe-service=tag:!skipmenu,x86PC,"Raspberry Pi - ipxe - kpxe",ipxe/undionly.kpxe
pxe-service=tag:!skipmenu,x86PC,"Raspberry Pi - ipxe -
kkpxe",ipxe/undionly.kkpxe

# UEFI menu
pxe-service=tag:!skipmenu,X86-64_EFI,"Raspberry Pi - ipxe - UEFI",ipxe/ipxe.efi

## Add custom DHCP option for iPXE - extra options for clonezilla cmdline
dhcp-option-force=tag:nd1,tag:ipxe,129,"live-netdev=eth1"
dhcp-option-force=tag:nd0,tag:ipxe,129,"live-netdev=eth0"

___
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss