Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Nov 2008 12:09:21 +0200
From:      Danny Braniss <danny@cs.huji.ac.il>
To:        Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        current@freebsd.org
Subject:   Re: RFC - per-host configuration of pxe booting 
Message-ID:  <E1L3pQX-000MPo-IF@kabab.cs.huji.ac.il>
In-Reply-To: <20081122012351.GA98158@onelab2.iet.unipi.it> 
References:  <20081122012351.GA98158@onelab2.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
> [this mailing list is as good as anyone i guess... feel free
> to forward it if you believe there is a more appropriate forum]
> 
> The goal of this email is to figure out how to load host-specific
> configurations from pxeboot -- maybe as simple as loading
> /boot/loader.conf.${hostname} and possibly something slightly more
> flexible that allows me to define machine 'classes' (e.g. based on
> similar hardware configurations etc.).
> 

why not use DHCP? you need it to boot the diskless anyways, and it can provide
a wealth of information. The code has been around for many years.
for example, in the dhcpd.conf:
        option FBSD.ind1 "hw.msk.legacy_intr=1";
        option FBSD.ind2 "machdep.conspeed=115200";
        option FBSD.rc-conf4 "rc.ws"
these are placed, by bootp.c, in kenv.

> I have a trivial suggestion (patches below) to implement the former,
> and some ideas for the latter.
> 
> At the moment the only host-specific variables available to pxeboot
> are: "boot.netif.hwaddr", "boot.netif.ip", and "dhcp.host-name".
> 
> "loaddev" is also available but it is not machine-specific.
> 
> The list of config files is specified in /boot/defaults/loader.conf
> in the "loader_conf_files" variable, and there is no way
> to override it from other files.
> So we need to change its default value to include the hostname, e.g.
> 
>     loader_conf_files="/boot/device.hints /boot/device.hints.${dhcp.host-name} /boot/loader.conf /boot/loader.conf.${dhcp.host-name}"
> 
> (pardon the ling line -- forth does not allow line breaks)
> 
> Also we need to redefine the function set_conf_files
> in /boot/support.4th so that it can expand ${variable}
> 
>         : set_conf_files
>           conf_files .addr @ ?dup if free-memory then
>           set_environment_variable
>           s" loader_conf_files" getenv
>           strdup
>           conf_files .len ! conf_files .addr !
>         ;
> 
> (this is actually a slight simplification of the existing code).
> 
> It might be useful to let dhcp pass more parameters to pxeboot
> so e.g. we can expand it to a 'machine class' which can be used
> for multiple machines. This should be relatively trivial to impelemnt,
> but it requires modifications to the pxeboot binary -- no big deal
> since this is something centralized.
> 
> Comments ?
> 
> 	cheers
> 	luigi
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
> 





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1L3pQX-000MPo-IF>