Please look at my GSoC wiki page:
https://wiki.freebsd.org/SummerOfCode2014/FreeBSD_PXE_preseed
There is kpxe file, you can chainload it using file option in your dhcp server.
It's very simple script:
#!ipxe
dhcp
cpuid --ext 29 && set CPU-ARCH amd64 || set CPU-ARCH i386
set img http://mfsbsd.vx.sk/files/images/10/${CPU-ARCH}/mfsbsd-10.0-RELEASE-${CPU-ARCH}.img
kernel http://volt.iem.pw.edu.pl/~czekirdk/memdisk raw
initrd ${img}
boot
It detects architecture and runs mfsbsd directly from Martin Matuska website.
It's simpliest way to boot different iso or img image of FreeBSD. It
will be nice to have local mirror and make menu with different
releases. I'll prepare menu, but I need few days, I'll inform you.
I think that in next week will be ready iPXE port for FreeBSD and
simply solutions.
I have many scripts to boot ubuntu, debian, etc. and I can help you
with it. It's simple to run FreeBSD from nfs server too. Ask if you
have problems.
Kamil
There is many good solutions for iPXE, but I havn't seen good for FreeBSD.
It will my work this summer.
example:
iPXE> dhcp
iPXE> kernel http://volt.iem.pw.edu.pl/~czekirdk/memdisk iso
iPXE> http://svnweb.freebsd.org/socsvn/soc2014/kczekirda/pxe-fai-head/tools/mfsbsd-11.0-CURRENT-r266655-amd64.iso?view=co
Be careful, in second line I changed raw to iso.
Regards,
Kamil
iPXE 1.0.0+ -- Open Source Network Boot Firmware -- http://ipxe.org
Features: HTTP iSCSI DNS TFTP AoE bzImage ELF MBOOT PXE PXEXT Menu
iPXE> dhcp
Waiting for link-up on net0... ok
Configuring (net0 00:0d:b9:33:88:64)..... ok
iPXE> kernel http://volt.iem.pw.edu.pl/~czekirdk/memdisk iso
http://volt.iem.pw.edu.pl/~czekirdk/memdisk... ok
iPXE> http://svnweb.freebsd.org/socsvn/soc2014/kczekirda/pxe-fai-head/tools/mfsbsd-11.0-CURRENT-r266655-amd64.iso?view=co
http://svnweb.freebsd.org/socsvn/soc2014/kczekirda/pxe-fai-head/tools/mfsbsd-11.0-CURRENT-r266655-amd64.iso?view=co: command not found
iPXE> initrd http://svmnweb.freebsd.org/socsvn/soc2014/kvzekirda/pxe-fai-head/tools/mfsbsd-11.0-CURRENT-r266655-amd64.iso?view=co
http://svmnweb.freebsd.org/socsvn/soc2014/kvzekirda/pxe-fai-head/tools/mfsbsd-11.0-CURRENT-r266655-amd64.iso?view=co... Error 0x3e11613b (http://ipxe.org/3e11613b)
iPXE>
yeah, and it’s not obvious.
fetch-ed the kernel and iso to a local freebsd 10-CURRENT machine (nuc2)
iPXE> kernel tftp://nuc2/memdisk
tftp://nuc2/memdisk... ok
iPXE> kernel tftp://nuc2/memdisk iso
tftp://nuc2/memdisk... ok
iPXE> initrd tftp://nuc2/mfsbsd.iso
tftp://nuc2/mfsbsd.iso... ok
iPXE> boot
MEMDISK 6.02 2013-10-13 Copyright 2001-2013 H. Peter Anvin et al
e820: 0000000000000000 000000000009fc00 1
e820: 000000000009fc00 0000000000000400 2
e820: 00000000000f0000 0000000000010000 2
e820: 0000000000100000 000000007e010000 1
e820: 000000007e110000 0000000000ef0000 2
e820: 00000000f8000000 0000000001000000 2
Ramdisk at 0x01b76000, length 0x0248a000
command line: iso
El Torito BVD sanity check failed.
El Torito boot catalog sanity check failed.
MEMDISK: Image seems to have fractional end cylinder
MEMDISK: Image appears to be truncated
Disk is hd96, 9354 K, C/H/S = 65535/255/15 (El Torito/El Torito), EDD on, rw
Using safe INT 15h access to high memory
Code 1860, meminfo 168, cmdline 4, stack 512
Total size needed = 2544 bytes, allocating 3K
Old dos memory at 0x9c400 (map says 0x9fc00), loading at 0x9b800
1588: 0x69d8 15E801: 0x3c00 0x00b7
INT 13 08: Failure, assuming this is the only drive
Drive probing gives drive shift limit: 0xe1
old: int13 = f000e3fe int15 = f000f859 int1e = f0007244
new: int13 = 9b80000a int15 = 9b8003fd int1e = f0007244
Loading boot sector... booting...
iPXE> kernel tftp://nuc2/memdisk
iPXE> kernel tftp://nuc2/memdisk iso
iPXE> initrd tftp://nuc2/mfsbsd.iso
iPXE> boot
I suggest leave tftp protocol and download iso with http server.
adding -h gets things a bit further. I still think we’re fighting a serial console issue.
Maybe mfsbsd need rebuilding. (?)
iPXE> dhcp
Configuring (net0 00:0d:b9:33:88:64)...... ok
iPXE> route
net0: 172.21.0.90/255.255.255.0 gw 172.21.0.1
iPXE> kernel http://nuc2/memdisk iso -h
http://nuc2/memdisk... ok
iPXE> initrd http://nuc2/mfsbsd.iso
http://nuc2/mfsbsd.iso... ok
iPXE> boot
MEMDISK 6.02 2013-10-13 Copyright 2001-2013 H. Peter Anvin et al
e820: 0000000000000000 000000000009fc00 1
e820: 000000000009fc00 0000000000000400 2
e820: 00000000000f0000 0000000000010000 2
e820: 0000000000100000 000000007e010000 1
e820: 000000007e110000 0000000000ef0000 2
e820: 00000000f8000000 0000000001000000 2
Ramdisk at 0x01b84000, length 0x0247c000
command line: iso -h
MEMDISK: Image seems to have fractional end cylinder
MEMDISK: Image appears to be truncated
Disk is hd96, 9340 K, C/H/S = 65535/255/15 (El Torito/El Torito), EDD on, rw
Using safe INT 15h access to high memory
Code 1860, meminfo 168, cmdline 7, stack 512
Total size needed = 2547 bytes, allocating 3K
Old dos memory at 0x9c400 (map says 0x9fc00), loading at 0x9b800
1588: 0x6a10 15E801: 0x3c00 0x00b8
INT 13 08: Failure, assuming this is the only drive
Drive probing gives drive shift limit: 0xe1
old: int13 = f000e3fe int15 = f000f859 int1e = f0007244
new: int13 = 9b80000a int15 = 9b8003fd int1e = f0007244
Loading boot sector... booting...
CD Loader 1.2
Building the boot loader arguments
Looking up /BOOT/LOADER... Found
Relocating the loader and the BTX
Starting the BTX loader
(no output)