I'm currently working on an embedded project which will be built around a BSD (I'm not sure which yet), currently I have an image up and running DragonFly and I'm currently attempting to do the same with FreeBSD for comparison. I'm more or less following the miniBSD tutorials (updating the various file lists and such as I go). The system is being built around 6.2-STABLE but I'm having some issues getting it to PXE boot. On my FreeBSD host I've enabled TFTP, exported the rootfs for the system via NFS, built and installed isc-dhcpd and configured it with the extra options for PXE booting. The client currently gets its IP address from the server successfully, retrieves and loads pxeboot but when it comes to launch the kernel it eventually throws an NFS timeout. I know the export is working because I used NFS to pull the rootfs over to my DragonFly boot host to see what the result was when I booted the same image from a known working boot host (it worked correctly until it hit a problem in the image I will detail in a separate message). I did attempt to rebuild the pxeboot loader, following the standard instructions; set LOADER_TFTP_SUPPORT=YES in /etc/make.conf cd /usr/src/sys/boot make clean && make depend && make It appears to be successful (and the output would support this) but the i386/pxeldr/pxeboot and i386/loader/loader files do not exist, my only guess is that I've not set a make variable I should have, the most confusing part is that the dd command which is the final step in generating pxeboot appears in the output and appears to be successful; =============dd if=pxeboot.tmp of=pxeboot obs=2k conv=osync 425+0 records in 107+0 records out =============The discrepancy in the records in and the records out is concerning but I would expect the file to exist regardless, I'm currently using the default /boot/pxeboot. Any suggestions as to what might be causing this would be greatly appreciated. Thanks in advance, Morgan
> I'm currently working on an embedded project which will be built > around a BSD (I'm not sure which yet), currently I have an image up > and running DragonFly and I'm currently attempting to do the same with > FreeBSD for comparison. > > I'm more or less following the miniBSD tutorials (updating the various > file lists and such as I go). > > The system is being built around 6.2-STABLE but I'm having some issues > getting it to PXE boot. > > On my FreeBSD host I've enabled TFTP, exported the rootfs for the > system via NFS, built and installed isc-dhcpd and configured it with > the extra options for PXE booting. > > The client currently gets its IP address from the server successfully, > retrieves and loads pxeboot but when it comes to launch the kernel it > eventually throws an NFS timeout. > > I know the export is working because I used NFS to pull the rootfs > over to my DragonFly boot host to see what the result was when I > booted the same image from a known working boot host (it worked > correctly until it hit a problem in the image I will detail in a > separate message). > > I did attempt to rebuild the pxeboot loader, following the standard > instructions; > set LOADER_TFTP_SUPPORT=YES in /etc/make.conf > cd /usr/src/sys/boot > make clean && make depend && make > > It appears to be successful (and the output would support this) but > the i386/pxeldr/pxeboot and i386/loader/loader files do not exist, my > only guess is that I've not set a make variable I should have, the > most confusing part is that the dd command which is the final step in > generating pxeboot appears in the output and appears to be successful; > =============> dd if=pxeboot.tmp of=pxeboot obs=2k conv=osync > 425+0 records in > 107+0 records out > =============> The discrepancy in the records in and the records out is concerning > but I would expect the file to exist regardless, I'm currently using > the default /boot/pxeboot. > > Any suggestions as to what might be causing this would be greatly appreciated.1- try sniffing (wireshark, not the kind that will get you high :-) and see where it hangs. 2- the dhcp should tell pxeloader where the root is: option root-path "ip....:/path" danny
Hi,> 2- the dhcp should tell pxeloader where the root is: > option root-path "ip....:/path"And next-server I have a couple of version 6.2 pxe-clients booting of a 4.11 box without a problem. A snippet of my dhcpd.conf: host gister { hardware ethernet 00:0e:0c:b4:3a:14; fixed-address 192.168.4.104; option root-path "192.168.4.105:/var/nixfs/pxe/gister"; next-server 192.168.4.105; filename "pxeboot"; } and the kernel config: #grep -i bootp /usr/src/sys/i386/conf/GISTER options BOOTP options BOOTP_NFSROOT options BOOTP_NFSV3 options BOOTP_COMPAT options BOOTP_WIRED_TO=fxp0 Hth. Kind regards, Robert
On Sun, Jun 24, 2007 at 09:27:42PM +1000, Morgan Reed wrote:> =============> dd if=pxeboot.tmp of=pxeboot obs=2k conv=osync > 425+0 records in > 107+0 records out > =============> The discrepancy in the records in and the records out is concerning > but I would expect the file to exist regardless, I'm currently using > the default /boot/pxeboot.The default blocksize in dd is 512 -- that is, ibs=512 and obs=512. If you only specify obs, ibs still remains at 512. 2048 / 512 = 4. 107 * 4 == 428, which is about 425; chances are the file isn't *exactly* on a 2047-byte boundary, which explains the "missing 3". If you do "bs=2k", you should see both 107 records in and out. I hope this helps clear up any concern over that part. -- | Jeremy Chadwick jdc at parodius.com | | Parodius Networking http://www.parodius.com/ | | UNIX Systems Administrator Mountain View, CA, USA | | Making life hard for others since 1977. PGP: 4BD6C0CB |