booting from network with tftpd32

I am trying to boot JNode from the network and used tftpd32 as DHCP/TFTP server.

I created a dedicated directory with those files:
default.jgz
full.jgz
fullgui.jgz
install.jgz
jnode-x86-lite.iso
jnode32.gz
menu-nb.lst
menu.lst
nbgrub_rtl8139
pxegrub_rtl8139
stage2_eltorito
tests.jgz

I set tftpd32 with that directory as current directory and tried with both nbgrub_rtl8139 and pxegrub_rtl8139 as boot file (I have a network card with a realtek 8139 chipset).

Each time the client got the boot file completely, successfully probe the netcard. After it prints its Address, netmask and gateway as expected. It also prints a server IP address of 0.0.0.0, and for that I am not sure if it is correct. After that, the client seems to be frozen (but numlock key is working). What's wrong ?

Which files are missed/not needed in the directory ?

As explained in tftpd32 documentation, I created a tftpd32.ini file and specified options (seen on another topic) like this :
AddOptionNumber1=66
AddOptionValue1=192.168.44.2
AddOptionNumber2=67
AddOptionValue2=pxegrub_rtl8139
AddOptionNumber3=150
AddOptionValue3=menu-nb.lst

Same here

tftpd32 + nbgrub_rtl8139 == lockup
tftpd32 + pxegrub_rtl8139 == lockup
-----------------------------------
I think there is a problem with grub 8139 boot ROM files.
After few hours to solve a problem, I've made grub boot floppy (with JNode boot menu) which load JNode files over tftp server (tftpd32). In my conditions it's works. If you want, I can post details.

...boot

Please post details

I am booting from a cdrom (should be equivalent to floppy).

Could you post details ? Thanks.

Fabien

making netbootable iso (rtl8139)

Creating dirs:
mkdir -p iso/boot/grub

Building grub stage2 (rtl8139, net enabled):
tar zxvf grub-0.96.tar.gz
cd grub-0.96
./configure --enable-diskless --enable-rtl8139
make
copy stage2/stage2_eltorito ../iso/boot/grub
cd ..
rm -rf grub-0.96

Making site-specific changes:
Copy menu-nb.lst from jnode\all\build\x86\netboot to iso\boot\grub directory we've created.
Rename it to menu.lst. Add addresses, root (nd) entries. Example:
=========================================================
ifconfig --server=192.168.2.1 --address=192.168.2.2
tftpserver 192.168.2.1
default 0
timeout 10

title=JNode (default)
root (nd)
kernel (nd)/jnode32.gz
module (nd)/default.jgz

title=JNode (all plugins)
root (nd)
kernel (nd)/jnode32.gz
module (nd)/full.jgz
=========================================================

Making iso image:
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso

Burn image to CD

...boot

P.S. Fabien, in case you haven't linux installed, I can send you stage2_eltorito or iso pre-built (need to specify addresses you used in second case).

Grub in CVS HEAD

Please note that the latest grub in CVS HEAD branch (of JNode) already has compiled in network support.

Ewout

stage2_eltorito from CVS head

Yes, checked
stage2_eltorito from jnode\all\lib\x86 boots JNode via rtl8139 from tftpd32 server

...boot

OK, but only tomorrow

I've made custom grub image with 8139 net code and embedded grub menu.
grub menu contains net configuration parameters (serveradress and netaddress). Sorry can't provide you more details because my linux box (i've used for grub build) is left on my workplace.
You could wait for details left. Sorry...

...boot