View topic - Network boot for x86 target

Network boot for x86 target

Read-only archive of qnx.rtos (Writing resources managers, and general discussion around the QNX Neutrino RTOS) at inn.qnx.com

Network boot for x86 target

Postby arao » Mon May 23, 2005 9:47 pm

Hello,
I am trying to do a Network boot for x86 target (QNX 6.3). The x86 target
has BIOS. The Intel
Network Controller on the x86 target has a Boot Agent - PXE 2.1. I can
see that the target gets an IP address from the BOOTP/DHCP Server and
then tries to obtain the network bootstrap image from the TFTP Server.
I provided the image file that I generated using mkifs - the TFTP
Client on the Card complains "PXE-E3A: TFTP too many packages" and
exits. I found some information on the Internet that said I have to do
the following
- The boot file to be supplied by the TFTP Server should be pxegrub
compiled for QNX.
- The pxegrub then gets config file
- The config file directs the pxegrub to fetch the main boot image.
This boot image has to be multi-boot compliant.

Now my questions are
- do these steps look OK? Am I missing anything obvious here? Any
suggestions?
- How do I create multi-boot compliant image for x86? Do I have to use
elf.boot instead of bios.boot? If yes how do I do this - what changes
to the build script file are necessary? I have a build script file that
works for the target.

Thank you
Abhijit
arao
 

Re: Network boot for x86 target

Postby John Garvey » Mon May 23, 2005 9:52 pm

arao wrote:
Client on the Card complains "PXE-E3A: TFTP too many packages" and

You need to use ELF/multi-boot format.

- How do I create multi-boot compliant image for x86? Do I have to use
elf.boot instead of bios.boot? If yes how do I do this - what changes
to the build script file are necessary? I have a build script file that

My first line of my PXE/GRUB boot script looks like this (in other
words, just replace "bios" with "elf"):

[virtual=x86,elf +compress] .bootstrap = {
...
}
John Garvey
 

Re: Network boot for x86 target

Postby Guest » Tue May 24, 2005 10:00 am

Thank you - I am yet to get the pxegrub up and running satisfactorily. I am
refering to this image (with the "elf" +compress) from the pxegrub config
file.

Abhijit


"John Garvey" <jgarvey@qnx.com> wrote in message
news:d6tiqu$85o$1@inn.qnx.com...
arao wrote:
Client on the Card complains "PXE-E3A: TFTP too many packages" and

You need to use ELF/multi-boot format.

- How do I create multi-boot compliant image for x86? Do I have to use
elf.boot instead of bios.boot? If yes how do I do this - what changes
to the build script file are necessary? I have a build script file that

My first line of my PXE/GRUB boot script looks like this (in other
words, just replace "bios" with "elf"):

[virtual=x86,elf +compress] .bootstrap = {
...
}
Guest
 

Re: Network boot for x86 target

Postby arao » Wed Jun 01, 2005 10:00 am

John,

Is pxegrub the only way for Network Boot?

It looks like the Ethernet Controller that I have may not be compatible with
PXEGRUB.
My image size is almost 1.6 MB - QNX 6.3.

Can you please tell me how is it setup at your place?

The x86 target (with BIOS) that I am using has the Flash Drive soldered - so
there is no way I can move the flash drive around. The target does not have
Video support - it is a headless system. I have to use serial port to
connect to devices such as GPS - so I cannot use it for image
transfer. Please suggest a way for me to load image during the development
process.
Let me know if you have any questions - I hope talking to you / explaining
it to you may help me find some answers.

Thank you for your help

Abhijit
<rao.abhijit@gmail.com> wrote in message news:d6untb$44u$1@inn.qnx.com...
Thank you - I am yet to get the pxegrub up and running satisfactorily. I
am
refering to this image (with the "elf" +compress) from the pxegrub
config
file.

Abhijit


"John Garvey" <jgarvey@qnx.com> wrote in message
news:d6tiqu$85o$1@inn.qnx.com...
arao wrote:
Client on the Card complains "PXE-E3A: TFTP too many packages" and

You need to use ELF/multi-boot format.

- How do I create multi-boot compliant image for x86? Do I have to use
elf.boot instead of bios.boot? If yes how do I do this - what changes
to the build script file are necessary? I have a build script file
that

My first line of my PXE/GRUB boot script looks like this (in other
words, just replace "bios" with "elf"):

[virtual=x86,elf +compress] .bootstrap = {
...
}

arao
 

Re: Network boot for x86 target

Postby John Garvey » Wed Jun 01, 2005 11:34 am

arao wrote:
Is pxegrub the only way for Network Boot?
It looks like the Ethernet Controller that I have may not be compatible with
PXEGRUB.
My image size is almost 1.6 MB - QNX 6.3.
Can you please tell me how is it setup at your place?

Hmm, long time since I set this up. Vaguely ...

My network card was supported (el900), so I just built pxegrub with the
appropriate "--enable-*" options.

Set up my server "/etc/dhcpd.conf" with "filename "/boot/pxegrub"" for
the required boot clients. I also use the menu option (to be able to
pick which version of the OS I want to boot into), but that is
unnecessary complication for this. And enable "tftp" service (69/udp).

