On Sat, Jan 28, 2017 at 06:41:34PM +0100, Sven-Volker Nowarra wrote: > > Isn't better to use rewrite/file remapping instead of hacking pxeboot? > > If an i386 machine would request /etc/boot.conf via tftp you could rewrite > > it to (based on fact you know that that machine is i386 - during > > provisioning) > > /etc/i386/boot.conf. For the client I suppose it would still think it gets > > /etc/boot.conf.
> If this works, I could get rid of recompiling pxeboot everytime a > new release comes out. Well, sometimes pxeboot also supports "older" > OpenBSDs, but that is another topic. > > I understand, the tftp server has a "root dir" for the client > specified. In the dhcpd.conf I declare per client a MAC address and > its filename (usually "/pxeboot"). The i386 pxeboot manual says: > "pxeboot boot program will look for an /etc/boot.conf configuration > file on the TFTP server." I didn't find a reference to a different > sub structure... > > Anyway, I tried a structure like you proposed, but pxeboot didn't > find the boot.conf, and didn't even show the echo lines from this > file (so useless to play with bsd location). This was my setup: > > location of boot.conf: > /tftpboot/etc/i386/boot.conf > > $ cat /tftpboot/etc/i386/boot.conf > echo ####### > echo ####### hello from tftpd@192.168.88.12, with /etc/i386/boot.conf ####### > echo ####### > boot bsd.rd > > $ cat /etc/dhcpd.conf | grep filename > filename "/pxeboot"; > > I also tried to play with the dhcpd.conf settings, by using a different > subdir for pxeboot, but I didn't get the system to find "his" boot.conf in > the i386 directory. It seems you missed part about tftpd rewrite/file remapping. The client will still request /etc/boot.conf but you fake it via rewrite script. man tftpd -r socket Issue filename rewrite requests to the specified UNIX domain socket. tftpd will write lines in the format "IP OP filename", terminated by a newline, where IP is the client's IP address, and OP is one of "read" or "write". tftpd expects replies in the format "filename" terminated by a newline. All rewrite requests from the daemon must be answered (even if it is with the original filename) before the TFTP request will continue. By default tftpd does not use filename rewriting. j.