Jump to content











Photo

ipxe information/repository


  • Please log in to reply
8 replies to this topic

#1 misty

misty

    Gold Member

  • Developer
  • 1069 posts
  •  
    United Kingdom

Posted 22 January 2017 - 06:54 PM

The rationale behind this thread is to build a repository of information on ipxe aimed at Tiny PXE Server users.

Whilst the ipxe website is a fantastic repository of information, the ipxe site appears heavily biased towards Linux users and Linux PXE servers. For a non-Linux user (or at least a limited Linux user) - this thread is aimed at helping Linux newbies like myself.

#2 misty

misty

    Gold Member

  • Developer
  • 1069 posts
  •  
    United Kingdom

Posted 22 January 2017 - 06:54 PM

Install/compile ipxe

The ipxe website lists some of the dependencies required to compile ipxe (here) -

You will need to have at least the following packages installed in order to build iPXE:
* gcc (version 3 or later)
* binutils (version 2.18 or later)
* make
* perl
* syslinux (for isolinux, only needed for building .iso images)
* liblzma or xz header files


Using ubuntu 16.04 as a build environment, the following dependencies were required in order to compile ipxe successfully -
* liblzma-dev
* binutils-dev
* lib32z1-dev
* libiberty-dev
* git

Using an ubuntu 16.04 live system (booted via PXE in my case - see "http://www.mistyrebo...les/ubuntu.htm"), the dependencies listed above can be installed by starting a terminal (right-click on the Ubuntu desktop and select "Open Terminal") and running the following commands -

sudo apt-get update
sudo apt-get install liblzma-dev
sudo apt-get install binutils-dev
sudo apt-get install lib32z1-dev
sudo apt-get install libiberty-dev
sudo apt-get install git
git clone git://git.ipxe.org/ipxe.git
cd ipxe
cd src
make

#3 misty

misty

    Gold Member

  • Developer
  • 1069 posts
  •  
    United Kingdom

Posted 22 January 2017 - 06:55 PM

ADDING CONSOLE FRAMEBUFFER SUPPORT

If CONSOLE FRAMEBUFFER support is enabled, PNG images can be used as menu backgrounds. There are a range of other CONSOLE options that may be of interest - see here.

Run the commands listed above (in post #2 - "install/compile ipxe") to clone the ipxe repository.

edit "Home/ipxe/src/config/console.h" and enable/uncomment -

#define CONSOLE_FRAMEBUFFER /* Graphical framebuffer console */
edit "Home/ipxe/src/config/general.h" and enable/uncomment -
#define IMAGE_PNG /* PNG images */
#define CONSOLE_CMD /* Console commands */
Now run the following commands in a terminal -

make bin/ipxe.pxe
make bin/ipxe.kpxe
make bin/undionly.kpxe

The resulting files (which can be found in "Home > ipxe > src > bin" path) will now include support for .PNG backgrounds,
__________________________________________________

Example ipxe menu entry for adding a background image in ipxe build with console support added -
console --picture http://boot.ipxe.org/ipxe.png

#4 misty

misty

    Gold Member

  • Developer
  • 1069 posts
  •  
    United Kingdom

Posted 22 January 2017 - 06:59 PM

ipxe menu system

I will add some of my own examples over time. For now, check out the Tiny PXE Server download and also -
https://gist.github....midsrod/2234639

#5 misty

misty

    Gold Member

  • Developer
  • 1069 posts
  •  
    United Kingdom

Posted 22 January 2017 - 07:01 PM

The following files are contained in ipxe.2017.01.22.zip

ipxe.efi
ipxe.kpxe
ipxe.lkrn
ipxe.pxe
ipxe.usb
snponly.efi
undionly.kpxe

The archive contains two versions of each file - one with CONSOLE_FRAMEBUFFER support and one with ipxe default settings

#6 misty

misty

    Gold Member

  • Developer
  • 1069 posts
  •  
    United Kingdom

Posted 22 January 2017 - 07:14 PM

reserved

#7 erwan.l

erwan.l

    Platinum Member

  • Developer
  • 3041 posts
  • Location:Nantes - France
  •  
    France

Posted 22 January 2017 - 08:41 PM

Hi Misty,

 

Excellent initiative.

 

It may be worth mentionning that in general.h you can also define which protocols you want to support : ISCSI, AOE, NFS, etc ..

 

By default, many protocols are not enabled.

I would say it is worth enabling them as it will cost only a few kbs extra.

 

Next to the "nice to have" protocols, that I would also add the below as a minimum (actually there are few others I would strongly recommend).

#define PXE_STACK
#define PXE_MENU
#define IMAGE_PXE
#define IMAGE_BZIMAGE

Regards,

Erwan



#8 misty

misty

    Gold Member

  • Developer
  • 1069 posts
  •  
    United Kingdom

Posted 22 January 2017 - 09:04 PM

...Excellent initiative...

Thanks. As I've said before, I'm no programmer. I tend to have to find things out the hard way by throwing lots of time and energy and being bloody stubborn! This approach works for me - and I like to share information so that others don't have to suffer as much as I have!!!


...It may be worth mentionning that in general.h you can also define which protocol you want to support : ISCSI, AOE, NFS, etc ..

By default, many protocols are not enabled.
I would say it is worth enabling them as it will cost only a few kbs extra.

Next to the nice to have protocols, that I would also add the below as a minimum.


#define PXE_STACK
#define PXE_MENU
#define IMAGE_PXE
#define IMAGE_BZIMAGE
Regards,
Erwan


:cheers: - I'll look into these settings next time I compile ipxe. Currently installing Windows 10 LTSB to an iSCSI disk so there will be a delay!

Regards,

Misty

#9 ndog37

ndog37

    Member

  • Members
  • 88 posts
  •  
    New Zealand

Posted 23 January 2017 - 11:30 AM

BTW if you just go to https://rom-o-matic.eu/ you do not need a linux environment to compile ipxe binaries. However it is much slower than compiling yourself.

 

Another gotcha if you are compiling EFI binaries, it will not grey out the redundant legacy BIOS options, such as

#PXE_STACK

And will crash instead (it will also crash if building manually)

 

However there is no way to determine which options support EFI and which are legacy BIOS only, so that would be great to add to your information. Or ask the rom-o-matic folks to consider it on their github page


Edited by ndog37, 23 January 2017 - 11:56 AM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users