ipxe information/repository
#1
Posted 22 January 2017 - 06:54 PM
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
Posted 22 January 2017 - 06:54 PM
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
Posted 22 January 2017 - 06:55 PM
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
Posted 22 January 2017 - 06:59 PM
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
Posted 22 January 2017 - 07:01 PM
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
Posted 22 January 2017 - 07:14 PM
#7
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
Posted 22 January 2017 - 09:04 PM
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!!!...Excellent initiative...
...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_BZIMAGERegards,
Erwan
- 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
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