Prebuild the .ifs for the client, with "elf" instead of "bios" (as
per earlier post). Mine comes to 700MB, since I just have enough to
start up networking and NFS, and then I pull the bulk of the sysinit
executables from there.

Sorry, it was years ago and I've forgotten a lot of it; but if you can't
build pxegrub with support for your network card is a bit of a moot
point anyway. Someone else will have to comment on alternative loaders.
John Garvey
 

Re: Network boot for x86 target

Postby arao » Fri Jun 03, 2005 1:27 am

Thank you it is very helpful - I guess you meant 700KB (KiloBytes).

"John Garvey" <jgarvey@qnx.com> wrote in message
news:d7k5uk$34q$1@inn.qnx.com...
arao wrote:
Is pxegrub the only way for Network Boot?
It looks like the Ethernet Controller that I have may not be compatible
with
PXEGRUB.
My image size is almost 1.6 MB - QNX 6.3.
Can you please tell me how is it setup at your place?

Hmm, long time since I set this up. Vaguely ...

My network card was supported (el900), so I just built pxegrub with the
appropriate "--enable-*" options.

Set up my server "/etc/dhcpd.conf" with "filename "/boot/pxegrub"" for
the required boot clients. I also use the menu option (to be able to
pick which version of the OS I want to boot into), but that is
unnecessary complication for this. And enable "tftp" service (69/udp).

Prebuild the .ifs for the client, with "elf" instead of "bios" (as
per earlier post). Mine comes to 700MB, since I just have enough to
start up networking and NFS, and then I pull the bulk of the sysinit
executables from there.

Sorry, it was years ago and I've forgotten a lot of it; but if you can't
build pxegrub with support for your network card is a bit of a moot
point anyway. Someone else will have to comment on alternative loaders.
arao
 

Re: Network boot for x86 target

Postby Igor Kovalenko » Fri Jun 03, 2005 7:06 am

PXEGRUB is not strictly required, but it is helpful. Since PXE is a BIOS
extension, it can't load images larger than 640k (less in real life). If
your image fits, you could just supply QNX .ifs image to the TFTP server
that serves PXE requests and it will boot.

Otherwise you have to use some chained scheme (load a better loader first,
then load the real thing).

PXEGRUB is one such loader. It can load Linux, BSD or any
multiboot-compliant OS directly. To make QNX6 multiboot-compliant you need
to build the .ifs with elf.boot instead of bios.boot (it appeared starting
from 6.3, but can be used with 6.2x too).

If you need to boot something really weird (QNX4 or something else funny)
then there'a module for PXEGRUB (I think it is called MEMDISK) that will
emulate a floppy drive using an image from TFTP server. That way you can
boot any bootable floppy over PXE.

-- igor

"arao" <abhijit.rao@nospam.nospam> wrote in message
news:d7ob4m$882$1@inn.qnx.com...
Thank you it is very helpful - I guess you meant 700KB (KiloBytes).

"John Garvey" <jgarvey@qnx.com> wrote in message
news:d7k5uk$34q$1@inn.qnx.com...
arao wrote:
Is pxegrub the only way for Network Boot?
It looks like the Ethernet Controller that I have may not be compatible
with
PXEGRUB.
My image size is almost 1.6 MB - QNX 6.3.
Can you please tell me how is it setup at your place?

Hmm, long time since I set this up. Vaguely ...

My network card was supported (el900), so I just built pxegrub with the
appropriate "--enable-*" options.

Set up my server "/etc/dhcpd.conf" with "filename "/boot/pxegrub"" for
the required boot clients. I also use the menu option (to be able to
pick which version of the OS I want to boot into), but that is
unnecessary complication for this. And enable "tftp" service (69/udp).

Prebuild the .ifs for the client, with "elf" instead of "bios" (as
per earlier post). Mine comes to 700MB, since I just have enough to
start up networking and NFS, and then I pull the bulk of the sysinit
executables from there.

Sorry, it was years ago and I've forgotten a lot of it; but if you can't
build pxegrub with support for your network card is a bit of a moot
point anyway. Someone else will have to comment on alternative loaders.

Igor Kovalenko
 

download pxegrub

Postby yapdlf » Fri May 18, 2007 7:19 pm

Where is available for download the pxegrub executable?

Thanks
yapdlf
New Member
 
Posts: 3
Joined: Fri May 18, 2007 7:14 pm

Re: download pxegrub

Postby Igor Mazanov » Mon May 28, 2007 7:35 am

Hello,

pxelinux is a part of GRUB loader distribution,

http://www.gnu.org/software/grub/grub-legacy.en.html

You can download sources

ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz

and compile grub, pxegrub and nbgrub as an one-pass operation. README.netboot
file in netboot directory contains all needed information concerning
configuraion options.

Regards,
Igor.

yapdlf wrote:
Where is available for download the pxegrub executable?

Thanks
Igor Mazanov
 


Return to qnx.rtos

Who is online

Users browsing this forum: No registered users and 2 guests