Roderick ASSELINEAU wrote:> Hi everybody,
>
> I'm a french student employed to develop the boot loader of some
> commercial kernel (real time one). Since the goal is to have a universal
> x86 netboot I had to use PXE apis.
>
> However I have troubles using them. Since our kernel is not GPL based I
> can't just patch syslinux for our purpose.
Sure you can. Or you could even put your own kernel into the Linux
kernel binary format, making it compatible with each and every Linux
boot loader. Doing so does *not* make your kernel GPL; you just can't
use the actual *code* from Linux to do so. However, just producing a
kernel in the same format (see Documentation/i386/boot.txt in the Linux
kernel distribution) doesn't violate anyone's copyright.
> I tryed to make a very simple
> netboot loader using intel doc but I was not able to make work
> TFTP_READ_FILE correctly.
>
> I know that my trouble is not directly linked to syslinux but I hope
> that people involved in the code could help me. My API call should be ok
> but I couln't find in any docs the answers to this elementary question
:
>
> * Since the DHCP/TFTP boot (using bios) is ok and seems to use PXE can
> I directly use TFTP_OPEN_FILE API ? I supposed reading your source code
> that exchange of packets before kernel downloading was just to fill some
> structure's fields. I used static parameters do I need such
> implementations ? I try to make the netbootloader as small as possible.
>
> Thanks by advance and sorry for my lame english :-(.
The biggest problem is that most PXE stacks are complete crap -- bugs
everywhere. It's taken quite a bit of work to get PXELINUX working on
most PXE stacks -- and yet it still fails in places.
But really, you're wasting your time. Just put your non-GPL kernel
either in Linux kernel or in COM32 format, and just use PXELINUX.
-hpa